您的位置:首页 > 其它

并行计算 & HPC & MPI

2016-07-28 01:12 211 查看
1.并行编程模型
并行编程模型有三类:
(1)数据并行模型
相同的操作同时作用于不同的数据。
(2)共享变量模型
用共享变量实现并行进程间的通信。
(3)消息传递模型
在消息传递模型中,驻留在不同节点上的进程可以通过网络传递消息相互通信,实现进程之间的信息交换、协调步伐、控制执行等。



2.HPC
HPC,highperformance computing,高性能计算平台,和map-reduce并行的一种高性能分布式计算平台。
HPC=
Torque + Maui
+ OpenMPI
Torque:一个资源管理器,统筹着集群的所有资源;
Maui:一个任务调度器,支持将任务划分为队列,将任务划分为用户,支持资源预留,支持各种复杂的优先级策略,支持抢占机制等;
OpenMPI:一个上层通信环境,兼顾通信库,编译,分布式启动任务的共能;
Torque和maui属于平台的管理软件,完全对用户透明,OpenMPI用户则需要进行相关的了解。

3.MPI
MPI,Massage Passing Interface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C/C++,MPI的特点有:
(1)MPI一种新的库描述,不是一种语言。
(2)共有上百个函数调用接口,在Fortran和C/C++语言中可以直接对这些函数进行调用
(3)是一种标准或规范,而不是特指某一个对它的具体实现
(4)MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准

MPI标准和规范的实现:
(1)MPICH
是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,具有更好的可移植性。当前最新版本有MPICH1.2.7p1和MPICH2
1.3.2p1。
(2)OpenMPI
LAMMPI的下一代MPI实现。当前最新版本1.4.3
(3)更多的商业版本MPI
有HP-MPI,MS-MPI,……

所有的版本遵循MPI标准,MPI程序可以不加修改的运行。

4.mpi程序的helloworld范例
(1)例程
#include<stdio.h>
#include "mpi.h“
main( int argc, char*argv[] )
{
MPI_Init( &argc,&argv );
printf(“HelloWorld!\n");
MPI_Finalize();
}


(2)MPI程序的编译和运行
mpicc–O2 –o hello hello.c #生成hello的可执行代码
mpirun –np 4 hello #运行hello可执行程序。4指定np的值,表示进程数,由用户指定。hello,要运行的MPI并行程序。
(3)MPI程序是如何执行的?





详细内容参见ebook
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: