[发明专利]一种异构众核上基于主-从模型的轻量级多线程机制在审
申请号: | 202110398335.3 | 申请日: | 2021-04-14 |
公开(公告)号: | CN114217915A | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 袁欣辉;尹万旺;魏迪;林蓉芬;孙浩男;孙强;史俊达 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F15/16 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214038 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异构众核上 基于 模型 轻量级 多线程 机制 | ||
本发明公开一种异构众核上基于主‑从模型的轻量级多线程机制,设置四种线程状态,分别为初始化、等待任务、任务完成和线程退出;在共享内存上开辟长整形数组;在共享内存上开辟数组,用于线程组内主线程向从属线程传递参数;根据主线程及其从属线程核组号,设置每个线程组的掩码cgmask,掩码有CG_NUM位;使用共享模式运行并行程序,每个核组为一个进程;当需要退出线程状态时,主线程调用Master_leave接口;执行完毕后,各核组恢复进程状态,可以根据进程号继续执行任务。本发明为用户提供了方便使用、更加灵活、开销更低的片内多线程解决方案。
技术领域
本发明涉及一种异构众核上基于主-从模型的轻量级多线程机制,属于高性能计算技术领域。
背景技术
国产申威异构众核处理器最突出的优势是高性能,尤其适用于高性能计算领域,主要应用于超大规模并行机等大型实用系统中。每颗申威众核处理器包含多个核组,每个核组由一个主核核心和大量从核加速核心组成。
当前申威众核软件栈支持三种模式:默认模式、共享模式和全片共享模式。默认模式下,每个核组一个进程,进程间内存空间隔离,主核控制本核组从核加速计算,进程之间通过消息实现数据交互,各核组内存隔离,无法实现多线程和三级共享编程模型;共享模式下,与默认模式类似,但同一处理器内的进程间共享内存,由于内存共享,可使用进程充当线程,但处理器内需要多线程协同运算的片段散落在程序各处,由于线程无法任意创建与回收,用户必须时刻根据进程号显示地维护主进程及充当线程作用的从属进程的任务状态,并通过频繁的同步、锁等操作保证程序的正确性,牵扯程序员大量精力、编程繁琐且容易出错;全片共享模式下,处理器内0号核组的主核运行一个进程,同时控制片内所有从核加速计算,其他主核通过0号主核调用pthread库和操作系统提供的线程迁移接口实现片内多线程,多个芯片的0号主核通过消息实现数据交互,只支持一个处理器内有一个进程,用户无法根据自身需求选择线程组大小,且每次线程创建需要利用pthread库结合操作系统线程迁移系统调用接口才能实现,开销较大。
以往申威众核芯片上的软件栈默认是以进程为单位组织同一处理器内多个核组的资源,每个核组运行一个进程,而不能很好的支持以线程组的方式组织资源。这会使得用户开发并行程序时,或者使用系统提供的全片共享模式,但该模式不够灵活,且线程创建开销大,不能很好的契合用户需求;或者基于共享模式,以进程为单位,通过频繁的同步、锁等操作模拟芯片内多线程,但处理器内需要多个核组协同运算的程序片段往往散落在程序各处,用户必须时刻根据进程号显示地维护主进程及充当线程作用的从属进程的任务状态,编程繁琐且容易出错;或者放弃使用芯片内多线程,这在一定程度上迫使用户程序以“核组内共享-核组间消息”的两级并行编程模型开发程序,使得用户难以发挥处理器内共享内存带来的编程便利和性能潜力。
多核组共享内存有利于降低通信需求,但会增加并行开销。因此一些用户希望支持一种三级并行编程模型:处理器内根据用户需求设置多个进程;进程间通过消息交互数据;进程内的若干核组以线程组方式组织,基于共享内存协同运算;核组内利用从核加速。然而,当前的三种使用模式均无法很好地支持三级并行编程模型。彻底解决该问题,需要作业管理系统、操作系统、编译环境、通信库等底层软件栈全面支持,工作量大、牵扯面广,修改复杂且周期较长。
发明内容
本发明的目的是提供一种异构众核上基于主-从模型的轻量级多线程机制,其为用户提供方便使用、更加灵活、开销更低的片内多线程解决方案。
为达到上述目的,本发明采用的技术方案是:提供一种异构众核上基于主-从模型的轻量级多线程机制,设置四种线程状态:__status_init=0、__status_wait=-1、__status_done=-2和__status_quit=-3,其含义分别为初始化、等待任务、任务完成和线程退出;
每个处理器的总核组数记为CG_NUM、线程组的大小记为CG_PER_PROCESS、参数缓冲大小记为MAX_PARAM_SIZE;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110398335.3/2.html,转载请声明来源钻瓜专利网。