CN108932172A - 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 - Google Patents

一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 Download PDF

Info

Publication number
CN108932172A
CN108932172A CN201810681045.8A CN201810681045A CN108932172A CN 108932172 A CN108932172 A CN 108932172A CN 201810681045 A CN201810681045 A CN 201810681045A CN 108932172 A CN108932172 A CN 108932172A
Authority
CN
China
Prior art keywords
openmp
data
shared
buffer
mark
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.)
Granted
Application number
CN201810681045.8A
Other languages
English (en)
Other versions
CN108932172B (zh
Inventor
董小社
何锋
张兴军
邹年俊
肖兮
李胜利
肖强
王靖桦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201810681045.8A priority Critical patent/CN108932172B/zh
Publication of CN108932172A publication Critical patent/CN108932172A/zh
Application granted granted Critical
Publication of CN108932172B publication Critical patent/CN108932172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Multi Processors (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明公开了一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法,包括以下步骤:每个MPI进程根据进程内线程的总个数初始化用于OpenMP共享缓冲通信的内存缓冲区,并初始化用于共享缓冲区同步的互斥锁,将互斥锁置于加锁状态;启动OpenMP线程进行迭代计算;每个线程根据标志字将需要通信的边界数据写入共享缓冲区,结束后将同步的互斥锁解锁;每个线程利用互斥锁同步从共享缓冲区读取自己需要的其他线程的边界数据;每个线程根据上步判断条件,继续依次判断自己的下一个面是否需要通信并加锁读取数据;判断标志字节是否为真,若为真则则返回到轮询的开始,继续进行加锁读取判断,否则终止循环,每个线程都通过共享缓冲获得了需要交换的边界数据。

Description

一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通 信同步方法
技术领域
本发明属于计算流体力学与计算机交叉领域,特别涉及一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法。
背景技术
计算流体动力学(Computational Fluid Dynamics,CFD)是一门借助于数值计算和计算机科学对流体力学问题进行数值模拟和分析的交叉学科,为流体力学的理论和工程研究供了廉价的模拟和优化途径。CFD数值算法早期受限于计算机硬件条件,计算规模较小、模拟精度低。随着计算机技术的发展,特别以MPI和OpenMP为代表的并行编程框架标准的成熟,在工程应用中,并行CFD仿真软件使用成千上万核进行模拟已经十分普遍。
为了提高流体机械并行仿真效率,已有不少尝试使用OpenMP、MPI等标准框架的混合并行编程。目前OpenMP/MPI混合编程在CFD仿真程序中的使用主要分为两大类:第一类是将OpenMP用于MPI进程中for循环、代码段等细粒度并行,其方案对于资源十分敏感,如果细粒度并行时没有足够的计算资源,线程的频繁调度反而引起性能下降,如果预留计算资源,在细粒度并行之外又会造成计算资源的长时间闲置;第二类是将OpenMP用于粗粒度并行,此时计算任务由MPI进程内的OpenMP线程完成,MPI进程只负责资源管理和进程间通信,其方案有效的适应了超算的体系架构,理论上较好的并行效果,但是由于OpenMP共享内存通信缺乏较好的线程间同步方法,以往使用OpenMP粗放的显式栅栏同步,大部分情况不如纯MPI程序高效。
发明内容
本发明的目的在于提供一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法,以解决上述问题。
为实现上述目的,本发明采用以下技术方案:
一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法,包括以下步骤:
步骤1,每个MPI进程根据进程内线程的总个数初始化用于OpenMP共享缓冲通信的内存缓冲区,并初始化用于共享缓冲区同步的互斥锁,将互斥锁置于加锁状态;
步骤2,启动OpenMP线程进行迭代计算,每个OpenMP线程设置并初始化每个边界面是否需要OpenMP共享内存通信的标志字节Mark,计算索引号以确定使用主或者备缓冲区;
步骤3,每个线程将需要通信的边界数据写入共享缓冲区,结束后将同步的互斥锁解锁;
步骤4,每个线程利用互斥锁同步机制,从共享缓冲区读取自己需要的其他线程的边界数据;
步骤5,每个线程根据步骤4的条件,继续依次判断自己的下一个面是否需要通信并加锁读取数据;
步骤6,判断标志字节Mark是否为真,如果为真,则意味着仍有某个需要通信的面尚未成功加锁读取共享缓冲通信数据,则返回步骤4,否则,终止循环,本次共享缓冲通信结束,每个线程都通过共享缓冲获得了需要交换的边界数据。
进一步的,步骤1具体包括以下步骤:
1)每个MPI进程根据其内每个线程需要进行共享内存通信的边界面的数量,每个边界面设置主、备两个用于通信的双缓冲区,使得进程内所有线程都能够访问这些共享缓冲区,交替向双缓冲区中写入每一轮迭代需要的边界数据,避免在向共享缓冲区写入数据时的“读后写”同步;
2)根据1)设置的缓冲区数量,申请相等数目的互斥锁,用于每个缓冲区的“写后读”同步,由于首次迭代时主备共享缓冲区都未写入数据,因此将所有用于同步的互斥锁都置于加锁状态,在未写入数据时拒绝读取数据。
进一步的,步骤2具体包括:
1)每个线程首先根据网格块的边界面是否需要OpenMP共享内存通信,设置标志字节Mark;如果Mark中对应边界面的相应二进制位是1,则表示该边界面需要通过共享内存进行通信,为0则不需要;根据每个边界面是否需要共享内存通信,将Mark中该二进制位的值通过公式(1)由初始化的0置反变为1,其中i是该边界面的索引编号:
Mark=(Mark|1<<(i-1)) (1)
2)根据迭代次数,通过与2取模运算的方式,来确定本次是向余数为1的主缓冲区或者余数为0的备缓冲区写入数据。
进一步的,步骤3包括:
1)根据Mark值,通过和1<<(i-1)进行与运算,取得第i个二进制位的值来判读第i个边界是否需要共享内存通信,需要时将边界数据写入对应的共享缓冲区;
2)将通信数据写入共享缓冲后,释放用于同步该块缓冲区的互斥锁,其他线程就通过加锁读取该缓冲区共享数据。
进一步的,步骤4包括:
1)每个线程通过Mark和1<<(i-1)进行与运算,i为边界面的编号索引,取出Mark中代表和边界面i是否需要通信的二进制位:如果为1,则继续尝试对负责同步该缓冲区的互斥锁进行加锁,否则标志该边界面不需要通信或者已经被成功加锁读取过,直接跳过,进行步骤5;若标志位为1,但未成功加锁,则该块缓冲区的数据尚未写入完成,跳过,执行步骤5;若标志位为1,且加锁成功,则另一个线程已经将通信数据写入该缓冲区;
2)加锁成功后,先根据公式(2)将标志边界面i是否需要通信的位置取反置为0,然后读取另一个线程写入对应共享缓冲区的边界面数据;
Mark^=(1<<(i-1)) (2)。
3)所有的边界面都遍历之后,执行步骤6。
与现有技术相比,本发明有以下技术效果:
本发明提供的一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法,首先通过互斥锁实现了细粒度的线程间通信同步,替代了粗放的显式栅栏同步方法,增加了进程内线程并行的异步性,提高了并行效率。
其次通过使用主备双缓冲机制,利用双缓冲区的交替使用,避免了细粒度“读后写”引入的同步开销,减少了加锁的次数,缩短了加锁通信时间。
最后通过设置标志位的形式,利用非阻塞加锁,设计了轮询式非阻塞加锁访问方法,进一步的避免了因为加锁带来的线程阻塞问题。
本发明在引入基于互斥锁的细粒度线程间同步的同时,通过引入双缓冲区机制、非阻塞轮询加锁访问等优化方法,优化了线程间OpenMP共享内存通信时间,提高了基于OpenMP/MPI混合并行计算的效率。
附图说明
图1为表示双缓冲机制完成共享数据的通信的示意图
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明提出的一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法的伪代码流程,如表1所示,包括:
步骤A、每个MPI进程根据进程内线程的总个数初始化用于OpenMP共享缓冲通信的内存缓冲区,并初始化用于共享缓冲区同步的互斥锁。
步骤A1、MPI进程根据其内每个线程需要进行共享内存通信的边界面的数量,每个边界面设置主、备两个用于通信的双缓冲区,使得进程内所有线程都可以访问这些共享缓冲区。对结构化六面体网格而言每个MPI进程最多需要threads*6*2个缓冲区buffer。
步骤A2、根据A1设置的缓冲区数量,申请相等数目的互斥锁,用于每个缓冲区的“写后读”同步,由于首次迭代时主、备共享缓冲区都未写入数据,因此将所有用于同步的互斥锁都置于加锁状态,在未写入数据时拒绝读取数据。
步骤B、启动OpenMP线程进行迭代计算,每个OpenMP线程设置并初始化每个边界面是否需要OpenMP共享内存通信的标志字节Mark,计算索引号以确定使用主或者备缓冲区。
步骤B1、每个线程首先根据网格块的边界面是否需要OpenMP共享内存通信,设置标志字节Mark。如果Mark中对应边界面的相应二进制位是1,则表示该边界面需要通过共享内存进行通信,为0则不需要。根据每个边界面是否需要共享内存通信,将该二进制位的值通过公式(1)由初始化的0置反变为1,其中i是该边界面的索引编号:
Mark=(Mark|1<<(i-1)) (1)
步骤B2、根据迭代次数Count,通过与2取模运算的方式,来确定本次是向主缓冲区(余数为1),还是备缓冲区(余数为0)写入数据。
步骤C、每个线程利用互斥锁同步从共享缓冲区读取自己需要的其他线程的边界数据。步骤B、C实现的OpenMP多线程通过双缓冲机制完成共享数据的通信可以用图1来表示。
步骤C1、根据B1设置的Mark值,通过和1<<(i-1)进行与运算,取得第i个二进制位的值来判读第i个边界是否需要共享内存通信,需要时将边界数据写入对应的共享缓冲区;
步骤C2、在C1将数据写入共享缓冲后,释放用于同步该块缓冲区的互斥锁,其他线程就可以通过加锁读取该缓冲区共享数据。
步骤D、步骤C结束后,每个线程开始从共享缓冲区读取自己需要的其他线程的边界数据,假设线程Tm需要读取Tn的边界面S1的数据。
步骤D1、线程Tm首先通过Mark和1<<(S1-1)进行与运算,取出Mark中代表和边界面S1是否需要通信的标志位:如果为1,则继续尝试对负责同步该缓冲区的互斥锁进行加锁,否则标志该边界面不需要通信或者已经被成功加锁读取过,直接跳过,进行步骤E。若标志位为1,但未成功加锁,则该块缓冲区的数据尚未写入完成,跳过,执行步骤E。若标志位为1,且加锁成功,则标志线程Tn已经将数据写入该缓冲区。
步骤D2、在D1加锁成功后,先根据公式(2)将标志该边界面是否需要通信的位置取反(置为0),然后读取线程Tn写入对应共享缓冲区的边界面S1的数据。
Mark^=(1<<(S1-1)) (2)
步骤D3、所有的边界面都遍历之后,执行步骤6。
步骤E、每个线程根据步骤D的条件,继续依次判断下一个面是否需要加锁通信读取数据。
步骤F、判断Mark是否为真,如果为真(不等于0)则意味着仍有某个需要通信的面尚未成功加锁读取共享缓冲通信数据,则返回步骤D执行,否则(等于0)终止循环,本次迭代通信结束,每个线程都通过共享缓冲获得了需要交换的边界数据。实验结果表明,该基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法,利用互斥锁代替显式栅栏实现了细粒度的线程间同步,使用双缓冲区机制消除了每次写共享缓冲区时“读后写”的同步,借助非阻塞加锁方法采用轮询式加锁避免了因加锁带来的线程阻塞问题,优化了线程间OpenMP共享内存通信时间,提高了基于OpenMP/MPI混合并行计算的效率。
表1轮询式双缓冲互斥锁的共享内存通信同步算法

Claims (5)

1.一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法,其特征在于,包括以下步骤:
步骤1,每个MPI进程根据进程内线程的总个数初始化用于OpenMP共享缓冲通信的内存缓冲区,并初始化用于共享缓冲区同步的互斥锁,将互斥锁置于加锁状态;
步骤2,启动OpenMP线程进行迭代计算,每个OpenMP线程设置并初始化每个边界面是否需要OpenMP共享内存通信的标志字节Mark,计算索引号以确定使用主或者备缓冲区;
步骤3,每个线程将需要通信的边界数据写入共享缓冲区,结束后将同步的互斥锁解锁;
步骤4,每个线程利用互斥锁同步机制,从共享缓冲区读取自己需要的其他线程的边界数据;
步骤5,每个线程根据步骤4的条件,继续依次判断自己的下一个面是否需要通信并加锁读取数据;
步骤6,判断标志字节Mark是否为真,如果为真,则意味着仍有某个需要通信的面尚未成功加锁并读取共享缓冲通信数据,则返回步骤4,否则,终止循环,本次共享缓冲通信结束,每个线程都通过共享缓冲获得了需要交换的边界数据。
2.根据权利要求1所述的一种基于OpenMP/MPI混合并行CFD计算的共享内存通信同步方法,其特征在于,步骤1具体包括以下步骤:
1)每个MPI进程根据其内每个线程需要进行共享内存通信的边界面的数量,每个边界面设置主、备两个用于通信的双缓冲区,使得进程内所有线程都能够访问这些共享缓冲区,交替向双缓冲区中写入每一轮迭代需要的边界数据,避免在向共享缓冲区写入数据时的“读后写”同步;
2)根据1)设置的缓冲区数量,申请相等数目的互斥锁,用于每个缓冲区的“写后读”同步,由于首次迭代时主备共享缓冲区都未写入数据,因此将所有用于同步的互斥锁都置于加锁状态,在未写入数据时拒绝读取数据。
3.根据权利要求1所述的一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法,其特征在于,步骤2具体包括:
1)每个线程首先根据网格块的边界面是否需要OpenMP共享内存通信,设置标志字节Mark;如果Mark中对应边界面的相应二进制位是1,则表示该边界面需要通过共享内存进行通信,为0则不需要;根据每个边界面是否需要共享内存通信,将Mark中该二进制位的值通过公式(1)由初始化的0置反变为1,其中i是该边界面的索引编号(1~6):
Mark=(Mark|1<<(i-1)) (1)
2)根据迭代次数,通过与2取模运算的方式,来确定本次是向余数为1的主缓冲区或余数为0的备缓冲区写入数据。
4.根据权利要求1所述的一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法,其特征在于,步骤3包括:
1)根据Mark值,通过和1<<(i-1)进行与运算,取得第i个二进制位的值来判读第i个边界是否需要共享内存通信,需要时将边界数据写入对应的共享缓冲区;
2)将通信数据写入共享缓冲后,释放用于同步该块缓冲区的互斥锁,其他线程就通过加锁读取该缓冲区共享数据。
5.根据权利要求1所述的一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法,其特征在于,步骤4包括:
1)每个线程通过Mark和1<<(i-1)进行与运算,i为边界面的编号索引,取出Mark中代表和边界面i是否需要通信的二进制位:如果为1,则继续尝试对负责同步该缓冲区的互斥锁进行加锁,否则表示该边界面不需要通信或者已经被成功加锁读取过,直接跳过,进行步骤5;若标志位为1,但未成功加锁,则该块缓冲区的数据尚未写入完成,跳过,执行步骤5;若标志位为1,且加锁成功,则另一个线程已经将通信数据写入该缓冲区;
2)加锁成功后,先根据公式(2)将标志边界面i是否需要通信的位置取反置为0,然后读取另一个线程写入对应共享缓冲区的边界面数据;
Mark^=(1<<(i-1)) (2);
3)所有的边界面都遍历之后,执行步骤6。
CN201810681045.8A 2018-06-27 2018-06-27 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法 Active CN108932172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810681045.8A CN108932172B (zh) 2018-06-27 2018-06-27 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810681045.8A CN108932172B (zh) 2018-06-27 2018-06-27 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法

Publications (2)

Publication Number Publication Date
CN108932172A true CN108932172A (zh) 2018-12-04
CN108932172B CN108932172B (zh) 2021-01-19

Family

ID=64446445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810681045.8A Active CN108932172B (zh) 2018-06-27 2018-06-27 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法

Country Status (1)

Country Link
CN (1) CN108932172B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781016A (zh) * 2019-10-30 2020-02-11 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN113791912A (zh) * 2021-11-11 2021-12-14 中国空气动力研究与发展中心计算空气动力研究所 基于mpi+x的dsmc并行计算方法、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360941A (zh) * 2014-11-06 2015-02-18 浪潮电子信息产业股份有限公司 采用MPI与OpenMP编译提高计算集群的STREAM Benchmark测试性能的方法
CN104375899A (zh) * 2014-11-21 2015-02-25 北京应用物理与计算数学研究所 高性能计算机numa感知的线程和内存资源优化方法与系统
CN104461466A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法
CN104461467A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法
CN104918264A (zh) * 2015-06-24 2015-09-16 华南理工大学 基于并行分解型进化的无线传感器网络布局方法及其系统
CN107015852A (zh) * 2016-06-15 2017-08-04 珠江水利委员会珠江水利科学研究院 一种大规模梯级水电站群多核并行优化调度方法
CN107247628A (zh) * 2017-06-22 2017-10-13 华中科技大学 一种面向多核系统的数据流程序任务划分与调度方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461466A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法
CN104461467A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法
CN104360941A (zh) * 2014-11-06 2015-02-18 浪潮电子信息产业股份有限公司 采用MPI与OpenMP编译提高计算集群的STREAM Benchmark测试性能的方法
CN104375899A (zh) * 2014-11-21 2015-02-25 北京应用物理与计算数学研究所 高性能计算机numa感知的线程和内存资源优化方法与系统
CN104918264A (zh) * 2015-06-24 2015-09-16 华南理工大学 基于并行分解型进化的无线传感器网络布局方法及其系统
CN107015852A (zh) * 2016-06-15 2017-08-04 珠江水利委员会珠江水利科学研究院 一种大规模梯级水电站群多核并行优化调度方法
CN107247628A (zh) * 2017-06-22 2017-10-13 华中科技大学 一种面向多核系统的数据流程序任务划分与调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BOGDAN SATARIĆ: "Hybrid OpenMP/MPI programs for solving the time-dependent", 《ARXIV》 *
GLADYS UTRERA: "In Search of the Best MPI-OpenMP Distribution for Optimum Intel-MIC Cluster Performance", 《2015 INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING SIMULATION》 *
ROLF RABENSEIFNER: "Hybrid MPI/OpenMP Parallel Programming", 《2009 17TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL,DISTRIBUTED AND NETWORK-BASED PROCESSING》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781016A (zh) * 2019-10-30 2020-02-11 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN113791912A (zh) * 2021-11-11 2021-12-14 中国空气动力研究与发展中心计算空气动力研究所 基于mpi+x的dsmc并行计算方法、设备及介质

Also Published As

Publication number Publication date
CN108932172B (zh) 2021-01-19

Similar Documents

Publication Publication Date Title
CN113205417B (zh) 一种面向联盟链的交易并行处理方法及系统
Shavit et al. Elimination trees and the construction of pools and stacks
US7904618B2 (en) Buffer managing method and buffer managing apparatus
CN110704360A (zh) 一种基于异构fpga数据流的图计算优化方法
CN110135569A (zh) 一种异构平台神经元定位三级流水并行方法、系统及介质
CN114237918B (zh) 一种面向神经网络模型计算的图执行方法和装置
Li et al. Efficient decomposition of strongly connected components on GPUs
CN108932172A (zh) 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法
CN106326398A (zh) 数据一致性对比的方法及装置
CN103995827B (zh) MapReduce计算框架中的高性能排序方法
Barnat et al. Scalable shared memory LTL model checking
CN111724256A (zh) 一种基于多核架构的智能合约执行优化方法
CN104375807A (zh) 基于众核协处理器的三级流水序列比对方法
CN111176831B (zh) 基于多线程共享内存通信的动态线程映射优化方法及装置
Zhu et al. An iterated local search methodology for the qubit mapping problem
Elkhani et al. Multi-objective binary PSO with kernel P system on GPU
Martínez del Amor et al. Parallel simulation of probabilistic P systems on multicore platforms
CN111768195A (zh) 加速区块链数据的计算的系统
CN103176837A (zh) 基于反转单链表的锁无关消息队列实现方法
Li et al. Gpu accelerated three-stage execution model for event-parallel simulation
CN109271344A (zh) 基于申威芯片架构并行文件读取的数据预处理方法
CN112346879B (zh) 进程管理方法、装置、计算机设备及存储介质
CN107291371A (zh) 一种读写锁的实现方法及装置
Cunningham High performance algorithms for quantum gravity and cosmology
Capes et al. Dynamic scheduling of mpi-based distributed deep learning training jobs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant