本发明专利技术提供一种利用同构众核的并行处理芯片进行大规模数据并行处理的计算方法,该方法是利用同构众核架构的并行处理器进行大规模无逻辑关系数据的并行计算处理。应用程序中各模块顺序运行在同构众核微处理器上,其中每个被重复多次执行、每次处理不同数据的子模块,被分离成为具有很多不同线程执行在众核上的函数。每个函数对应的众多线程通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线程的批处理,同一函数派生的所有线程都可以访问众核微处理器上的全局共享存储空间,各线程对线程组共享存储空间及全局共享存储空间的访问,包含对其上数据的读取及运算结果的写入,每个函数对应的众多线程同时处理不同的数据,以此达到高度的并行化。
【技术实现步骤摘要】
本专利技术涉及高性能计算方面大规模数据在众核处理器架构上的并行计算方 法,更具体的说,涉及利用拥有众核处理器架构的设备进行大规模的无逻辑关系 数据的并行计算处理方法。
技术介绍
随着半导体工艺技术的飞速进步和体系结构的不断发展,加之对更高的计算 性能的商业需求以及科研需求,使得处理器功能、微处理器架构以及多核、众核 设计技术不断创新。众核微处理器内部包含若干个处理器,提供了比单核更强大 的处理能力和更高的并行性。在众核微处理器中,处理器核常用共享存储的的方法,来实现共享数据的交 换。目前,众核微处理器的共享存储方法根据共享的存储层次不同可以分为共 享一级Cache、共享二级Cache和共享主存储器等三种。这些共享存储方法的特点 是整个存储空间统一编址,众核微处理器内含的各个处理器核对共享存储空间 的访问具有同样的优先级。因为以上特点,众核处理器在进行大规模数据处理时,由于其内含的各个处 理器核对共享存储空间的访问具有同样的优先级,发生访存的冲突可能性大,会 导致访存的延迟增加;并因为存储空间的统一编址,在没有使用根据共享存储法 设计的并行编译器时,编译出来的程序有可能会发生地址冲突。在密集型科学计算领域,最突出的特点是数据量大、计算操作的重复性强, 在一般架构的众核处理器上实现的并行计算方法,并行度不高,数据的读写往往 会滞延整个计算速度,因此亟需在众核处理器上寻找一种能减小数据传输延迟, 进一步增加数据处理的并行度的并行计算方法。
技术实现思路
本专利技术要解决的技术问题是设计一种共享数据的传输延迟小,增大数据处理的 并行度的并行计算方法,通过本专利技术的方法以减少众核微处理器中各个处理器对 共享存储的访问冲突,充分发挥微处理器中各个处理器核的处理能力。 计算步骤是 ' ^ '1)应用程序中各模块按顺序在同构众核微处理器上运行,其中每个被重复多 次执行、每次处理不同数据的子模块被分离成"众多线程",由"众多线程"构 成执行在众核上的函数进行计算;也就是说, 一些子模块被分离成很多线程构成的函数。但应用程序中各模块顺序运行时,不是所有的模块都被分解成"众多线 程",只有其中被重复多次执行、每次处理不同数据的子模块才会被分离。2) 每个函数对应的"众多线程"通过规则组织为线程组,每个线程.组都是由 函数派生出"众多线程"的批处理;3) 由函数派生出的"众多线程"在执行过程中,访问众核微处理器上的由线 程私有存储空间、线程组共享存储空间和众核微处理器全局共享存储空间组成的 三级存储空间中的数据;4) 各"众多线程"对众核微处理器上三级存储空间的访问,包含对数据的读 取及运算结果的写入,每个函数对应的"众多线程"在众核微处理器上同时执行 相同的指令和处理不同的数据,以此实现大规模数据的并行计算。在众核微处理器上的每个"众多线程"对应的函数作为一个由线程组组成的批 处理线程来执行。由函数派生出的众多线程在执行过程中访问三级存储器空间的数据,线程私有 存储空间是分配给每个线程的存储空间,此存储空间只有该线程能够进行访问, 并与该线程具有相同的生命周期;每个线程组都允许被分配;r块线程组共享存储 空间,线程组共享存储空间供组内的线程进行访问,不允许其他线程组的线程访 问,并且此组内共享存储空间与该线程组具有相同的生命周期;而同一函数派生 的所有线程都能访问众核微处理器上的全局共享存储空间。本专利技术的有益效果是此方法应用在大规磁无逻辑关系数据的并行处理上, 由于数据规模巨大,串行执行同类运算需要重复很长时间,利用众核微处理器庞 大的处理器数量,可以很大程度上同时进行大规模数据的并行计算。大量数据彼 此间是互相独立的,计算出来的结果也互相独立,因此在计算时众核间不需要互 相通信或互相等待彼此的计算结果,具有很高的计算效率,达到加速完成该类应 用的目的。 附图说明附图l为众核微处理器架构图;-附图2为并行计算方法的^构流程图。 具体实施例方式参照附图对本专利技术的众核结构的大规模数据并行计算方法作以下详细的说明。本专利技术的同构众核结构的大规模数据并行计算方法,是应用程序中各捧块按 顺序运行在同构众核微处理器上,其中每个被重复多次执行、每次处理不同数据 的子模块,被分离威为具有很多不同线程执行在众核上的函数。每个函数对应的 众多线程通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线4程的批处理。在众核微处理器上,每个多线程函数作为一个由线程组组成的批处 理线程来执行,每个此类函数对应的众多线程上同时处理不同的数据,以此实现 大规模数据的并行处理。由函数派生出的众多线程在执行过程中可以访问多个存储空间的数据,具体划 分为三级存储空间线程私有存储空间,线程组共享存储空间和众核微处理器全 局共享存储空间。其中,每个线程都被分配一块只有自己能够访问的存储空间, 并且该存储空间与其所属线程具有相同的生命周期;每个线程组都被分配一块组 内共享存储空间,组内共享存储空间可供组内的线程进行访问,不允许其他线程 组的线程访问,并且组内共享存储空间与线程组具有相同的生命周期;同一函数 派生的所有线程都可以访问众核微处理器上的全局共享存储空间。各线程对.线程 组共享存储空间及全局共享存储空间的访问,包含对其上数据的读取及线程运算 结果的写入。附图1为本专利技术采用的众核微处理器架构。众核中有所有线程共享的动态随机 存储器(DRAM),及由应用程序为各线程组和各线程临时分配的Cache空间。附图2为采用本专利技术并行计算方法的结构流程图。应用程序中各寧块顺序运行 在同构众核微处理器上,将其中每个被重复多次执行、每次处理不同数据的子模 块,分离成为具有很多不同线程执行在众核上的函数。每个函数对应的众多线程 通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线程的批处 理。由应用程序将众多线程分发到各个多核上,每个核心上将顺序执行其上的线 程,由于任务分解,每个线程上的计算会很快完成,以此通过庞大的众核数量及 快速的多线程运算来达到高度并行化的效果。并行众核处理器通过动态随机存储器交换计算数据,众核处理器上的多级 Cache存储空间通过应用程序动态的分配给每个函数派生出的各线程组及组内线 程,用作线程组共享存储空间和线程私有存储空间,在计算完毕后,将存储空间 收回,等待为下个函数派生出的线程重新分配。每个函数派生出的众多线程'上同时执行相同的指令,并运行不同的数据,各线程之间在计算时并不互相通信,只 完成自身的计算任务,是典型的单指令流多数据流并行计算结构。本专利技术所使用处理数据的众核并行处理芯片可以是中央处理器(CPU)或是图 形处理器(GPU)。"众多线程"是两个以上线程的简称,除说明书所述的技术特征外,均为本专业技术人员的已知技术。权利要求1.,其特征在于,计算步骤是1)应用程序中各模块按顺序在同构众核微处理器上运行,其中每个被重复多次执行、每次处理不同数据的子模块被分离成“众多线程”,由“众多线程”构成执行在众核上的函数,并进行计算;2)每个函数对应的“众多线程”通过规则组织为线程组,每个线程组都是由函数派生出“众多线程”的批处理;3)由函数派生出的“众多线程”在执行过程中,访问众核微处理器上的由线程私有存储空间、线程组共享存储空间本文档来自技高网...
【技术保护点】
一种众核结构的大规模数据并行计算方法,其特征在于,计算步骤是: 1)应用程序中各模块按顺序在同构众核微处理器上运行,其中每个被重复多次执行、每次处理不同数据的子模块被分离成“众多线程”,由“众多线程”构成执行在众核上的函数,并进行计算 ; 2)每个函数对应的“众多线程”通过规则组织为线程组,每个线程组都是由函数派生出“众多线程”的批处理; 3)由函数派生出的“众多线程”在执行过程中,访问众核微处理器上的由线程私有存储空间、线程组共享存储空间和众核微处理器全局共 享存储空间组成的三级存储空间中的数据; 4)各“众多线程”对众核微处理器上三级存储空间的访问,包含对数据的读取及运算结果的写入,每个函数对应的“众多线程”在众核微处理器上同时执行相同的指令和处理不同的数据,以此实现大规模数据的并行计算 。
【技术特征摘要】
【专利技术属性】
技术研发人员:胡雷钧,王恩东,吕文静,王渭巍,王守昊,
申请(专利权)人:浪潮电子信息产业股份有限公司,
类型:发明
国别省市:88[中国|济南]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。