没有合适的资源?快使用搜索试试~ 我知道了~
∈ ∈≪软件X 14(2021)100695原始软件出版物XAMG:求解多个右侧向量线性方程组的库鲍里斯·克拉斯诺波尔斯基,阿列克谢·梅德韦杰夫莫斯科国立罗蒙诺索夫大学力学研究所,119192 Moscow,Michurinsky ave.1、俄罗斯ar t i cl e i nf o文章历史记录:2021年1月16日收到2021年4月2日收到修订版,2021年保留字:线性代数方程组Krylov子空间迭代法代数多重网格法多个右侧混合编程模型MPI+POSIX共享内存a b st ra ct本文介绍了XAMG库求解大型稀疏系统的线性代数方程组与多个右手边向量。该图书馆专门,但不限于,从椭圆微分方程的离散化获得的线性系统的解决方案。相应的一套数值方法包括Krylov子空间,代数多重网格,Jacobi,Gauss-Seidel和Chebyshev迭代方法。并行化采用MPI+POSIX共享内存混合编程模型实现,该模型采用三级层次分解,每级使用相应的同步和通信原语。该代码包含许多优化,包括多级数据分段、索引压缩、混合精度浮点计算、向量状态标志等。XAMG库使用著名的hypre库的程序代码来构造多重网格矩阵层次结构。XAMG此外,XAMG还提供了扩展功能来解决具有多个右侧向量的系统版权所有2021作者。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本1.0指向此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00014Code Ocean compute capsule N/A法律代码许可证GPL v3使用git的代码版本控制系统使用C++、MPI的软件代码语言、工具和服务编译要求,运行环境依赖C++11编译器,POSIX,MPI,hypre。构建说明:https://gitlab.com/xamg/xamg/-/wikis/docs/XAMG_build_guideline如果可用,链接到开发人员文档/手册问题支持电子邮件Gitlab问题跟踪器部分1. 动机和意义尽管在计算软件中广泛使用开源库来求解线性代数方程组,但仍然需要开发新的库,其可以扩展已知库的功能或添加一些特征,从而允许提高计算的性能hypre库[1]是一个优秀的软件,包含强大的和高度可扩展的算法,用于解决大型稀疏线性代数方程组(SLAE)。的*通讯作者。电子邮件地址:krasnopolsky@imec.msu.ru(Boris Krasnopolsky),a.imec.msu.ru(Alexey Medvedev)。https://doi.org/10.1016/j.softx.2021.100695经典代数多重网格法[2]在hypre中的实现 是一个强大的方法,广泛应用于解决SLAE来自椭圆或抛物型微分方程。然而,在hypre中的方法的实现,以及包含多重网格方法的各种修改的许多其他库,受到用单个右侧向量(RHS)执行计算的算法的限制同时,给出了具有多个RHS的系统的求解方法A X= B,其中Rn×n,X,BRn×m,mn,在计算效率方面可以优于具有单个RHS的系统的多个解。其原因包括:(i)增加算术强度,(ii)正则化的2352-7110/©2021作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006952存储器访问模式,(iii)计算的向量化,以及其他。具有多个RHS的SLAE出现在各种数学物理应用中。例如,在结构分析应用[3]、不确定性量化问题[4]、布朗动力学模拟[5]、量子色动力学[6]、计算流体动力学[7]等中,都需要求解相应的线性代数方程组。尽管有各种各样的应用和上面提到的几个优点,但在公开可用的数值方法库中很少能找到用于求解具有稀疏矩阵和多个RHS的SLAE的迭代方法的实现在少数例外中,Trilinos库[8]包含几种基于Krylov子空间和聚合的代数多重网格方法的实现。然而,这些并不完全涵盖数值模拟中使用的整套方法,例如由HyperLibrary提供的经典代数多重网格方法。这个问题使使用多个RHS执行计算的计算算法的开发复杂化。XAMG库侧重于求解一系列具有多个RHS的线性代数方程组,例如,在不可压缩湍流模拟中出现的RHS [7]。该代码扩展了在hypre中实现的经典代数多重网格方法的功能,并提供了Krylov子空间迭代方法[9]的经典和合并公式的实现,XAMG库旨在为方法的求解阶段开发优化的实现,而hypre库可以“原样”重用该库提供了额外的优化功能,包括分层多级并行化、基于POSIX共享内存和原子的同步原语的低级别节点内共享内存通信、根据分层并行化的多块数据分段、混合精度浮点计算、索引压缩、向量状态标志等,这些功能允许在计算时间上优于hypre2. 软件描述2.1. 数学方法XAMG库包含一组数值方法,通常用于求解椭圆偏微分方程离散化后的线性代数方程组。这些方法包括几种Krylov子空间迭代方法(CG [10]和BiCGStab [11]),经典代数多重网格方法[2],块Jacobi和对称所有这些方法都被用来解决SLAE与多个RHS。除了经典的BiCGStab方法外,该库还包含几种改进的方法,包括重新排序的BiCGStab [12],流水线BiCGStab [13]和这些方法的合并公式[9],它们结合了向量更新和点积,以最大限度地减少向量读/写操作的总量。表1总结了这些方法的可能组合,它们可以用作独立的求解器、预处理器或多重网格方法的平滑器。方法和相应方法参数的完整列表见[14]。表1在XAMG库中实现的方法和求解器类型的组合。方法求解器预处理器预/后平滑器CG+ − −BiCGStab+MultiGrid++ −雅可比+Gauss–Seidel切比雪夫− ++直接+ − −2.2. 使用多个RHS进行计算的优势具有多个RHS的SLAE的解决方案为若干优化开辟了机会。使用迭代方法同时独立求解多个RHS的主要优点是增加了计算的算术强度。每字节触发器比率是相对于存储器访问量的浮点操作的度量。基本的线性代数运算,如向量更新、点积和稀疏这意味着相应的操作是内存限制的[9,15],其性能主要取决于内存流量和内存带宽。具有多个RHS的SLAE的解允许仅一次加载用于具有m个右手边的SpMV运算的矩阵,相比之下,当利用单个RHS执行m个SLAE解时加载m这通常导致每个RHS的SLAE求解器的存储器流量总量减少约两倍,增加每个字节的触发器比率,并且随后导致显著的计算加速。使用专门的数据存储格式的稀疏矩阵是必要的,以执行操作与大量的trices出现在数值模拟。压缩稀疏行(CSR)格式[16]是通用格式,广泛用于一般形式的矩阵。然而,CSR格式的SpMV操作的实现需要间接的存储器访问,这降低了缓存效率,并且没有机会进行循环向量化。针对多个RHS执行的广义SpMV操作允许部分地正则化对存储器的访问并在右侧上向量化计算。2.3. 软件构架XAMG库被设计为一个只有标题的模板C++库。模板多态性用于实现矩阵和向量的所有基本数据类型的可变性,包括接口级和内部数据类型。RHS的数量也作为模板参数给出。编译时RHS数量的特殊化是一个关键的设计点。这种方法允许向量化所有相关的子程序相对于一个恒定范围的循环迭代的RHS。考虑到适当的向量数据放置和一些pragma指令代码插装,这样的设计允许常规C++编译器尽可能地可以突出显示以下XAMG程序代码元素:矩阵和向量数据结构;基本稀疏线性代数子程序,以“blas 2”和“blas 2”分组收集从抽象接口继承的solver类,它公开了主要的库函数:setup()和solve();• 求解器参数类。···鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006953Fig. 1. 层次矩阵分解。矩阵和向量数据结构用于存储相应的数据对象。子程序组由一组使用向量(线性更新、点积等)进行操作的原语组成。blas2子程序组包括几个类似于SpMV的矩阵向量操作。求解器类实现用于求解线性代数方程组的各种迭代方法。最后,求解器参数类用于存储数值方法参数列表,指定每个数值方法MultiGrid求解器类的setup()虚拟函数实现了经典的代数多重网格“setup”阶段。这是通过包装hypre函数来构建多重网格矩阵层次结构来完成的。这是XAMG库程序代码中使用hypre库代码库的唯一地方XAMG库的一个重要设计特征是分层混合并行编程模型。该模型结合了用于跨节点通信的消息传递接口(MPI)标准[17]和基于POSIX共享内存(ShM)功能的节点内级别的特殊类型的共享内存并行编程模型。MPI+ShM模型意味着驻留在同一计算节点上的MPI等级分配和使用公共POSIX共享内存区域来存储数据对象。与许多其他MPI+X编程模型不同,MPI+ShM不使用节点内的线程。MPI等级CPU核心映射是一对一的。为了从更好的数据局部性中获益,大多数著名的分布式线性代数算法实现了一种数据分解,将计算分为完全局部和完全非局部部分[18]。MPI+ShM编程模型还实现了矩阵和向量数据结构的特定数据分解这种分解背后的思想是将数据分层分割为:(i)仅具有局部算法依赖性的数据,以及(ii)需要一些并行通信才能工作的数据。图1,蓝色框表示“本地依赖”块,而白色框表示“远程依赖”块。局部依赖性块也可以被称为“对角块”,因为它们包含用于方阵的矩阵对角元素。图1还说明了为什么数据分解被称为分层。实际上,递归数据分解引入了三个逻辑层:节点层、numa层和核心层。它们旨在反映现代基于CPU的高性能计算系统硬件的自然层次结构,包括计算节点、每个节点内的NUMA块以及CPU内核。层次分解原则使得可以分离局部和非局部数据依赖。作为这样做的实际结果,非本地MPI通信(在跨节点层上)以及非本地数据访问(对于跨NUMA层)的数量显著减少。分层数据和算法分解。与纯MPI模型相比,这两个特性相结合显著提高了单节点并行性能和多节点可扩展性。XAMG库的数据压缩特性试图从减少主要库算法和通信过程中的数据传输次数中获益。这些特性包括浮点数精度降低的转换,以及对以CSR格式存储的矩阵的整数索引使用更少的位。降低精度的浮点数通常不能用于整个求解器而不损失解的精度。然而,众所周知,在执行预处理器计算[19,20]时切换到降低的精度可能是一种折衷变体,保留了所得向量的基本精度,并且仅具有较小的收敛速率降低或不降低收敛速率。根据整个SLAE求解器计算中精度降低的计算部分,要传输的全部数据量的5%-30%削减允许获得比例计算加速。由于降低精度功能仅适用于 多重网格矩阵层次结构,这种数据压缩模型被称为与CSR矩阵存储格式的索引压缩相关的第二种类型的优化适用于所有矩阵。分层数据分解导致多块矩阵表示,对于小块,CSR索引数据类型可以更改为更小的类型,如uint16_t或uint8_t。这种修改还导致减少存储器访问量2.4. 软件使用示例XAMG库的主要API有一个基于C++11模板的接口,但也存在C语言绑定。下面的概述显示了一个使用主C++库接口的示例。求解器代码在编译时根据类C++模板实例化是这背后的一种机制一个基本的矩阵类型是用整数类型(uint8_t、uint16_t和uint32_t是允许的)和浮点类型(float或double)实例化的。整数模板类型指定非零矩阵元素索引的存储类型。浮点模板类型定义这些元素的值的存储类型。同样的浮点类型也用于实例化与输入和输出向量操作的函数。大多数XAMG数据结构和库函数都有一个额外的模板参数NV,1单个SLAE解决方案中的RHS数量操作总之,混合MPI+ShM并行编程模型意味着:(i)直接共享内存数据访问,而不是节点内范围上的MPI通信,以及(ii)特定的1 在源代码中,将RHS的数量m表示为模板参数NV。鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006954图二、 XAMG库的一般用法示例,C++ API.图中的代码列表。 2给出了一个基本的工作代码部分,它使用XAMG库来求解一个线性系统,该系统具有以CSR格式存储的稀疏矩阵。第9-12行第14行中的库初始化调用传递一个可选的冒号分隔的配置字符串。此字符串可用于指定混合三级并行编程模型的参数。有关这些参数的详细信息,请参阅程序文档。第16-19行表示从二进制文件中读取矩阵的基本代码。该文件应该包含CSR格式矩阵,RHS和初始猜测向量(作为选项)。第21行-27用正确的分解填充矩阵和向量的分布式版本,并将数据结构映射到MPI+ShM数据层次结构。所需的求解器参数在第29-32行中设置预处理的BiCGStab方法被设置为在该示例中使用,其中Jacobi方法用作预处理器。求解器/预处理器对的所有默认参数都在第32行中设置。第34-35行NVRHS的SLAE溶液工艺在生产线37中完成。求解结果存储在xvector中,一些求解统计信息保存在求解器对象的stats变量中。一个简单的代数多重网格配置的求解器的参数的示例集如图所示。3 .第三章。在第4-8行中,多重网格方法被设置为预处理BiCGStab求解器的预处理器。明确设置了一些调整多重网格层次结构设置过程的参数。在第9-12行中,我们为多重网格方法设置了一个显式平滑器。具体地,设置多项式阶数为2的Chebyshev方法第13行中的set_defaults()函数调用确保所有求解器参数以及前几行中未显式设置的预处理器和平滑器方法都使用默认值正确初始化。3. 案例:绩效评估示例案例介绍了对XAMG库的效率以及实现的优化功能对整体代码性能的影响的研究。 它表明(i)XAMG库性能与hypre相比,(ii)数据压缩优化对计算时间减少的影响,(iii)由于使用多个RHS进行计算而获得的性能增益,以及(iv)各种RHS数量的并行效率结果。Lomonosov-2超级计算机用于性能评估,以证明所开发的库的潜力。它由具有单个鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006955p不=M=E=,图3.第三章。 数值方法参数配置的 例 子 与BiCGStab方法,补充了代数多重网格预处理。英特尔至强金牌6126处理器和InfiniBand FDR互连。在所有情况下,每个节点的所有可用的12个物理CPU核心都将在计算过程中得到利用。XAMG库使用英特尔C/C++编译器20192和英特尔MPI库2019版更新9编译。内部集成测试应用程序xamg_test用于测试;YAML配置文件在XAMG源代码存储库[14]的examples/test/yaml/目录中提供。对多个测试SLAE执行测试运行它们对应于作为三维泊松方程空间离散化的结果而获得的系统u= f在各种计算域中使用7点模板,包括立方体中的规则网格(具有1503和2503单元的网格)和计算网格,对应于具有壁装立方体矩阵的通道中的不可压缩湍流的直接数值模拟(9.7mln矩阵)。未知数[7])。相应的矩阵生成器被嵌入到xamg_test集成测试应用程序中3.1. 使用单个RHS的第一组实验是用两个测试SLAE进行的,它们对应于具有网格的立方计算域1503和2503的未知数数值方法配置,灰,相同的XAMG和hypre,包括BiCGStab方法补充代数多重网格预处理器和混合对称执行的运行包括五个不同的测试系列:在纯MPI和混合 MPI+OpenMP 执 行 模 式 下 的 hypre 库 测 试 3 , 在 纯 MPI 和MPI+ShM执行模式下的XAMG库测试,以及在混合MPI+ShM模式下的XAMG库测试,并进行数据压缩优化。所获得的性能评价结果如图所示。四、数据以相对加速比的形式呈现,相对加速比定义为纯MPI模式下hypre库的单节点计算时间与特定计算节点数和执行模式下的计算时间之比:Thypre, MPI可伸缩性改进:启用MPI+ShM编程模型后,XAMG的性能比采用MPI+OpenMP模型的hypre高出两倍以上。此外,XAMG的数据压缩优化增加了额外的10%的加速比。在比较XAMG和hypre库时观察到的混合编程模型优势的差异与这些代码的不同混合原则有关。已知MPI+ OpenMP混合编程模型在MPI并行范例中存在基本的多线程问题[21]。MPI+ShM编程模型通过单线程设计避免了这些缺陷其他原因可能是数据分解原理、求解器实现方面、节点间通信的实现或一些其他算法或编程方面的差异。但是,在本文的范围内无法详细阐述这个主题。3.2. 多个RHS1单节点性能性能增益参数是一个关键特性,表明使用多个RHS求解SLAE优于使用单个RHS求解多个解。此参数定义为:mT1P,Tm其中m是RHS的数量,T1是单个RHS的计算时间,Tm是m个RHS的计算时间。对于较小的测试矩阵,测试中的RHS数量在1-64的范围内变化,对于较大的测试矩阵,RHS数量在1-16的范围内变化(由于单节点存储器容量限制)。相应的结果见图11。五、该图显示,当使用多个RHS执行计算时,至少有两倍的性能增益,这与理论估计值一致[7]。峰值在2-2.5的范围内变化,取决于整个SLAE求解器计算循环中SpMV类操作的分数。2并行效率XAMG库性能也通过多-S11i.p三个RHS计算并行效率。使用9.7 mln的测试矩阵进行相应的测试未知数为1,结果见Fig. 4显示了XAMG和hypre的纯MPI实现的类似可扩展性。然而,XAMG库的MPI+ShM混合编程模型提供了一个很大的3 编译选项为:-ip-O3-no-prec-div-static-fp-model fast=2-xCORE-AVX 512。4 目前可用的最新的hypre库版本2.20.0用于性能对比测试。4和16个RHS载体。并行效率的结果,T1pp Tp对于混合执行模式获得。相应的结果如图6所示。这些结果表明,多个RHS的并行效率至少不比单个RHS计算的并行效率差。鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006956见图4。 XAMG和hypre库在各种执行模式下的相对计算加速,测试矩阵为150 3(左)和250 3(右)未知数。XAMG库最近在gitlab.com上作为开放存储库发布[14]。XAMG项目还具有许多领先的源代码和计算方法优化,这些优化影响了现代多核和众核HPC系统上线性求解器加速的一般问题。这个问题与多个RHS功能无关。这些优化,如一个新的混合并行编程模型(MPI+ShM),混合精度计算,矩阵索引压缩,以及其他使它成为可能,以提高生产力的线性求解器相比,其他众所周知的库包含强大的和可扩展的迭代方法(例如hypre)。现代C++11代码库为这一方向的未来研究提供了图五、多 个 R H S 计 算 的 性能增益。见图6。使用XAMG库的多个RHS计算的并行效率为9.7 mln。未知测试矩阵。4. 影响和结论新的线性求解器代码XAMG是一个现代C++项目,它为迭代方法库添加了一个罕见的功能,因为它解决了具有多个右侧向量的系统。 具有多个RHS的求解器的主要优点是具有单个RHS的多个解的潜在加速,并且该特征可以有效地用于结构分析、不确定性量化、布朗动力学模拟、量子色动力学、不可压缩湍流建模等的一些众所周知的数学方法中。然而,尽管在解决问题的时间上有明显的优势,但这种功能并没有在大多数包含鲁棒和可扩展迭代方法的库中实现,比如代数多重网格。在已经利用这一优势的实际应用中,我们强调了不可压缩湍流模拟的内部代码[7],因为XAMG库已经成功地与它集成。集成也可以用于任何其他用C/C++编写的项目,这些项目能够利用线性求解器的多RHS功能,因为初始版本的实验性能评估显示,XAMG库在执行多节点运行时相对于hypre的加速为2倍。使用多个RHS的计算与使用单个RHS的多次运行的比较显示,单节点运行的加速比为2-2.5倍。此外,多个RHS计算的多节点并行效率至少与单个RHS的并行效率相比竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢本研究得到了俄罗斯科学基金会(RSF)的资助,资助号为18-71-10075。 这项研究是使用莫斯科国立罗蒙诺索夫大学HPC计算资源共享研究设施的设备进行的。引用[1]杨文辉,杨文辉. Hypre:高性能预调节器库。In:Sloot PMA,HoekstraAG , Tan CJK , Dongarra JJ , editors. 计 算 科 学 - ICCS 2002 年 。 2331 ofLecture Notes in Computer Science,Berlin,Heidelberg:Springer; 2002,p.632-41. http://dx.doi.org/10的网站。1007/3-540-47789-6_66。[2]杨晓萍,王晓萍,王晓萍.多重网格北京:高等教育出版社,2001.[3] 放大图片作者:Feng Y,Owen D,Perić D.块共轭梯度法到多个右端的线 性 系 统 。 计 算 方 法 应 用 机 械 工 程 1995;127 ( 1 ) : 203-15. http ://dx.doi.org/10.1016/0045-7825(95)00832-2.[4][10]杨文,李文,李文,李文,李文.一个可扩展的迭代稠密线性系统求解器,用于数据分析中的多个右侧。并行计算2018;74:136-53。http://dx.doi.org/10的网站。1016/j.parco.2017.12.005。[5]刘X,周E,Vaidyanathan K,Smelyanskiy M.通过多个右侧提高动态模拟的2012年 IEEE 第 26届国 际并 行与 分布 式处 理研 讨会2012 年, 第36-47 页。http://dx.doi.org/10.1109/IPDPS.2012.14网站。鲍里斯·克拉斯诺波尔斯基和阿列克谢·梅德韦杰夫软件X 14(2021)1006957[6] [10]张文辉,张文辉. 通过在GPU上高效实现Block-Krylov空间解算器来ComputPhysComm2018;233:29http://dx.doi.org/10.1016/j.cpc.2018.06.019网站。[7] 克拉斯诺波利斯基湾基于多个系综同时建模的不可压缩湍流模拟加速方法Comput Phys Comm 2018;229:8-19. http://dx.doi.org/10.1016/j.cpc.2018的网站。03.023。[8] Heroux MA , Bartlett RA , Howle VE , Hoekstra RJ , Hu JJ , Kolda TG ,Lehoucq RB,Long KR,Pawlowski RP,Phipps ET,Salinger AG,ThornquistHK , Tuminaro RS , Willenbring JM , Williams A , Stanley KS.的 概 述Trilinos项目ACM Trans Math Software 2005;31(3):397-423. 网址://dx.doi.org/10.1145/1089014.1089021网站。[9] 克拉斯诺波利斯基湾重新审视BiCGStab方法求解具有多个右侧的系统的性能。ComputMathAppl2020;79(9):2574-97.http://dx.doi.org/10.1016/j.camwa.2019.11.025网站。[10]Hestenes MR,Stiefel E.解线性方程组的共轭梯度法。J Res Natl Bur Stand1952;49(6):409[11] van der Vorst HA. BI-CGSTAB:BI-CG的一个快速、平滑收敛的变体,用于求解非对称线性系统。SIAM J Sci Stat Comput 1992;13(2):631-44.http://dx.doi.org/10.1137/0913035网站。[12]克拉斯诺波利斯基湾分布式存储计算机系统的重排序BiCGStab方法。ProcediaComputSci2010;1(1):213-8.http://dx.doi的网站。org/10.1016/j.procs.2010.04.024,犯罪分类。[13] 作者:A.并行求解大型非对称线性方程组的通信隐藏流水线BiCGstab方法。并行计算2017;65:1-20. http://dx.doi.org/10.1016/j.parco.2017.04的网站。005.[14]KrasnopolskyB , MedvedevA.XAMG : 源 代 码 库 。 2021 ,URLhttps://gitlab.com/xamg/xamg。[15]Williams S,Waterman A,Patterson D. 屋顶线:一个有见地vi-多核架 构 的 通 用 性 能 模 型 。 Commun ACM 2009;52 ( 4 ) : 65-76.http://dx.doi.org/10.1145/1498765.1498785网站。[16]萨阿德·Y稀疏线性方程组的迭代法。第二版Philadelpha,PA:SIAM;2003.[17]消 息 传 递 接 口 论 坛 。 MPI : 消 息 传 递 接 口 标 准 , 版 本 3.1; 2015 。 网 址 :https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf。[18]Alvarez X,Gorobets A,Trias FX,Borrell R,Oyarzun G. HPC2-一个完全可移植的、基于代数的异构计算框架。适用于CFD。计算流体2018;173:285-92。http://dx.doi.org/10.1016/j.compfluid.2018.01.034.[19][10]杨文军,杨文军.使用混合精度进行稀疏矩阵计算,以提高性能,同时实现64位精度。ACMTransMathSoftware2008;34(4).http://dx.doi.org/10.1145/1377596.1377597网站。[20]Sumiyoshii Y,Fujii A,Nukada A,Tanaka T.多堆芯加速器的混合精度AMG方法In:Proceedings of the 21st European MPI users group meeting,EuroMPI/ASIA '14 , association for computing machinery , New York ,NY , USA. 2014 , p. 127-32. http://dx.doi.org/10.1145/2642769 的 网 站 。2642794。[21]张文辉,张文辉. MPI+线程:运行时争用和补救措施。第20届ACM sigplan并行 编 程 原 理 与 实 践 研 讨 会 论 文 集 。 ACM; 2015 , p. 239-48.http://dx.doi.org/10.1145/2688500.2688522网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功