共查询到14条相似文献,搜索用时 93 毫秒
1.
简要综述并行计算的思想,并对分布式内存结构和共享式内存结构两种结构的特点进行比较。叙述如何应用OpenMP和MPI进行混合编程,以及相应的混合编程模型。通过一个实例,针对多核CPU组成的SMP构架的集群,实现OpenMP和MPI混合编程的性能对比和结论分析。 相似文献
2.
MPI+OpenMP混合并行编程模型应用研究 总被引:13,自引:0,他引:13
多处理器结点集群在高性能计算市场上日趋流行,如何在多处理器上编写出高效的并行代码成为研究的热点。MPI+OpenMP为多处理器结点集群提供了一种有效的并行策略,结点内部共享内存空间编程模式适合 OpenMP并行,消息传递模型MPI被用在集群的结点与结点之间,这样就实现了并行的层次结构化。 相似文献
3.
针对对称逐步超松驰预处理共轭梯度(Symmetric Successive Over Relaxation Preconditioned Conjugate Gradient,SSOR-PCG)法并行化时每步迭代都要并行求解2个三角方程组的困难,采用多色排序技术提高并行度,基于MPI+OpenMP混合编程模型开发适合于分布共享内存计算机的并行程序,通过测试选择有效的MPI通信函数,并给出3种避免共享数据竞争的措施,供不同规模问题和不同内存容量计算机情况选用. 相似文献
4.
5.
6.
7.
阐述MPI与OpenMP进行并行计算的特点,并在Visual Studio 2010上构建一个基于两者的混合编程平台。程序在该平台上执行时能够同时实现多进程与进程内多线程编程,设计并实现一种基于数据划分的矩阵乘法的并行算法,将数据分解为两部分交给两个计算节点分别完成,并在每个计算节点内将数据进一步划分,交给多个线程同时执行。通过与非并行矩阵乘法、MPI矩阵乘法、OpenMP矩阵乘法运算性能进行比较,验证该算法可以有效地挖掘计算机的处理能力。 相似文献
8.
本文阐述了MPI和OpenMP的编程模式,并在此基础上利用MPI和OpenMP混合并行的方式,即:在节点内应用OpenMP共享存储、在节点间应用MPI进行消息传递的模式,对我国自行研发的数值天气预报系统GRAPES(Global/Regional Assimilation and Prediction Syste)进行测试,。结果表明,混合并行算法比原来的单纯的MPI模式有更加理想的并行效率和加速比。 相似文献
9.
差分方法是求解偏微分方程的最主要工具之一,并行求解差分方程可以快速解决工程问题。研究了基于MPI与OpenMP混合的并行计算方法 ,基于该方法测试了稳态传热问题的计算,结果表明,混合并行模式对于提高计算速度有加大的帮助。 相似文献
10.
非负矩阵分解(NMF)作为一种数据降维和特征提取的有效工具,已经在文本聚类、推荐系统等多个领域得到应用,但是其计算过程比较复杂。对此,提出一种基于MPI+OpenMP的混合层次化并行NMF方法,其充分利用基于MPI的消息传递模型和基于OpenMP的共享存储模型各自的优势,并基于多核节点集群进行测试。实验结果表明,所设计的并行NMF算法达到了较高的加速比,能有效处理高阶矩阵的非负分解,极大地提高了计算的效率。 相似文献
11.
普通Kriging方法是进行空间降水插值的一种有效方法。然而一方面由于海量数据插值计算量大,另一方面该算法的时间复杂度大,为减少空间降水插值的计算时间,采用OpenMP和MPI混合并行技术,实现Kriging并行算法。在Windows操作系统上搭建并行计算环境,实验数据表明,该并行算法能有效地节省计算时间。 相似文献
12.
计算机集群技术已经引起了石油地球物理界的广泛关注,如何将现有地震数据处理模块快速、高效地移植到集群上已成为地震数据处理需要解决的重大课题。本文将现有的基于消息传递(MPI)的并行地震处理模型与共享存储(OpenMP)模型相结合,实现了一个适合于SMP集群的并行地震数据支撑库,将涉及到消息传递的并行地震数据操作以直观的API的形式提供给开发人员。本文利用支撑库提供的API开发了一些测试模块。实验证明,支撑库可支持现有地震数据处理和显示模块的多种并行计算模型,并且能够获得较高的并行加速比和计算效率。 相似文献
13.
Tobias Hilbrich Matthias S. Müller Bettina Krammer 《International journal of parallel programming》2009,37(3):277-291
The MPI interface is the de-facto standard for message passing applications, but it is also complex and defines several usage
patterns as erroneous. A current trend is the investigation of hybrid programming techniques that use MPI processes and multiple
threads per process. As a result, more and more MPI implementations support multi-threading, which are restricted by several
rules of the MPI standard. In order to support developers of hybrid MPI applications, we present extensions to the MPI correctness
checking tool Marmot. Basic extensions make it aware of OpenMP multi-threading, while further ones add new correctness checks.
As a result, it is possible to detect errors that actually occur in a run with Marmot. However, some errors only occur for
certain execution orders, thus, we present a novel approach using artificial data races, which allows us to employ thread
checking tools, e.g., Intel Thread Checker, to detect MPI usage errors. 相似文献
14.
Nowadays, NVIDIA's CUDA is a general purpose scalable parallel programming model for writing highly parallel applications. It provides several key abstractions – a hierarchy of thread blocks, shared memory, and barrier synchronization. This model has proven quite successful at programming multithreaded many core GPUs and scales transparently to hundreds of cores: scientists throughout industry and academia are already using CUDA to achieve dramatic speedups on production and research codes. In this paper, we propose a parallel programming approach using hybrid CUDA OpenMP, and MPI programming, which partition loop iterations according to the number of C1060 GPU nodes in a GPU cluster which consists of one C1060 and one S1070. Loop iterations assigned to one MPI process are processed in parallel by CUDA run by the processor cores in the same computational node. 相似文献