CN101556534A - 一种众核结构的大规模数据并行计算方法 - Google Patents
一种众核结构的大规模数据并行计算方法 Download PDFInfo
- Publication number
- CN101556534A CN101556534A CNA2009100207256A CN200910020725A CN101556534A CN 101556534 A CN101556534 A CN 101556534A CN A2009100207256 A CNA2009100207256 A CN A2009100207256A CN 200910020725 A CN200910020725 A CN 200910020725A CN 101556534 A CN101556534 A CN 101556534A
- Authority
- CN
- China
- Prior art keywords
- threads
- many
- storage space
- function
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 53
- 230000006870 function Effects 0.000 abstract description 27
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供一种利用同构众核的并行处理芯片进行大规模数据并行处理的计算方法,该方法是利用同构众核架构的并行处理器进行大规模无逻辑关系数据的并行计算处理。应用程序中各模块顺序运行在同构众核微处理器上,其中每个被重复多次执行、每次处理不同数据的子模块,被分离成为具有很多不同线程执行在众核上的函数。每个函数对应的众多线程通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线程的批处理,同一函数派生的所有线程都可以访问众核微处理器上的全局共享存储空间,各线程对线程组共享存储空间及全局共享存储空间的访问,包含对其上数据的读取及运算结果的写入,每个函数对应的众多线程同时处理不同的数据,以此达到高度的并行化。
Description
技术领域
本发明涉及高性能计算方面大规模数据在众核处理器架构上的并行计算方法,更具体的说,涉及利用拥有众核处理器架构的设备进行大规模的无逻辑关系数据的并行计算处理方法。
背景技术
随着半导体工艺技术的飞速进步和体系结构的不断发展,加之对更高的计算性能的商业需求以及科研需求,使得处理器功能、微处理器架构以及多核、众核设计技术不断创新。众核微处理器内部包含若干个处理器,提供了比单核更强大的处理能力和更高的并行性。
在众核微处理器中,处理器核常用共享存储的的方法,来实现共享数据的交换。目前,众核微处理器的共享存储方法根据共享的存储层次不同可以分为:共享一级Cache、共享二级Cache和共享主存储器等三种。这些共享存储方法的特点是:整个存储空间统一编址,众核微处理器内含的各个处理器核对共享存储空间的访问具有同样的优先级。
因为以上特点,众核处理器在进行大规模数据处理时,由于其内含的各个处理器核对共享存储空间的访问具有同样的优先级,发生访存的冲突可能性大,会导致访存的延迟增加;并因为存储空间的统一编址,在没有使用根据共享存储法设计的并行编译器时,编译出来的程序有可能会发生地址冲突。
在密集型科学计算领域,最突出的特点是数据量大、计算操作的重复性强,在一般架构的众核处理器上实现的并行计算方法,并行度不高,数据的读写往往会滞延整个计算速度,因此亟需在众核处理器上寻找一种能减小数据传输延迟,进一步增加数据处理的并行度的并行计算方法。
发明内容
本发明要解决的技术问题是设计一种共享数据的传输延迟小,增大数据处理的并行度的并行计算方法,通过本发明的方法以减少众核微处理器中各个处理器对共享存储的访问冲突,充分发挥微处理器中各个处理器核的处理能力。
计算步骤是:
1)应用程序中各模块按顺序在同构众核微处理器上运行,其中每个被重复多次执行、每次处理不同数据的子模块被分离成“众多线程”,由“众多线程”构成执行在众核上的函数进行计算;也就是说,一些子模块被分离成很多线程构成的函数。但应用程序中各模块顺序运行时,不是所有的模块都被分解成“众多线程”,只有其中被重复多次执行、每次处理不同数据的子模块才会被分离。
2)每个函数对应的“众多线程”通过规则组织为线程组,每个线程组都是由函数派生出“众多线程”的批处理;
3)由函数派生出的“众多线程”在执行过程中,访问众核微处理器上的由线程私有存储空间、线程组共享存储空间和众核微处理器全局共享存储空间组成的三级存储空间中的数据;
4)各“众多线程”对众核微处理器上三级存储空间的访问,包含对数据的读取及运算结果的写入,每个函数对应的“众多线程”在众核微处理器上同时执行相同的指令和处理不同的数据,以此实现大规模数据的并行计算。
在众核微处理器上的每个“众多线程”对应的函数作为一个由线程组组成的批处理线程来执行。
由函数派生出的众多线程在执行过程中访问三级存储器空间的数据,线程私有存储空间是分配给每个线程的存储空间,此存储空间只有该线程能够进行访问,并与该线程具有相同的生命周期;每个线程组都允许被分配一块线程组共享存储空间,线程组共享存储空间供组内的线程进行访问,不允许其他线程组的线程访问,并且此组内共享存储空间与该线程组具有相同的生命周期;而同一函数派生的所有线程都能访问众核微处理器上的全局共享存储空间。
本发明的有益效果是:此方法应用在大规模无逻辑关系数据的并行处理上,由于数据规模巨大,串行执行同类运算需要重复很长时间,利用众核微处理器庞大的处理器数量,可以很大程度上同时进行大规模数据的并行计算。大量数据彼此间是互相独立的,计算出来的结果也互相独立,因此在计算时众核间不需要互相通信或互相等待彼此的计算结果,具有很高的计算效率,达到加速完成该类应用的目的。
附图说明
附图1为众核微处理器架构图;
附图2为并行计算方法的结构流程图。
具体实施方式
参照附图对本发明的众核结构的大规模数据并行计算方法作以下详细的说明。
本发明的同构众核结构的大规模数据并行计算方法,是应用程序中各模块按顺序运行在同构众核微处理器上,其中每个被重复多次执行、每次处理不同数据的子模块,被分离成为具有很多不同线程执行在众核上的函数。每个函数对应的众多线程通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线程的批处理。在众核微处理器上,每个多线程函数作为一个由线程组组成的批处理线程来执行,每个此类函数对应的众多线程上同时处理不同的数据,以此实现大规模数据的并行处理。
由函数派生出的众多线程在执行过程中可以访问多个存储空间的数据,具体划分为三级存储空间:线程私有存储空间,线程组共享存储空间和众核微处理器全局共享存储空间。其中,每个线程都被分配一块只有自己能够访问的存储空间,并且该存储空间与其所属线程具有相同的生命周期;每个线程组都被分配一块组内共享存储空间,组内共享存储空间可供组内的线程进行访问,不允许其他线程组的线程访问,并且组内共享存储空间与线程组具有相同的生命周期;同一函数派生的所有线程都可以访问众核微处理器上的全局共享存储空间。各线程对线程组共享存储空间及全局共享存储空间的访问,包含对其上数据的读取及线程运算结果的写入。
附图1为本发明采用的众核微处理器架构。众核中有所有线程共享的动态随机存储器(DRAM),及由应用程序为各线程组和各线程临时分配的Cache空间。
附图2为采用本发明并行计算方法的结构流程图。应用程序中各模块顺序运行在同构众核微处理器上,将其中每个被重复多次执行、每次处理不同数据的子模块,分离成为具有很多不同线程执行在众核上的函数。每个函数对应的众多线程通过一定的规则组织为线程组,这些线程组是对此函数派生出的众多线程的批处理。由应用程序将众多线程分发到各个多核上,每个核心上将顺序执行其上的线程,由于任务分解,每个线程上的计算会很快完成,以此通过庞大的众核数量及快速的多线程运算来达到高度并行化的效果。
并行众核处理器通过动态随机存储器交换计算数据,众核处理器上的多级Cache存储空间通过应用程序动态的分配给每个函数派生出的各线程组及组内线程,用作线程组共享存储空间和线程私有存储空间,在计算完毕后,将存储空间收回,等待为下个函数派生出的线程重新分配。每个函数派生出的众多线程上同时执行相同的指令,并运行不同的数据,各线程之间在计算时并不互相通信,只完成自身的计算任务,是典型的单指令流多数据流并行计算结构。
本发明所使用处理数据的众核并行处理芯片可以是中央处理器(CPU)或是图形处理器(GPU)。
“众多线程”是两个以上线程的简称。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (3)
1.一种众核结构的大规模数据并行计算方法,其特征在于,计算步骤是:
1)应用程序中各模块按顺序在同构众核微处理器上运行,其中每个被重复多次执行、每次处理不同数据的子模块被分离成“众多线程”,由“众多线程”构成执行在众核上的函数,并进行计算;
2)每个函数对应的“众多线程”通过规则组织为线程组,每个线程组都是由函数派生出“众多线程”的批处理;
3)由函数派生出的“众多线程”在执行过程中,访问众核微处理器上的由线程私有存储空间、线程组共享存储空间和众核微处理器全局共享存储空间组成的三级存储空间中的数据;
4)各“众多线程”对众核微处理器上三级存储空间的访问,包含对数据的读取及运算结果的写入,每个函数对应的“众多线程”在众核微处理器上同时执行相同的指令和处理不同的数据,以此实现大规模数据的并行计算。
2.如权利要求1所述的众核结构的大规模数据并行计算方法,其特征在于,在众核微处理器上的每个“众多线程”对应的函数作为一个由线程组组成的批处理线程来执行。
3.如权利要求1所述的众核结构的大规模数据并行计算方法,其特征在于,由函数派生出的众多线程在执行过程中访问三级存储器空间的数据,线程私有存储空间是分配给每个线程的存储空间,此存储空间只有该线程能够进行访问,并与该线程具有相同的生命周期;每个线程组都允许被分配一块线程组共享存储空间,线程组共享存储空间供组内的线程进行访问,不允许其他线程组的线程访问,并且此组内共享存储空间与该线程组具有相同的生命周期;而同一函数派生的所有线程都能访问众核微处理器上的全局共享存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100207256A CN101556534A (zh) | 2009-04-21 | 2009-04-21 | 一种众核结构的大规模数据并行计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100207256A CN101556534A (zh) | 2009-04-21 | 2009-04-21 | 一种众核结构的大规模数据并行计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101556534A true CN101556534A (zh) | 2009-10-14 |
Family
ID=41174659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100207256A Pending CN101556534A (zh) | 2009-04-21 | 2009-04-21 | 一种众核结构的大规模数据并行计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101556534A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788908A (zh) * | 2010-01-26 | 2010-07-28 | 浪潮(山东)电子信息有限公司 | 一种支持断点续航的批量数据处理方法 |
CN102193830A (zh) * | 2010-03-12 | 2011-09-21 | 复旦大学 | 面向众核环境的分治映射/归约并行编程模型 |
CN102761487A (zh) * | 2012-07-12 | 2012-10-31 | 国家计算机网络与信息安全管理中心 | 数据流处理方法和系统 |
CN103257904A (zh) * | 2013-04-24 | 2013-08-21 | 上海交通大学 | 优化众核系统修复性能的运算流图映射方法及装置 |
CN103617025A (zh) * | 2013-11-27 | 2014-03-05 | 积成电子股份有限公司 | 基于数据隔离避免线程冲突的方法 |
CN103838631A (zh) * | 2014-03-11 | 2014-06-04 | 武汉科技大学 | 一种面向片上网络的多线程调度实现方法 |
CN104317770A (zh) * | 2014-10-28 | 2015-01-28 | 天津大学 | 用于众核处理系统的数据存储结构及数据访问方法 |
WO2015161826A1 (en) * | 2014-04-24 | 2015-10-29 | Mediatek Inc. | Cpu control method, electronic system control method and electronic system |
CN106095590A (zh) * | 2016-07-21 | 2016-11-09 | 联动优势科技有限公司 | 一种基于线程池的任务分配方法及装置 |
CN107329818A (zh) * | 2017-07-03 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种任务调度处理方法及装置 |
CN107608773A (zh) * | 2017-08-24 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 任务并发处理方法、装置及计算设备 |
CN110622128A (zh) * | 2017-05-16 | 2019-12-27 | 甲骨文国际公司 | 计算处理的动态并行化 |
CN110618856A (zh) * | 2018-06-18 | 2019-12-27 | Arm有限公司 | 数据处理系统 |
CN111177482A (zh) * | 2019-12-30 | 2020-05-19 | 浪潮(北京)电子信息产业有限公司 | 一种图数据并行处理的方法、装置、设备及可读存储介质 |
CN112445581A (zh) * | 2019-08-28 | 2021-03-05 | 无锡江南计算技术研究所 | 针对异构众核的快速线程启动方法 |
WO2023077875A1 (zh) * | 2021-11-08 | 2023-05-11 | 海飞科(南京)信息技术有限公司 | 用于并行执行核心程序的方法和装置 |
-
2009
- 2009-04-21 CN CNA2009100207256A patent/CN101556534A/zh active Pending
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788908A (zh) * | 2010-01-26 | 2010-07-28 | 浪潮(山东)电子信息有限公司 | 一种支持断点续航的批量数据处理方法 |
CN101788908B (zh) * | 2010-01-26 | 2014-11-05 | 浪潮(山东)电子信息有限公司 | 一种支持断点续航的批量数据处理方法 |
CN102193830A (zh) * | 2010-03-12 | 2011-09-21 | 复旦大学 | 面向众核环境的分治映射/归约并行编程模型 |
CN102193830B (zh) * | 2010-03-12 | 2014-06-11 | 复旦大学 | 面向众核环境的分治映射/归约并行编程模型 |
CN102761487B (zh) * | 2012-07-12 | 2016-04-27 | 国家计算机网络与信息安全管理中心 | 数据流处理方法和系统 |
CN102761487A (zh) * | 2012-07-12 | 2012-10-31 | 国家计算机网络与信息安全管理中心 | 数据流处理方法和系统 |
CN103257904A (zh) * | 2013-04-24 | 2013-08-21 | 上海交通大学 | 优化众核系统修复性能的运算流图映射方法及装置 |
CN103257904B (zh) * | 2013-04-24 | 2016-05-04 | 上海交通大学 | 优化众核系统修复性能的运算流图映射方法及装置 |
CN103617025B (zh) * | 2013-11-27 | 2017-03-08 | 积成电子股份有限公司 | 基于数据隔离避免线程冲突的方法 |
CN103617025A (zh) * | 2013-11-27 | 2014-03-05 | 积成电子股份有限公司 | 基于数据隔离避免线程冲突的方法 |
CN103838631A (zh) * | 2014-03-11 | 2014-06-04 | 武汉科技大学 | 一种面向片上网络的多线程调度实现方法 |
CN103838631B (zh) * | 2014-03-11 | 2017-04-19 | 武汉科技大学 | 一种面向片上网络的多线程调度实现方法 |
US9740660B2 (en) | 2014-04-24 | 2017-08-22 | Mediatek Inc. | CPU control method, electronic system control method and electronic system for improved CPU utilization in executing functions |
CN105940376A (zh) * | 2014-04-24 | 2016-09-14 | 联发科技股份有限公司 | 中央处理单元控制方法、电子系统控制方法及电子系统 |
WO2015161826A1 (en) * | 2014-04-24 | 2015-10-29 | Mediatek Inc. | Cpu control method, electronic system control method and electronic system |
CN104317770A (zh) * | 2014-10-28 | 2015-01-28 | 天津大学 | 用于众核处理系统的数据存储结构及数据访问方法 |
CN104317770B (zh) * | 2014-10-28 | 2017-03-08 | 天津大学 | 用于众核处理系统的数据存储结构及数据访问方法 |
CN106095590A (zh) * | 2016-07-21 | 2016-11-09 | 联动优势科技有限公司 | 一种基于线程池的任务分配方法及装置 |
CN106095590B (zh) * | 2016-07-21 | 2019-05-03 | 联动优势科技有限公司 | 一种基于线程池的任务分配方法及装置 |
CN110622128A (zh) * | 2017-05-16 | 2019-12-27 | 甲骨文国际公司 | 计算处理的动态并行化 |
CN107329818A (zh) * | 2017-07-03 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种任务调度处理方法及装置 |
CN107608773A (zh) * | 2017-08-24 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 任务并发处理方法、装置及计算设备 |
CN110618856A (zh) * | 2018-06-18 | 2019-12-27 | Arm有限公司 | 数据处理系统 |
CN110618856B (zh) * | 2018-06-18 | 2024-04-26 | Arm有限公司 | 数据处理系统 |
CN112445581A (zh) * | 2019-08-28 | 2021-03-05 | 无锡江南计算技术研究所 | 针对异构众核的快速线程启动方法 |
CN111177482A (zh) * | 2019-12-30 | 2020-05-19 | 浪潮(北京)电子信息产业有限公司 | 一种图数据并行处理的方法、装置、设备及可读存储介质 |
CN111177482B (zh) * | 2019-12-30 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种图数据并行处理的方法、装置、设备及可读存储介质 |
WO2023077875A1 (zh) * | 2021-11-08 | 2023-05-11 | 海飞科(南京)信息技术有限公司 | 用于并行执行核心程序的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101556534A (zh) | 一种众核结构的大规模数据并行计算方法 | |
Ahn et al. | PIM-enabled instructions: A low-overhead, locality-aware processing-in-memory architecture | |
Zaruba et al. | Manticore: A 4096-core RISC-V chiplet architecture for ultraefficient floating-point computing | |
Chang et al. | A scalable, numerically stable, high-performance tridiagonal solver using GPUs | |
Malas et al. | Multicore-optimized wavefront diamond blocking for optimizing stencil updates | |
Yang et al. | Molecular dynamics range-limited force evaluation optimized for FPGAs | |
Li et al. | PIM-Align: A processing-in-memory architecture for FM-Index search algorithm | |
Li et al. | PIMS: A lightweight processing-in-memory accelerator for stencil computations | |
Torabzadehkashi et al. | Accelerating hpc applications using computational storage devices | |
Yin et al. | Conflict-free loop mapping for coarse-grained reconfigurable architecture with multi-bank memory | |
Yao et al. | ScalaGraph: A scalable accelerator for massively parallel graph processing | |
Soltaniyeh et al. | Synergistic CPU-FPGA acceleration of sparse linear algebra | |
Zhang et al. | NUMA-Aware DGEMM based on 64-bit ARMv8 multicore processors architecture | |
Ross et al. | Implementing openshmem for the adapteva epiphany risc array processor | |
Liu et al. | Parallel reconstruction of neighbor-joining trees for large multiple sequence alignments using CUDA | |
Chen et al. | GCIM: Towards Efficient Processing of Graph Convolutional Networks in 3D-Stacked Memory | |
Qiu et al. | Refresh-aware loop scheduling for high performance low power volatile STT-RAM | |
Qureshi et al. | Genome sequence alignment-design space exploration for optimal performance and energy architectures | |
Addisie et al. | Centaur: Hybrid processing in on/off-chip memory architecture for graph analytics | |
Gao et al. | Optimization of reactive force field simulation: Refactor, parallelization, and vectorization for interactions | |
Shukla et al. | Multi-science applications with single codebase-GAMER-for massively parallel architectures | |
Chen et al. | Towards efficient short-range pair interaction on sunway many-core architecture | |
Chen et al. | Tile-based architecture exploration for convolutional accelerators in deep neural networks | |
Fan et al. | Scalable and efficient graph traversal on high-throughput cluster | |
Riha et al. | Task scheduling for GPU accelerated OLAP systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091014 |