并行计算 & HPC & MPI

来源:互联网 发布:婵真淘宝 编辑:程序博客网 时间:2024/05/03 09:41

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的特点有:

1MPI一种新的库描述,不是一种语言。

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并行程序

3MPI程序是如何执行的?


 


 


详细内容参见ebook

0 0
原创粉丝点击