24小时热门版块排行榜    

查看: 1497  |  回复: 8

huangvy

木虫 (正式写手)

[求助] 在没有安装openmp库的计算机上能不能使用openmp?

如题,本人想利用学校的高性能计算中心计算程序,但是高性能计算中心的机子上没有安装openmp,我怎么才能用上openmp做并行运算?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

洪水研究:滑坡体(堰塞湖)溃决,土石坝溃决,梯级大坝溃决,冰湖溃决;暴雨山洪;城市洪水;河道演变模拟;well-balanced FVM, AMR, OpenMP, OpenAcc等
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baghnac

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
huangvy(金币+1): 有帮助 2011-12-25 11:00:18
我觉得不支持OpenMP才奇怪。
现在一般都有
GNU,intel的都支持
包括gcc,gfortran,icc,ifort
Beagreathackernotacracker!
2楼2011-12-24 10:52:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangvy

木虫 (正式写手)

引用回帖:
2楼: Originally posted by baghnac at 2011-12-24 10:52:08:
我觉得不支持OpenMP才奇怪。
现在一般都有
GNU,intel的都支持
包括gcc,gfortran,icc,ifort

这个问题我问过学校高性能计算中心的老师了,只支持MPI,没有openmp的机子上不能并行openmp编写的fortran程序!
洪水研究:滑坡体(堰塞湖)溃决,土石坝溃决,梯级大坝溃决,冰湖溃决;暴雨山洪;城市洪水;河道演变模拟;well-balanced FVM, AMR, OpenMP, OpenAcc等
3楼2011-12-25 10:59:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher

【答案】应助回帖


感谢参与,应助指数 +1
dbb627(金币+1): 欢迎交流 2011-12-28 08:59:04
openmp库都是随编译器一起发布的,如果你的程序是源代码编译的,只要编译器支持openmp编译选项就肯定能用。
4楼2011-12-25 12:06:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baghnac

金虫 (小有名气)

【答案】应助回帖


huangvy(金币+1): 有帮助 我采用的fortran编程,我的编译没有问题。在大型机上能够运行我的程序,在没有安装openmp库的集群是不能运行! 2011-12-27 20:26:21
dbb627(金币+1): 欢迎交流 2011-12-28 08:59:19
这里粘上一个OpenMP的C程序。注意,只加了一行#pragma omp parallel for
,作用就是启动OpenMP并行(类型这个意思吧)
我觉得你的问题出在编译上。
如果是GCC
那么编译的命令应该是 gcc -fopenmp test.c,而不是gcc test.c 这里的-fopenmp很重要。
CODE:
  #include
  #include
  #include
  voidTest (intn) {
  for(inti = 0; i < 10000; ++i) {
  //do nothing, just waste time
  }
  printf("%d, ", n);
  }
  intmain(intargc, char* argv[]) {
  #pragma omp parallel for
   for(int i = 0; i < 10; ++i)
  Test( i );
  system("pause");
  }

另外,OpenMP和OpenMPI不一样。我觉得MPI并行比OpenMP并行好用,MPI叫消息传递接口,使用起来更灵活,它与C语言,Fortran都有接口,或者你更适合用MPI,
再附:MPI的程序有,mpich,lam-mpi(后来更名新的项目,叫OpenMP),还有收费的。。。
Beagreathackernotacracker!
5楼2011-12-27 12:34:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baghnac

金虫 (小有名气)

【答案】应助回帖

huangvy(金币+3): 2011-12-28 11:19:07
引用回帖:
我采用的fortran编程,我的编译没有问题。在大型机上能够运行我的程序,在没有安装openmp库的集群是不能运行

我也用了一段时间fortran,一开始我也像你一样想用OpenMP作并行,可是学了一段时间之后,发现用OpenMP越并越慢。
但是,据我所知,我随便装的fortran编译器,包括intel的ifort,GNU的gfortran,都是支持OpenMP的
不过,是不是你用的是3.0的标准?因为虽说编译器支持OpenMP,但是如果集群用的是比较早的版本那它应该遵照的是OpenMP 2.0的标准。

我最后是放弃的OpenMP,改用MPI作并行。

集群上用OpenMP显然会出问题,我无法想像你通过怎么样让不同的电脑共享内存,因为它们并不是在同一块主板上,理论上你没法实现。

但是MPI+OpenMP似乎不错,单机上共享内存,节点间用消息传递,不过,那就有些复杂,哈哈哈
Beagreathackernotacracker!
6楼2011-12-27 23:45:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baghnac

金虫 (小有名气)

补充:3.0的标准和2.0的标准其实差异不大

所以,集群上用OpenMP本身就很奇怪。
Beagreathackernotacracker!
7楼2011-12-27 23:46:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher


dbb627(金币+1): 欢迎交流 2011-12-29 18:46:53
集群上交一个节点就是了。
8楼2011-12-28 08:31:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangvy

木虫 (正式写手)

引用回帖:
8楼: Originally posted by 锐利的碎片 at 2011-12-28 08:31:49:
集群上交一个节点就是了。

目前就是这么干的!
洪水研究:滑坡体(堰塞湖)溃决,土石坝溃决,梯级大坝溃决,冰湖溃决;暴雨山洪;城市洪水;河道演变模拟;well-balanced FVM, AMR, OpenMP, OpenAcc等
9楼2011-12-28 11:19:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 huangvy 的主题更新
信息提示
请填处理意见