mpi+openmp程序需要注意事项
2013-05-12 17:36
295 查看
编译的选项
Intel
• Fortran : ifort,
• Fortran with MPI: mpif77, mpif90
• C/C++ :icc
• C/C++ with MPI: mpcc, mpCC
• Option to support OpenMP
• -openmp
Portland Group
• Fortran : pgf77, pgf90
• Fortran with MPI: mpif77, mpif90
• C/C++ :pgcc
• C/C++ with MPI: mpcc, mpCC
• Option to support OpenMP
• -mp
• pgifortref.pdf has good examples
1 openmp程序编译
(1)编译选项选择
OpenMP is supported in all four programming environments available on Franklin and Hopper; however, each compiler suite has a different syntax for enabling OpenMP.
gcc –fopenmp helloworld.c
运行时 export OMP_NUM_THREADS=4设定线程数
2mpi程序编译
mpirun -np 16 ./program
3 mpi+openmp混合编译
参考网址:http://www.nersc.gov/users/computational-systems/hopper/running-jobs/using-openmp-with-mpi/
http://geco.mines.edu/workshop/aug2010/slides/thu/hybrid.pdf
(1)fortran版本
编译:
mpif90 -o earthmo earthmo.f90 -openmp
使用哪个?
对于intel的mpirun,必须在mpirun后加上-env I_MPI_PIN_DOMAIN omp使得每个mpi进程会启动openmp线程。
通过export OMP_NUM_THREADS来控制每个MPI产生多少线程。
(2)c/ c++版本
gcc –fopenmp helloworld.c
Intel
• Fortran : ifort,
• Fortran with MPI: mpif77, mpif90
• C/C++ :icc
• C/C++ with MPI: mpcc, mpCC
• Option to support OpenMP
• -openmp
Portland Group
• Fortran : pgf77, pgf90
• Fortran with MPI: mpif77, mpif90
• C/C++ :pgcc
• C/C++ with MPI: mpcc, mpCC
• Option to support OpenMP
• -mp
• pgifortref.pdf has good examples
1 openmp程序编译
(1)编译选项选择
Compiling to use OpenMP
OpenMP is supported in all four programming environments available on Franklin and Hopper; however, each compiler suite has a different syntax for enabling OpenMP.Compiler Suite | Programming Environment module name | Command line option for OpenMP |
---|---|---|
Portland Group | PrgEnv-pgi | -mp |
Pathscale | PrgEnv-pathscale | -mp |
Cray Compilers | PrgEnv-cray | none needed |
Intel Compilers (Hopper only) | PrgEnv-intel | -openmp |
GNU Compilers | PrgEnv-gnu | -fopenmp |
运行时 export OMP_NUM_THREADS=4设定线程数
2mpi程序编译
mpirun -np 16 ./program
3 mpi+openmp混合编译
参考网址:http://www.nersc.gov/users/computational-systems/hopper/running-jobs/using-openmp-with-mpi/
http://geco.mines.edu/workshop/aug2010/slides/thu/hybrid.pdf
(1)fortran版本
编译:
mpif90 -o earthmo earthmo.f90 -openmp
使用哪个?
对于intel的mpirun,必须在mpirun后加上-env I_MPI_PIN_DOMAIN omp使得每个mpi进程会启动openmp线程。
通过export OMP_NUM_THREADS来控制每个MPI产生多少线程。
(2)c/ c++版本
gcc –fopenmp helloworld.c
相关文章推荐
- mpi+openmp程序需要注意事项
- 关于将java程序打包成可执行exe文件过程需要注意事项
- 打包eclipse swt程序需要注意的几点事项
- 编写OpenCV程序时,需要注意的事项(持续更新)
- 程序缓存需要注意事项
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)
- C#项目关于程序中使用管理员权限的程序的打包,需要注意的事项
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)
- 程序竞赛中需要注意的一些小问题2
- C#程序中的注意事项
- MongoDB中创建索引需要注意的事项
- 使用静态库时需要注意的事项
- 提高Android程序效率注意事项
- struts改变应用路径后,web程序中需要注意修改的几个地方
- 调用控制台程序的方法以及注意事项
- 运行Qt程序的一些注意事项
- 使用程序内购买(IAP)的应用程序在提交时的注意事项,防止审核被拒
- json字符串序列化与反序列化需要注意的事项
- 写APP接口需要注意事项
- OpenCV的HOG+SVM训练程序注意事项