您的位置:首页 > 运维架构

ubuntu下安装openmp和mpi环境

2014-01-12 21:51 946 查看
1.进入终端,选择一个自己的目录,安装MPICH2

   运行命令:sudo apt-get install mpich2

2.安装配置文件并且进行设置

   运行命令1:touch mpd.conf

   运行命令2:chmod 600 mpd.conf

   在mpd.conf文件中输入以下文本内容并保存:

   MPD_SECRETWORD=mr.chen

3.开启mpi服务器并且进行编译执行mpi文件

   3.1 开启mpi环境:mpdboot (我没有手动开启,后面的操作也成功)

   3.2 编译mpi文件(-o Hello 指定输出文件的名称):mpicc -o Hello Hello.c

   3.3 执行生成的二进制文件(-np 4:表示用4个进程):mpirun -np 4 ./Hello

   运行结果如下:

   user@ubuntu:~/test_mpi_examples$ mpirun -np 4 ./Hello

Hello world! Processor 0 of 4 on ubuntu

Hello world! Processor 1 of 4 on ubuntu

Hello world! Processor 3 of 4 on ubuntu

Hello world! Processor 2 of 4 on ubuntu

4.关闭mpi服务器

   运行命令:mpdcleanup

附加测试文件(Hello.c):

#include "mpi.h"

#include <stdio.h>

#include <math.h>

int main(int argc, char **argv)

{

int myid, numprocs;

int namelen;

char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &myid);

MPI_Comm_size(MPI_COMM_WORLD, &numprocs);

MPI_Get_processor_name(processor_name, &namelen);

fprintf(stderr, "Hello world! Processor %d of %d on %s\n", myid, numprocs, processor_name);

MPI_Finalize();

return 0;

}

OPENMP 环境:openmp库都是随编译器一起发布的,如果你的程序是源代码编译的,只要编译器支持openmp编译选项就肯定能用。GNU,intel的都支持,包括gcc,gfortran,icc,ifort。

如果是GCC,那么编译的命令应该是 gcc -fopenmp -o exefile sourcefile,这里的-fopenmp很重要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息