CN109408867B - 一种基于mic协处理器的显式r-k时间推进加速方法 - Google Patents
一种基于mic协处理器的显式r-k时间推进加速方法 Download PDFInfo
- Publication number
- CN109408867B CN109408867B CN201811062479.6A CN201811062479A CN109408867B CN 109408867 B CN109408867 B CN 109408867B CN 201811062479 A CN201811062479 A CN 201811062479A CN 109408867 B CN109408867 B CN 109408867B
- Authority
- CN
- China
- Prior art keywords
- mic
- data
- calculation
- hot spot
- program
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于MIC协处理器的显式R‑K时间推进加速方法,主要步骤包括:找出CFD计算程序中显式R‑K时间推进算法的计算密集热点,分析串行计算热点的数据流向,确定热点计算部分相对于完整程序的输入、输出数据以及热点自定义数据;完成热点计算前CPU端计算后,将热点输入数据offload至MIC端并进行MIC端热点计算;针对MIC硬件特性及热点程序并行特性,从多线程、向量化、访存、数据传输等方面展开MIC端热点程序的优化加速;依据性能测试结果,确定是否要进行深层次优化。本发明可快速高效的对显示R‑K时间推进法做基于MIC协处理器的优化加速,可同时发挥MIC计算特性与热点程序并行特性,是一种通用的、切实可行的MIIC协处理器加速方法。
Description
技术领域
本发明属于高性能计算与计算流体力学领域,具体涉及一种基于MIC协处理器的显式R-K时间推进加速方法。
背景技术
流体力学主要研究流体的静止状态、运动状态,以及流体与周围固体界壁间发生相对运动时的相互作用于流动规律,在流体机械、航空等各个领域中都具有重要的应用价值。计算流体力学提供对真实流动的模拟,能直观显示计算结果。其可方便提供复杂情况下无法测量的全部流场范围信息,且对参数没有限制,具有节省开销、流场无干扰等特点。随着对计算流体力学的计算规模、计算效率和精度的要求越来越高,计算所需要的网格规模越来越大。流体机械仿真程序具有算法复杂度高、数据量大、流场网格复杂等特点,由此带来计算时长、效率低下等问题。对于此类应用,通过高性能计算领域的主处理器与协处理器结合的方式,对程序计算密集部分进行加速,提高计算效率。
MIC(Many Integrated Core)作为集成众核协处理器,是由Intel公司研发的基于x86 架构的集成众多核心的高性能处理器。协处理器含有数十个核心,每个核心支持4个硬件线程、含有512位的向量处理单元。同时,MIC程序只需对原有CPU程序进行少量改动,即可发挥MIC高性能计算优势,编程复杂性较低,也由此得到了广泛应用。在2013年王勇献等人基于天河2超级计算机将传统结构网格CFD应用移植到了CPU+MIC的异构平台上,最多使用了3072个节点进行了大规模数值模拟运算。
一般计算流体力学程序往往需要对所求解物理模型进行多次迭代计算,而目前流体机械仿真程序主要涉及以RANS模型为主的湍流模型,还有部分大规模计算使用LES湍流模型,在实际应用中需根据实际情况进行选择。与此同时,这类问题大多可以归结到含有多个方程的方程组求解,程序往往含有大量循环进行迭代计算,同时会涉及到大量变量的计算,部分循环内部的计算逻辑会非常复杂。这也导致对此类应用进行并行优化的难度增大。而MIC协处理器为此类应用的并行化提供了便利条件,尤其是其具有的支持200 个以上线程、向量化处理单元、编程复杂性低等特点。
当前对于CPU+MIC异构平台上的计算流体力学仿真模拟程序优化加速的研究比较零散,对于大规模计算流体力学应用问题在该类平台上的研究更为少见。在计算机领域,使用MIC协处理器对流体机械仿真程序进行优化加速的研究并不多见,更没有一个针对该类问题的通用性加速方法。R-K多步格式通过在当前层推进到下一层的计算中,引入中间层的概念,提高了计算格式的精度;基于密度的显式R-K时间推进法将密度作为基本求解变量,是一种流体机械内流计算的主流方法。面对流体机械模拟程序含有的显式R-K 时间推进算法计算热点部分具有的计算密集、数据量大、逻辑复杂、涉及大量方程求解的特性,需要针对MIC协处理器更加专用性的加速方法。
发明内容
本发明的目的在于提供一种基于MIC协处理器的显式R-K时间推进加速方法,以解决上述问题。
为实现上述目的,本发明采用以下技术方案:
一种基于MIC协处理器的显式R-K时间推进加速方法,主要包含以下步骤:
步骤一:针对CFD计算程序中含有的显式R-K时间推进算法计算热点,分析串行程序计算密集型热点部分的数据流向,确定出热点计算部分相对于完整程序的输入数据、输出数据以及热点计算部分自定义的数据;由于CFD计算程序采用的多重网格法需要在每层网格上进行显式R-K时间推进算法的多次迭代计算,在多重网格法迭代计算前,先在 MIC上分配热点计算所需要的数据空间,程序结束时释放MIC端数据空间,减少每次使用MIC开辟、释放数据空间带来的额外开销;
步骤二:完成步骤一后,在每次网格迭代计算时,CPU端完成计算热点之前的计算任务后,将热点输入数据卸载至MIC端,保证数据的内存对齐;
步骤三:完成步骤二后,分析MIC端热点计算程序的数据依赖性,通过循环拆分或循环分块的方式,消除循环内部的数据依赖;
步骤四:完成步骤三后,在MIC端针对MIC协处理器所具有的硬件特性,对热点计算程序从并行度、向量化和访存方面展开MIC端程序的优化加速;
步骤五:完成步骤五后,将MIC端热点计算的结果输出到CPU端以便进行后续CPU端计算;同时测试程序性能,分析程序性能瓶颈,尝试更细粒度的多线程、向量化、访存及通过数据的异步传输降低数据传输开销方面的优化加速,通过多次分析优化,直至达到当前条件下的最优结果或者满足预期性能。
进一步的,在步骤一中的热点输入数据包括在每次迭代计算都会更新的数据以及在网格迭代计算开始之前计算出的在其后计算只读而不改变的数据;热点输出数据包括计算热点程序更新的数据,且在后续CPU端计算会用到的数据;MIC端只进行数据空间的分配,且分配的同时做好数据的内存对齐;在所有迭代完成之后释放MIC端分配的数据空间。
进一步的,在步骤二所述的详细过程中先将CPU端网格迭代计算开始之前计算得到的、在其后计算只读而不改变的热点输入数据,传输至MIC卡上;接着将每次迭代中CPU端计算均会重新计算的热点输入数据传输至MIC端。
进一步的,在步骤三中数据依赖性指将一个数组变量分块并交给多个线程同时更新时,一个线程既要更新自己计算的块又要更新其它线程数据块的操作,此时采用循环拆分或循环分块方式,每个线程只更新自己的数据块,消除多个线程更新数据块之间的数据竞争。
进一步的,在步骤四中热点计算程序的并行度优化,采用用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案OpenMP在多个循环计算开始之前创建并行区域,所有计算完成之后销毁线程的方式;对于最外层循环次数不能满足MIC并行度要求的情况,通过合并两层for循环以满足并行度要求。
进一步的,在步骤四中热点计算程序的向量化优化,通过计算合并、设置中间变量、将大循环拆分成多个小循环的方式,在最内层for循环前添加自动向量化编译指导语句#pragma simd。
进一步的,在步骤四中中为了同时满足并行度和向量化的要求,需要将最内层for循环拆分成两层,最内层满足最低向量化的要求,同时进行次内层循环与外层循环的合并,满足并行度的要求。
进一步的,在步骤四中热点计算程序访存优化,对于循环内部涉及多个变量的复杂运算,通过循环融合、分割、分块、交换四种方式先完成部分数组数据的全部计算,再对下一部分涉及的数组进行计算,直至完成所有计算。
进一步的,在步骤五中MIC端热点计算的结果输出到CPU端,只进行MIC端到CPU 端的数据传输,而不进行MIC端数据空间的分配与释放。
进一步的,在步骤五中程序性能的测试包括热点在MIC端的执行时间,每个迭代优化前与优化后的时间,通过静态代码分析计算大致的加速比与实际测得的加速比进行对比,计算耗时部分就成为性能瓶颈,对此部分反复进行更细粒度的加速优化。
与现有技术相比,本发明有以下技术效果:
本发明针对流体机械仿真程序中含有的显式R-K时间推进算法计算热点,在协处理器端针对MIC的硬件特性,从并发度、向量化、访存、数据传输等方面展开程序的优化加速,可同时发挥MIC协处理器的高性能计算特性与计算密集型热点的基于MIC的并行特性,是一种切实可行的、可移植性强的流体机械仿真程序中计算密集型热点部分基于 MIC协处理器的优化加速方法。
本发明可减少基于MIC协处理器的流体机械仿真程序含有的显式R-K时间推进算法计算热点的开发周期,具有快速高效特性;同时可降低编程人员的工作量,具有简单易操作特性。
附图说明
附图1为本发明提供的MIC加速方法步骤流程图;
附图2为本发明提供的流体机械仿真程序计算流程图。
具体实施方式
以下结合附图对本发明进一步说明:
请参阅图1和图2,一种基于MIC协处理器的显式R-K时间推进加速方法主要针对程序热点计算部分,提供一种流体机械仿真程序使用MIC协处理器对计算热点进行加速的通用加速方法,具体流程如附图1所示。针对流体机械仿真程序含有的显式R-K时间推进算法计算热点部分,分析串行计算热点的数据流向,确定出热点计算部分相对于完整程序的输入数据、输出数据以及热点自定义数据;接着在CPU端完成热点计算所需的输入数据计算之后,将该部分输入数据卸载(offload)至MIC端并进行MIC端热点计算;在MIC端为了发挥MIC的硬件特性,从多线程、向量化、访存、数据传输等方面展开 MIC端热点程序的优化加速;通过性能测试,分析程序性能瓶颈,进行更细粒度的优化加速,直至达到当前条件下的最优结果或者满足预期性能。本发明可快速高效的对流体机械仿真程序计算密集型热点部分做基于MIC协处理器的优化加速,是一种切实可行的 MIIC协处理器加速方法。
步骤一:找出流体机械仿真程序中的计算热点,并针对CPU程序分析程序计算密集型热点部分的数据流向,主要包括:
1)流体机械仿真程序中应用的显式R-K时间推进算法具有计算密集,含有较多for循环,并且每个循环次的数比较多,循环内部是对数组变量数据的更新,可满足使用MIC协处理器进行加速的要求,我们把此部分代码视作程序计算热点。
2)确定热点计算需要使用的在热点计算之前定义的热点输入数据;找到热点计算内部自定义的数据;确定热点计算之后需要使用的热点计算部分的输出数据。
步骤二:由于流体机械仿真程序涉及网格的多次重复迭代计算,如附图2所示,为了降低每次使用MIC需要开辟、销毁数据空间带来的额外开销,在CPU程序开始网格计算之前,先在MIC上开辟热点计算所需要的数据空间;在MIC端开辟数据空间指定offload 编译指导语句采用nocopy(p:length(sz)alloc_if(1)free_if(0))(其中p为数组名称,sz为p的大小)关键字只开辟数据空间,并指定align关键字完成长度对齐;
步骤三:在CPU端完成起始数据准备工作后,将网格迭代计算开始之前计算出的在其后计算只读而不改变的热点输入数据传输至MIC卡上;在每次迭代内部,将每次迭代 CPU端计算均会更新的热点输入数据offload至MIC端,此时应做好数据的内存对齐,以保证后续的数据访问效率;每次迭代计算都会更新的热点输入数据offload至MIC卡采用 in(p:length(sz)alloc_if(0)free_if(0))(其中p为数组名称,sz为p的大小)关键字只进行数据拷贝;
步骤四:此类应用的串行热点计算部分程序往往含有多个多层循环对多个不同数据进行复杂迭代计算,在MIC端主要采用以下并行优化方法进行加速:
1)分析热点计算部分的数据相关性,通过循环拆分,循环分块等方式,消除循环内部的数据依赖,为后续并行优化提供必要条件;若一个循环内部一次既要计算更新数组a[i]又要计算更新数组a[i+1]或a[i-1],这种情况不利于后续多线程及向量化的优化,此时可采用循环拆分,循环分块等方式,每个循环只计算a[i]或者a[i+1]或者a[i-1],从而消除循环内部的数据依赖。
2)对最外层循环采用OpenMP进行多线程扩展,合理利用MIC众多计算核心。此时可能存在最外层循环次数不能满足MIC并行度要求,可通过合并两层for循环以满足并行度要求。计算核心部分往往是多个循环依次进行计算,为了降低对每个循环进行 OpenMP多线程的开辟和销毁带来的额外开销,采用在多个循环计算开始之前创建并行区域,在每个循环处进行各个线程的任务分发,所有计算完成之后销毁线程的方式。
3)在完成并行度拓展之后,在每个循环的最内层循环实现向量化优化。由于循环内部往往是进行多个变量的复杂迭代计算,而向量化往往是对数组进行操作。可通过计算合并、设置中间变量、将大循环拆分成多个小循环的方式,在最内层for循环前添加 #pragma simd指令完成自动向量化优化。
4)有时候为了同时满足并行度和向量化的要求,需要将最内层for循环拆分成两层,最内层满足最低向量化的要求,同时进行次内层循环与外层循环的合并,满足并行度的要求。
5)此外在不改变程序计算逻辑的前提下,通过循环融合、循环分割、循环分块和循环交换四种方式先完成部分数组数据的全部计算,再对下一部分涉及的数组进行计算,直至完成所有计算,而不是同时对大量不同数组进行计算,提高cache的访问效率。
6)通过实验测试加速性能,主要测试计算热点各代码块的耗时,以及计算热点相对于CPU执行时间的加速比。若未达到预期性能要求,则对程序瓶颈进行分析,进行更细粒度的多线程、向量化、访存及通过数据的异步传输降低数据传输开销等方面的优化加速,同时分析采用数据预取等其他优化加速手段,反复优化与测试,直至达到当前条件下的最优结果或者满足预期性能。
步骤五:在MIC端完成热点的计算之后,需要将计算结果输出到CPU端以便完后后续计算(采用out关键字);采用out(p:length(sz)alloc_if(0)free_if(0))(其中p为数组名称,sz为p的大小)关键字完成热点输出数据只进行数据传输而不释放空间的操作。
步骤六:完成每次迭代的其余CPU计算部分,在每次网格迭代计算中反复调用MIC完成热点部分的计算,直至残差达到收敛条件或者不满足循环条件。所有迭代计算完成之后,采用nocopy(p:length(sz)alloc_if(0)free_if(1))(其中p为数组名称,sz为p的大小)关键字释放MIC端开辟的所有数据空间。
以上所述为本发明的技术方案,本发明基于MIC协处理器所具有的硬件特性,通过充分发掘计算热点程序的并行特性,尽可能在发挥MIC高性能计算特性的同时提升体机械仿真程序计算密集型热点的并行效率。该方法可行性高,加速后程序可获得较高效率提升,且具有一定通用性。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (10)
1.一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于,包含以下步骤:
步骤一:针对CFD计算程序中含有的显式R-K时间推进算法计算热点,分析串行程序计算密集型热点部分的数据流向,确定出热点计算部分相对于完整程序的输入数据、输出数据以及热点计算部分自定义的数据;由于CFD计算程序采用的多重网格法需要在每层网格上进行显式R-K时间推进算法的多次迭代计算,在多重网格法迭代计算前,先在MIC上分配热点计算所需要的数据空间,减少每次使用MIC开辟、释放数据空间带来的额外开销;
步骤二:完成步骤一后,在每次网格迭代计算时,CPU端完成计算热点之前的计算任务后,将热点输入数据卸载至MIC端,保证数据的内存对齐;
步骤三:完成步骤二后,分析MIC端热点计算程序的数据依赖性,通过循环拆分或循环分块的方式,消除循环内部的数据依赖;
步骤四:完成步骤三后,在MIC端针对MIC协处理器所具有的硬件特性,对热点计算程序从并行度、向量化和访存方面展开MIC端程序的优化加速;
步骤五:完成步骤五后,将MIC端热点计算的结果输出到CPU端以便进行后续CPU端计算;同时测试程序性能,分析程序性能瓶颈,尝试更细粒度的多线程、向量化、访存及通过数据的异步传输,实现数据传输开销方面的优化加速,通过多次分析优化,直至达到当前条件下的最优结果或者满足预期性能。
2.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于,在步骤一中的热点输入数据包括在每次迭代计算都会更新的数据以及在网格迭代计算开始之前计算出的在其后计算只读而不改变的数据;热点输出数据包括热点计算程序更新的数据,且在后续CPU端计算会用到的数据;MIC端只进行数据空间的分配,且分配的同时做好数据的内存对齐。
3.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤二中先将CPU端网格迭代计算开始之前计算得到的、在其后计算只读而不改变的热点输入数据,传输至MIC端上;接着将每次迭代中CPU端计算均会重新计算的热点输入数据传输至MIC端。
4.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤三中数据依赖性指将一个数组变量分块并交给多个线程同时更新时,一个线程既要更新自己计算的块又要更新其它线程数据块的操作,此时采用循环拆分或循环分块方式,每个线程只更新自己的数据块,消除多个线程更新数据块之间的数据竞争。
5.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤四中热点计算程序的并行度优化,采用用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案OpenMP,在多个循环计算开始之前创建并行区域,所有计算完成之后销毁线程的方式;对于最外层循环次数不能满足MIC并行度要求的情况,通过合并两层for循环以满足并行度要求。
6.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤四中热点计算程序的向量化优化,通过计算合并、设置中间变量或将大循环拆分成多个小循环的方式,在最内层for循环前添加自动向量化编译指导语句。
7.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤四中为了同时满足并行度和向量化的要求,需要将最内层for循环拆分成两层,最内层满足最低向量化的要求,同时进行次内层循环与外层循环的合并,满足并行度的要求。
8.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤四中热点计算程序访存优化,对于循环内部涉及多个变量的复杂运算,通过循环融合、分割、分块、交换四种方式先完成部分数组数据的全部计算,再对下一部分涉及的数组进行计算,直至完成所有计算。
9.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤五中MIC端热点计算的结果输出到CPU端,只进行MIC端到CPU端的数据传输,而不进行MIC端数据空间的分配与释放。
10.根据权利要求1所述的一种基于MIC协处理器的显式R-K时间推进加速方法,其特征在于:在步骤五中程序性能的测试包括热点在MIC端的执行时间,每个迭代优化前与优化后的时间,通过静态代码分析计算的加速比与实际测得的加速比进行对比,计算性能瓶颈,反复进行更细粒度的加速优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062479.6A CN109408867B (zh) | 2018-09-12 | 2018-09-12 | 一种基于mic协处理器的显式r-k时间推进加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062479.6A CN109408867B (zh) | 2018-09-12 | 2018-09-12 | 一种基于mic协处理器的显式r-k时间推进加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408867A CN109408867A (zh) | 2019-03-01 |
CN109408867B true CN109408867B (zh) | 2021-04-20 |
Family
ID=65464039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811062479.6A Active CN109408867B (zh) | 2018-09-12 | 2018-09-12 | 一种基于mic协处理器的显式r-k时间推进加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408867B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124415B (zh) * | 2019-12-06 | 2022-02-01 | 西安交通大学 | 一种开发循环代码中潜在可向量化循环的方法 |
CN113132262B (zh) * | 2020-01-15 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 一种数据流处理及分类方法、装置和系统 |
CN111857727B (zh) * | 2020-07-21 | 2021-07-13 | 西安交通大学 | 一种多维循环自动向量化分块因子分块方法及装置 |
CN112433853B (zh) * | 2020-11-30 | 2023-04-28 | 西安交通大学 | 一种面向超级计算机数据并行应用的异构感知数据划分方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064819A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 一种利用MIC快速实现格子Boltzmann并行加速的方法 |
CN103324531A (zh) * | 2013-06-09 | 2013-09-25 | 浪潮电子信息产业股份有限公司 | 一种基于格子Boltzmann理论CPU/MIC协同计算的大涡模拟方法 |
CN104657219A (zh) * | 2015-02-27 | 2015-05-27 | 西安交通大学 | 一种用于异构众核系统下的应用程序线程数动态调整方法 |
-
2018
- 2018-09-12 CN CN201811062479.6A patent/CN109408867B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064819A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 一种利用MIC快速实现格子Boltzmann并行加速的方法 |
CN103324531A (zh) * | 2013-06-09 | 2013-09-25 | 浪潮电子信息产业股份有限公司 | 一种基于格子Boltzmann理论CPU/MIC协同计算的大涡模拟方法 |
CN104657219A (zh) * | 2015-02-27 | 2015-05-27 | 西安交通大学 | 一种用于异构众核系统下的应用程序线程数动态调整方法 |
Non-Patent Citations (1)
Title |
---|
异构众核系统及其编程模型与性能优化技术研究综述;巨涛等;《电子学报》;20150131;第111-119页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109408867A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408867B (zh) | 一种基于mic协处理器的显式r-k时间推进加速方法 | |
Bauer et al. | Singe: Leveraging warp specialization for high performance on gpus | |
YarKhan et al. | Porting the PLASMA numerical library to the OpenMP standard | |
CN110135569B (zh) | 一种异构平台神经元定位三级流水并行方法、系统及介质 | |
Giles et al. | Performance analysis and optimization of the OP2 framework on many-core architectures | |
US9891958B2 (en) | System and method for parallelizing grid search method facilitating determination of PK-PD parameters | |
WO2019016656A1 (en) | METHOD FOR AUTOMATICALLY GENERATING PARALLEL CODE | |
Huo et al. | A programming system for xeon phis with runtime simd parallelization | |
Park et al. | mGEMM: low-latency convolution with minimal memory overhead optimized for mobile devices | |
Kuhn | Parallel Programming | |
Lefebvre et al. | Optimizing 2D and 3D structured Euler CFD solvers on graphical processing units | |
CN110673877B (zh) | 一种基于手动向量化的并行计算方法 | |
Chandrashekhar et al. | Performance study of OpenMP and hybrid programming models on CPU–GPU cluster | |
Vincke et al. | Refactoring sequential embedded software for concurrent execution using design patterns | |
Ciznicki et al. | Scaling the gcr solver using a high-level stencil framework on multi-and many-core architectures | |
Ozen | Compiler and runtime based parallelization & optimization for GPUs | |
Ren | Parallelized Path-finding in DuckPGQ | |
Peng et al. | High-scalable collaborated parallel framework for large-scale molecular dynamic simulation on Tianhe-2 supercomputer | |
Nie et al. | Parallel Region Reconstruction Technique for Sunway High-Performance Multi-core Processors | |
Yang et al. | Optimization of Jacobi Iteration on the Intel Xeon Phi | |
Filipovič et al. | Acceleration of dRMSD calculation and efficient usage of GPU caches | |
Gustedt et al. | Automatic, abstracted and portable topology-aware thread placement | |
Kaminskyj Long et al. | Mind the Gap! Bridging the dichotomy of design and implementation | |
US20230259338A1 (en) | Computer-implemented method and a computer-readable medium | |
Sirilak Ketchaya | PARALLEL DEQUE-FREE PARTITION DUAL-DEQUE MERGE SORTING ALGORITHM |
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 |