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之前的./不能省略,否则肯能报错。
相关文章推荐
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- fedora20上搭建MPI集群
- RTEMS4.11 FEDORA20 64BIT环境搭建
- FEDORA 20下STM32 ECLIPSE环境搭建
- J1800N-D2H主板升级bios,安装Fedora20,并搭建开发环境
- Fedora 20下安装搭建LAMP环境Apache+MySQL+PHP
- fedora20 编译Hadoop-eclipse 1.1.2插件(hadoop开发环境搭建)
- [linux学习笔记] 使用fedora20搭建开发环境
- Fedora20搭建伪Hadoop集群,运行Wordcount程序
- Fedora 20 下搭建Android开发环境
- fedora20搭建嵌入式开发环境1 - 系统安装
- fedora20搭建嵌入式开发环境2 - 开发工具安装
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- fedora20搭建嵌入式开发环境1 - 系统安装
- 如何在fedora20上用squid搭建代理服务器
- fedora 20 与 centos 6.5 搭建openldap服务器心得
- fedora20搭建嵌入式开发环境2 - 开发工具安装
- fedora 20 mysql 的安装
- 搭建fedora16->tiny210 Qt交叉编译环境 总结
- Ubuntu 14.04, Fedora 20, CentOS 6.5 下Broadcom4313网卡驱动安装以及上网问题