您的位置:首页 > Web前端

Fedora20搭建OpenMP和MPICH3并行开发环境

2014-06-10 15:31 741 查看

OpenMP

OpenMP属于共享内存编程模型技术,通过在程序源码中加入编译制导指令#pragma omp行实现程序的并发运行,支持C、C++和Fortran,需要编译器的支持。

配置

GCC支持OpenMP,通过在编译命令中加入编译选项-fopenmp和链接选项-lgomp -lpthread实现。对于IDE可以在对应配置选项中添加或附加编译项中直接输入上述指令:

CodeBlocks的OpenMP支持

1、选择Project菜单的Build options选项或管理栏项目右键菜单的Build options选项;2、根据需要选择Debug、Release或项目名称(Debug和Release全选);3、选择Compiler settings页的Other options页,填入-fopenmp;4、选择Linker settings页,在Other linker options中填入-lgomp -lpthread。

QT的OpenMP支持

直接在项目的pro文件中添加以下内容:
QMAKE_CXXFLAGS += -fopenmp
LIBS += -lgomp -lpthread

简单测试

源码中合适位置添加下列内容,将会打印8行的‘Hello workd!’(注意打印函数要替换为对应的语言):
#pragma omp parallel num_threads(8) //启动8个并行线程
{
printf("Hello world!\n");
}

MPICH3

1、下载mpich-3.1.tar.gz
地址:http://www.mpich.org/downloads/
2、安装
tar xzf mpich-3.1.tar.gzcd mpich-3.1./configure --prefix=/usr/local/mpich --disable-f77 --disable-fc 2>&1 | tee c.txtmake 2>&1 | tee m.txtmake install 2>&1 | tee mi.txt3、设置环境变量PATH=/usr/local/mpichl/bin:$PATH ; export PATH4、检测安装which mpiccwhich mpiexec5、执行测试
可以使用mpich自带的例子,执行:mpiexec -n 4 ./examples/cpi
也可以自己编写简单测试程序,创建hello.c,输入下列内容:
#include <stdio.h>
#include "mpi.h"
int main(int argc, char ** argv)
{
int myrank, nprocs, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
MPI_Get_processor_name(processor_name, &namelen);
printf("Hello World! I'm rank %d of %d on %s\n", myrank,
nprocs, processor_name);
MPI_Finalize();
return 0;
}
编译:mpicc -o hello hello.c
执行:mpirun -np 4 ./hello //注意hello之前的./不能省略,否则肯能报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: