CN104461466B - 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 - Google Patents
基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 Download PDFInfo
- Publication number
- CN104461466B CN104461466B CN201310442075.0A CN201310442075A CN104461466B CN 104461466 B CN104461466 B CN 104461466B CN 201310442075 A CN201310442075 A CN 201310442075A CN 104461466 B CN104461466 B CN 104461466B
- Authority
- CN
- China
- Prior art keywords
- mpi
- openmp
- parallel
- instruct
- calculate node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000008569 process Effects 0.000 claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 30
- 239000011159 matrix material Substances 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 230000009467 reduction Effects 0.000 claims abstract description 20
- 238000002939 conjugate gradient method Methods 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 6
- 230000000977 initiatory effect Effects 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 241001229889 Metis Species 0.000 claims description 2
- 241001269238 Data Species 0.000 claims 1
- 230000001351 cycling effect Effects 0.000 abstract description 3
- 230000008901 benefit Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000021615 conjugation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012679 convergent method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 235000015096 spirit Nutrition 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,包括:根据计算节点数目和节点内可用CPU核数确定可调用的MPI进程数和OpenMP线程数;每个进程读入已有子稀疏矩阵A、子初始向量x0、块向量b和最大计算公差Tolerance;每个进程开启多线程编译指令;在各个进程上进行预条件共轭梯度法的循环计算;若计算的误差小于允许值,循环结束,否则继续循环计算;归约各个进程的计算结果,输出问题的解;并行计算时,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行。
Description
技术领域
本发明涉及一种并行计算技术,具体地说,涉及一种并行计算提高计算速度的方法。
背景技术
迭代法是目前求解大型稀疏线性方程组的主流方法,迭代法中的预条件共轭梯度法是通过预处理技术减少共轭梯度法的迭代次数,并能加速收敛的一种方法,在工程和科学计算中已有广泛的应用。共轭梯度法是求解特定线性系统的数值解的方法,其中的系数矩阵为对称和正定的实数阵。随着科学与工程问题的规模和复杂程度的提高,串行共轭梯度法已经很难满足对稀疏线性系统的求解规模和速度的要求。
由于串行计算本身存在的瓶颈,当计算量相对较大,计算机本身的性能将大大制约其进行演算的效率。现有技术中采用串行方法计算共轭梯度法,仅在处理稀疏矩阵向量乘时才启用MPI,通过在各节点上计算分块稀疏矩阵与分块向量的乘积实现并行计算。但共轭梯度法除了稀疏矩阵向量乘,还有多个向量与向量、标量与向量的乘积和求和,以及线性方程组求解等计算步骤,这些计算仍然使用串行方法计算,不能最大限度地将算法并行优化。对于分布式和共享式存储结构混合的SMP集群系统,难以充分利用计算资源,提升其计算速度。
发明内容
本发明的目的在于提供一种基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,通过利用集群以及多核平台的优势,提升共轭梯度法的计算速度,满足对稀疏线性系统的求解规模和速度的要求。
为了实现上述目的,本发明所采用的技术方案如下:
一种基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,包括以下步骤:
(1)计算准备、
a)启动MPI多进程计算,其中进程数小于或等于可用计算节点数目;
b)每个进程读入子稀疏矩阵A、子初始向量x0、块向量b和最大计算公差Tolerance,子稀疏矩阵A、子初始向量x0和块向量b是通过网格划分软件划分问题的计算域后生成;
(2)开始预条件共轭梯度法的MPI+OpenMP并行的循环计算
1)根据初始值x0,计算r=b-Ax0;
2)每个进程开启OpenMP多线程编译指令,其中线程数小于或等于该线程所处计算节点可用CPU核数目;
3)开始for i=1,2,...循环;
4)#pragma omp for指令多线程并行计算z=M-1r;
5)#pragma omp for指令多线程并行计算ρi-1=rTz;
6)#pragma omp single指令单线程进行MPI通信,MPI_Allreduce函数归约各计算节点的ρi-1;
7)if i=1β=0elseβ=ρi-1/ρi-2;
8)#pragma omp for指令多线程并行计算p=z+βp;
9)#pragma omp for指令多线程并行计算q=Ap;
10)#pragma omp for指令多线程并行计算α=ρi-1/pTq;
11)#pragma omp reduction指令多线程并行计算x=x+αp;
12)#pragma omp reduction指令多线程并行计算r=r-αq;
13)#pragma omp single指令单线程进行MPI通信,MPI_Allreduce归约各计算节点r的范数;
14)if||r||<Tolerance,循环迭代终止;else goto 3);
15)end/*结束for循环和OpenMP多线程计算*/;
(3)各计算节点的计算结果x归约后得到最终计算结果。
并行计算时,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行。
进一步,所述网格划分软件可为Metis或ParMetis。
进一步,开启MPI多进程计算和OpenMP多线程计算后,能够针对多核SMP集群多核、多节点的硬件资源特性,实现计算节点间和计算节点内的两级并行。
进一步,并行计算执行过程中,计算节点间(即进程间)通过MPI消息传递方式通信数据,在计算节点内(即进程内)通过OpenMP线程组的共享内存方式实现数据共享。
进一步,每一子稀疏矩阵的存储格式为CSR。
进一步,并行计算执行过程中,可以访问的存储空间分为三级存储空间,进程控制的处理器全局共享第一级存储空间,线程组共享第二级存储空间,线程私有第三级存储空间。
与现有技术相比,本发明融合了消息传递模型和多线程并行编程模型的优点,更好地解决每个计算节点内各个处理器间的交互,充分利用计算资源,提高预条件共轭梯度法的计算速度。
附图说明
图1为本发明的编程模式示意图;
图2为本发明的流程步骤示意图;
图3为本发明的稀疏矩阵向量乘的示意图。
具体实施方式
下面结合附图和具体实施例对本发明基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法作进一步说明。
高性能计算机(HPC)按其存储结构可分为共享存储结构和分布存储结构两大类。分布式存储系统没有一个统一的内存空间,其中的一个或多个处理器和它们的内存空间构成一个独立的系统,多个系统由一个操作系统控制,可以独立运行。每个系统叫作节点,这些节点使用网络接口相互连接进行通信。共享式存储系统多为对称式共享存储体系结构,又叫对称多处理器结构(Symmetric Multi-Processing,SMP)。服务器中多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA,Uniform Memory Access)。SMP集群系统可以看成是这两种内存结构的集合,它由拥有多个处理器的SMP节点和连接各节点间的高速网络组成一套多级体系结构。SMP集群即有分布式节点系统的良好扩展性,也支持共享式存储系统的数据共享。因此当前以SMP集群为代表的高性能计算机发展迅速,成为高性能计算机领域的主流。
不同存储结构的高性能计算机有相应的并行编程模型,其中一种是基于消息传递模型,一般应用于分布式存储结构,也可用于共享式存储结构。通过将计算任务或数据按照进程数划分,各个并行执行的任务之间通过传递消息来交换信息、协调步伐、控制执行。其中,MPI(message passing interface)是为开发基于消息传递模型的并行程序而制定的工业标准。另一种是基于共享存储的多线程并行编程模型。OpenMP是其中的共享存储并行编程的典型方法,能提供描述并行区域的编译制导语句并隐藏有关并行线程创建和管理的细节,是一种能显式指导多线程、共享内存并行的应用程序编程接口(API)。OpenMP标准化了细粒度的并行性,同时也支持粗粒度的并行性。
本发明采用MPI和OpenMP混合编程模型,将分布式存储编程模型MPl、共享存储编程模型OpenMP相结合,充分利用SMP集群层次存储结构的特点。本发明的MPI和OpenMP混合编程模型具有的层次结构为上层的MPI表示节点间的并行,下层的OpenMP表示节点内的并行。本发明的MPI和OpenMP混合编程模型基于如下的理论分配模型:首先对问题进行MPI分解,将任务划分成通信不密集的几个部分,每个部分分配到一个SMP节点(即一个进程)上,节点间通过消息传递进行通信;然后添加OpenMP编译制导语句将每个节点上的部分再次分解,并分配到SMP的不同处理器上由多个线程并行执行,节点内通过共享存储进行通信。MPI和OpenMP混合编程模型提供了节点间和节点内的两级并行机制,结合了进程级的粗粒度并行)和循环级的细粒度并行。
本发明公开了一种基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,包括以下步骤:
根据计算节点数目和节点内可用CPU核数确定可调用的MPI进程数和OpenMP线程数;每个进程读入已有子稀疏矩阵A、子初始向量x0和块向量b和最大计算公差Tolerance;每个进程开启多线程编译指令;在各个进程上进行预条件共轭梯度法的循环计算;若计算的误差小于允许值,循环结束,否则继续循环计算;归约各个进程的计算结果,输出问题的解;并行计算时,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行。
开启多线程时,每一进程可开启的线程数小于或等于该进程的可用处理器数。每一子稀疏矩阵的存储格式为CSR(Compressed Sparse Row)。其中,程序在预条件共轭梯度算法循环开始前动态确定可用线程数,开启OpenMP多线程,在循环中根据需要调用不同OpenMP多线程指令,如for循环指令、reduction指令、single指令等。并行计算执行过程中,可以访问的存储空间分为三级存储空间:进程控制的多核微处理器全局共享第一级存储空间,线程组共享第二级存储空间,线程私有第三级存储空间。线程组共享的第二级存储空间在共轭梯度循环前创建,将当前预条件共轭梯度算法函数内的变量空间作为线程组的共享的第二级存储空间,线程组内的每个线程均能访问这一空间,但其它线程组不能访问。同时,每个线程会被分配一个只有线程才能访问的私有的第三级存储空间,该存储空间具有所属线程相同的生命周期。
实施例一
本实施例采用基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法求解大规模线性方程组。预条件共轭梯度法是求解对称正定稀疏矩阵线性方程组的迭代法,在工程和科学计算中有广泛的应用,其算法如下所示:
取x(0)∈Rn,计算r(0)=b-Ax(0),令p(0)=r(0)
对k=0,1,2,…,计算
x(k+1)=x(k+1)+αkp(k)
r(k+1)=b-Ax(k+1)=r(k)-αkAp(k)
若则输出x*=x(k+1),停止计算,否则,
p(k+1)=r(k+1)+βkp(k)
其中,在大型工程和计算问题中,x是需求解的向量,b是已知向量,A为系数矩阵,其通常为大型稀疏矩阵。稀疏矩阵是指非零值占矩阵极小比例的矩阵(通常小于1%),绝大部分值为零。稀疏矩阵存储方法是Compressed Sparse Row(CSR)格式,其使用3个数组表示一个维数为m×n,含有nnz个非零元的稀疏矩阵:数组val和数组colval分别保存每个非零元的取值和列值,数组rowptr保存每行第一个非零元在val或colval中的索引位置。本发明采用MPI和OpenMP混合编程模型,让预条件共轭梯度法在多核多节点的SMP集群系统上能够更好地利用SMP集群的特性,实现计算速度的提升。
请参阅图2,采用基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法求解大规模线性方程组时,包括:
启动MPI多进程计算,其中进程数小于或等于可用计算节点数目。
每个进程读入已有子稀疏矩阵A、子初始向量x0、块向量b和最大计算公差Tolerance,子稀疏矩阵A、子初始向量x0和块向量b是通过网格划分软件Metis或ParMetis划分问题的计算域为子计算域后生成。当然,本发明并不限于此,在其他实施例中,所述网格划分软件也可为其他。
每个进程初始化预条件共轭梯度法函数的参数r(0)和p(0)。
每个进程开启OpenMP多线程编译指令,其中线程数小于或等于该线程所处计算节点可用CPU核数目。
开始预条件共轭梯度法的MPI+OpenMP并行的循环计算。
若计算的误差小于允许值,循环结束,否则继续循环计算。
MPI_Allreduce函数归约各个进程的计算结果,得到最终的线性方程组的解x,输出线性方程组的解x。
并行计算时,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行。程序在循环开始前动态确定可用线程数,开启OpenMP多线程,在循环中根据需要调用不同OpenMP多线程指令。
本实施例中预条件共轭梯度法伪代码如下所示:
根据初始值x(0),计算r(0)=b-Ax(0)
其中M-1是预条件子,是矩阵A的逆。对于矩阵A,如果存在矩阵B使得AB+BA=I,其中I为单位矩阵。则称B为A的逆矩阵,记为A-1。
请参阅图1,本发明的MPI和OpenMP混合编程模型的编程模式如图所示,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行。程序在预条件共轭梯度算法循环开始前动态确定可用线程数,开启OpenMP多线程,在循环中根据需要调用不同OpenMP多线程指令,如for循环指令、reduction指令、single指令等。
本发明在并行计算执行过程中,可以访问的存储空间分为三级存储空间:进程控制的多核微处理器全局共享第一级存储空间,线程组共享第二级存储空间,线程私有第三级存储空间。线程组共享的第二级存储空间在共轭梯度循环前创建,将当前预条件共轭梯度算法函数内的变量空间作为线程组的共享的第二级存储空间,线程组内的每个线程均能访问这一空间,但其它线程组不能访问。同时,每个线程会被分配一个只有线程才能访问的私有的第三级存储空间,该存储空间具有所属线程相同的生命周期。
请参阅图1、图2和图3,本实施例的具体步骤如下:
(1)计算准备
a)启动MPI多进程计算,其中进程数小于或等于可用计算节点数目。
b)每个进程读入子稀疏矩阵A、子初始向量x0、块向量b和最大计算公差Tolerance,子稀疏矩阵A、子初始向量x0和块向量b是通过网格划分软件Metis或ParMetis划分问题的计算域为子计算域后生成。
(2)开始预条件共轭梯度法的MPI+OpenMP并行的循环计算
1)根据初始值x0,计算r=b-Ax0。
2)每个进程开启OpenMP多线程编译指令,其中线程数小于或等于该线程所处计算节点可用CPU核数目。
3)开始for i=1,2,...循环。
4)#pragma omp for指令多线程并行计算z=M-1r。
5)#pragma omp for指令多线程并行计算ρi-1=rTz。
6)#pragma omp single指令单线程进行MPI通信,MPI_Allreduce函数归约各计算节点的ρi-1。
7)if i=1β=0elseβ=ρi-1/ρi-2。
8)#pragma omp for指令多线程并行计算p=z+βp。
9)#pragma omp for指令多线程并行计算q=Ap。
10)#pragma omp for指令多线程并行计算α=ρi-1/pTq
11)#pragma omp reduction指令多线程并行计算x=x+αp。
12)#pragma omp reduction指令多线程并行计算r=r-αq。
13)#pragma omp single指令单线程进行MPI_Allreduce归约各计算节点r的范数。
14)if||r||<Tolerance,循环迭代终止;else goto 3)。
15)end/*结束for循环和OpenMP多线程计算*/。
(3)各计算节点的计算结果x归约后得到最终计算结果,得到最终的线性方程组的解x,输出线性方程组的解x。
本发明通过消息传递模型处理多进程间的粗粒度通信,而多线程并行编程模型能提供轻量级线程,更好地解决每个计算节点内各个处理器间的交互,充分利用基于分布式存储的消息传递模型和基于共享存储的多线程并行编程模型的优点。
本发明的MPI+OpenMP混合并行模型能通过共享内存访问代替节点间的消息传递,降低数据通信的开销。
由于共享内存的数据读取效率要高于不同内存间的数据传递,因此在同样数目处理器情况下,MPI+OpenMP混合并行模型的数据读取效率要高于MPI模型的效率,本发明采用的MPI+OpenMP混合并行模型能提高数据读取效率。
OpenMP并行模型不能扩展超过计算机内部处理器数目,MPI模型在进程个数增加时,会因消息传递开销的增加降低并行性能,而本发明的MPI+OpenMP混合并行模型能兼顾两者的优点,在同样数目处理器中的通信开销较低,并行性能良好,有潜在的可扩展性,本发明采用的MPI+OpenMP混合并行模型能提高可扩展性。
本发明融合了消息传递模型和多线程并行编程模型的优点,能在SMP集群上减少计算的挂钟时间,提高预条件共轭梯度法的计算速度。
上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所揭示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。
Claims (5)
1.一种基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,其特征在于,包括以下步骤:
(1)计算准备
a)启动MPI多进程计算,其中进程数小于或等于可用计算节点数目;
b)每个进程读入子稀疏矩阵A、子初始向量x(0)、块向量b和最大计算公差Tolerance,子稀疏矩阵A、子初始向量x(0)和块向量b是通过网格划分软件划分问题的计算域后生成;
(2)开始预条件共轭梯度法的MPI+OpenMP并行的循环计算;
1)根据子初始向量x(0),计算r(0)=b-Ax(0);
2)每个进程开启OpenMP多线程编译指令,其中线程数小于或等于该线程所处计算节点可用CPU核数目;
3)开始for i=1,2,...循环;
4)#pragma omp for指令多线程并行计算Mz(i-1)=r(i-1)M-1,其中M-1是预条件子,是矩阵A的逆;
5)#pragma omp for指令多线程并行计算
6)#pragma omp single指令单线程进行MPI通信,MPI_Allreduce函数归约各计算节点的ρi-1;
7)if i=1p(1)=z(0)elseβi-1=ρi-1/ρi-2;
8)#pragma omp for指令多线程并行计算p(i)=z(i-1)+βi-1p(i-1);
9)#pragma omp for指令多线程并行计算q(i)=Ap(i);
10)#pragma omp for指令多线程并行计算αi=ρi-1/p(i)Tq(i);
11)#pragma omp reduction指令多线程并行计算x(i)=x(i-1)+αip(i);
12)#pragma omp reduction指令多线程并行计算r(i)=r(i-1)-αiq(i);
13)#pragma omp single指令单线程进行MPI通信,MPI_Allreduce函数归约各计算节点r(i)的范数;
14)if||r(i)|<Tolerance,循环迭代终止;else goto 3);
15)end;
(3)各计算节点的计算结果x(i)归约后得到最终计算结果;
并行计算时,首先MPI进程启动,对问题进行多进程分解,开始节点间的并行,每个MPI进程被分配到一个计算节点上,进程间使用消息传递交换信息;然后在每个MPI进程中,使用OpenMP制导指令创建一组线程,并分配到计算节点的不同处理器上并行执行;
并行计算执行过程中,可以访问的存储空间分为三级存储空间,进程控制的处理器全局共享第一级存储空间,线程组共享第二级存储空间,线程私有第三级存储空间。
2.如权利要求1所述的基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,其特征在于:所述网格划分软件可为Metis或ParMetis。
3.如权利要求1所述的基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,其特征在于:开启MPI多进程计算和OpenMP多线程计算后,能够针对多核SMP集群多核、多节点的硬件资源特性,实现计算节点间和计算节点内的两级并行。
4.如权利要求3所述的基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,其特征在于:并行计算执行过程中,计算节点间通过MPI消息传递方式通信数据,在计算节点内通过OpenMP线程组的共享内存方式实现数据共享。
5.如权利要求1所述的基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法,其特征在于:每一子稀疏矩阵的存储格式为CSR。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310442075.0A CN104461466B (zh) | 2013-09-25 | 2013-09-25 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310442075.0A CN104461466B (zh) | 2013-09-25 | 2013-09-25 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461466A CN104461466A (zh) | 2015-03-25 |
CN104461466B true CN104461466B (zh) | 2018-09-21 |
Family
ID=52907584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310442075.0A Active CN104461466B (zh) | 2013-09-25 | 2013-09-25 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461466B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951427B (zh) * | 2015-06-30 | 2019-01-11 | 深圳清华大学研究院 | 以矩阵为中心的分布式计算框架 |
CN105068787A (zh) * | 2015-08-28 | 2015-11-18 | 华南理工大学 | 一种稀疏矩阵向量乘法的异构并行计算方法 |
CN105260342A (zh) * | 2015-09-22 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种对称正定线性方程组的求解方法与系统 |
CN105677488B (zh) * | 2016-01-12 | 2019-05-17 | 中国人民解放军国防科学技术大学 | 一种混合并行方式栅格影像金字塔构建方法 |
CN106569869B (zh) * | 2016-11-14 | 2019-04-19 | 平安科技(深圳)有限公司 | 插件化打包方法及装置 |
CN107273339A (zh) * | 2017-06-21 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种任务处理方法及装置 |
CN107301155A (zh) * | 2017-06-27 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种数据处理方法及处理装置 |
CN107343302B (zh) * | 2017-07-11 | 2021-02-26 | 南京航空航天大学 | 一种基于多核处理器的传感网路由结构优化方法 |
CN107526104A (zh) * | 2017-08-28 | 2017-12-29 | 电子科技大学 | 基于多机多核的裂缝介质地震波场数值模拟方法 |
CN108108242B (zh) * | 2017-12-11 | 2021-05-18 | 成都四象联创科技有限公司 | 基于大数据的存储层智能分发控制方法 |
CN108021395B (zh) * | 2017-12-27 | 2022-04-29 | 北京金山安全软件有限公司 | 一种面向神经网络的数据并行处理方法及系统 |
US10691772B2 (en) * | 2018-04-20 | 2020-06-23 | Advanced Micro Devices, Inc. | High-performance sparse triangular solve on graphics processing units |
CN108932172B (zh) * | 2018-06-27 | 2021-01-19 | 西安交通大学 | 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 |
CN109062636A (zh) * | 2018-07-20 | 2018-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备及介质 |
CN109271344B (zh) * | 2018-08-07 | 2020-08-04 | 浙江大学 | 基于申威芯片架构并行文件读取的数据预处理方法 |
WO2020122750A1 (en) * | 2018-12-13 | 2020-06-18 | Huawei Technologies Co., Ltd. | Apparatus, method and computer program product for performing a collective communication operation in a data communications network |
US11099790B2 (en) | 2019-01-10 | 2021-08-24 | Samsung Electronics Co., Ltd. | Parallel key value based multithread machine learning leveraging KV-SSDS |
CN110852005B (zh) * | 2019-10-21 | 2021-06-15 | 北京理工大学 | 一种大规模并行计算的自适应扩大计算域的数值模拟方法 |
CN111078214B (zh) * | 2019-12-02 | 2021-05-28 | 西安交通大学 | 一种将模型与r进行耦合交互的方法 |
CN111857833A (zh) * | 2020-07-16 | 2020-10-30 | 中国科学院计算技术研究所 | 并行计算智能处理器及并行计算智能处理方法 |
CN112346873B (zh) * | 2020-11-26 | 2022-02-11 | 中国核动力研究设计院 | 适应现代超级计算机硬件架构的特征线法多级并行方法 |
CN114764346A (zh) * | 2021-01-14 | 2022-07-19 | 华为技术有限公司 | 一种数据传输方法、系统以及计算节点 |
CN112861333B (zh) * | 2021-01-29 | 2022-11-15 | 中国海洋大学 | 基于OpenMP和MPI的电磁波与等离子体作用的计算方法及装置 |
CN113259482B (zh) * | 2021-06-21 | 2021-12-07 | 北京卡普拉科技有限公司 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
CN115599507A (zh) * | 2021-07-07 | 2023-01-13 | 清华大学(Cn) | 数据处理方法、执行工作站、电子设备和存储介质 |
CN113900808A (zh) * | 2021-10-09 | 2022-01-07 | 合肥工业大学 | 一种基于任意多面体非结构网格的mpi并行数据结构 |
CN113791912B (zh) * | 2021-11-11 | 2022-02-11 | 中国空气动力研究与发展中心计算空气动力研究所 | 基于mpi+x的dsmc并行计算方法、设备及介质 |
CN114970395A (zh) * | 2022-06-10 | 2022-08-30 | 青岛大学 | 基于二维圣维南方程的大规模流体模拟方法及系统 |
CN117311948B (zh) * | 2023-11-27 | 2024-03-19 | 湖南迈曦软件有限责任公司 | Cpu与gpu异构并行的自动多重子结构数据处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819651A (zh) * | 2010-04-16 | 2010-09-01 | 浙江大学 | 粒子群算法在多机上并行执行的方法 |
US7886084B2 (en) * | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050197808A1 (en) * | 2004-03-08 | 2005-09-08 | An-Yu Kuo | Method for determining electrical and magnetic field effects |
-
2013
- 2013-09-25 CN CN201310442075.0A patent/CN104461466B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886084B2 (en) * | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
CN101819651A (zh) * | 2010-04-16 | 2010-09-01 | 浙江大学 | 粒子群算法在多机上并行执行的方法 |
Non-Patent Citations (5)
Title |
---|
Conjugate-Gradients Algorithms: An MPI-OpenMP Implementation on Distributed Shared Memory Systems;P Lanucara等;《Proceedings of Ewomp》;19991231;全文 * |
Hybrid MPI+OpenMP parallelization of an FFT-based 3D Poisson solver with one periodic direction;A Gorobets等;《Computers & Fluids》;20110131;第49卷(第1期);全文 * |
基于GPU的稀疏线性系统的预条件共轭梯度法;张健飞等;《计算机应用》;20130331;第33卷(第3期);正文第826-827页 * |
基于MPI与OpenMP混合并行计算技术的研究;李苏平等;《软件导刊》;20100331;第9卷(第3期);正文第50页,图1 * |
基于SMP集群的MPI+OpenMP混合编程模型研究;潘卫等;《计算机应用研究》;20091231;第26卷(第12期);正文第4592-4594页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461466A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461466B (zh) | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 | |
CN104461467B (zh) | 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
Pei et al. | Iteration time prediction for cnn in multi-gpu platform: modeling and analysis | |
Bosilca et al. | Performance portability of a GPU enabled factorization with the DAGuE framework | |
Zhao et al. | Butterfly mixing: Accelerating incremental-update algorithms on clusters | |
Bayatpour et al. | Salar: Scalable and adaptive designs for large message reduction collectives | |
Bosilca | Dense linear algebra on distributed heterogeneous hardware with a symbolic dag approach | |
Hamidouche et al. | Exploiting GPUDirect RDMA in designing high performance OpenSHMEM for NVIDIA GPU clusters | |
Holk et al. | Declarative parallel programming for GPUs | |
Liu et al. | Parallel reconstruction of neighbor-joining trees for large multiple sequence alignments using CUDA | |
CN109840306B (zh) | 一种基于递归的并行快速傅里叶变换通信优化方法和系统 | |
Nedjah et al. | Parallel implementations of the cooperative particle swarm optimization on many-core and multi-core architectures | |
Trott | LAMMPScuda-a new GPU accelerated Molecular Dynamics Simulations Package and its Application to Ion-Conducting Glasses. | |
Siegel et al. | Efficient sparse matrix-matrix multiplication on heterogeneous high performance systems | |
Lin et al. | swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer | |
Krisilias et al. | A performance evaluation of distributed deep learning frameworks on CPU clusters using image classification workloads | |
Eleliemy et al. | Dynamic loop scheduling using MPI passive-target remote memory access | |
Halbiniak et al. | Single‐and multi‐GPU computing on NVIDIA‐and AMD‐based server platforms for solidification modeling application | |
CN116774914A (zh) | 分布式共享存储器 | |
Tabuchi et al. | The 16,384-node parallelism of 3D-CNN training on an arm CPU based supercomputer | |
Bernaschi et al. | Multi-kepler gpu vs. multi-intel mic: A two test case performance study | |
VanCompernolle et al. | Maximum clique solver using bitsets on GPUs | |
Huang et al. | Performance optimization of High-Performance LINPACK based on GPU-centric model on heterogeneous systems | |
Yin et al. | Heterogeneous Big Data Parallel Computing Optimization Model using MPI/OpenMP Hybrid and Sensor Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |