24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1155  |  回复: 6
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ymyang008

捐助贵宾 (小有名气)

[交流] 【求助】linux集群,如何自编FORTRAN 程序实现并行

在fortran 程序中如何编程实现并行运算

[ Last edited by zzgyb on 2008-5-7 at 00:01 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wudai

木虫 (初入文坛)

★ ★ ★ ★
spur(金币+4,VIP+0):many thanks!
lei0736(金币+0,VIP+0):十大“耐思”版主评选欢迎参与投票 http://emuch.net/bbs/viewthread.php?tid=845527&fpage=1
要实现并行计算,需要安装并行工具的,如 MPICH, HP-MPI 等,他们都是MPI的具体实现,关于什么是MPI,及MPICH 请自己百度一下吧。

MPICH是免费的,可以到官方下载http://www.mcs.anl.gov/research/projects/mpich2/ ,现在已经发展到MPICH2了,在MPICH2中实现了对 C/C++,fortran77,fortran90的支持。

怎么在linux和windows下安装MPICH,以及如何配置你的编译器的并行环境,百度里多的是,我的博客里也有,写的都很详细了。

下面就是一个最简单的 helloworld 并行程序,fortran77版本的
==================================================
program main

        include 'mpif.h'
        implicit none
        integer i,ierr,rc,namelen,num,l,m
        character(MPI_MAX_PROCESSOR_NAME) name

        call MPI_INIT(ierr)
        call MPI_COMM_RANK(MPI_COMM_WORLD,i,ierr)
        call MPI_COMM_SIZE(MPI_COMM_WORLD,num,ierr)
        call MPI_GET_PROCESSOR_NAME(name,namelen,ierr)

       write(*,"('hello world !  processor',I2,' of ',I1,' on ',20A)" i,num,name

        call MPI_FINALIZE(rc)
end program main
==================================================

编译连接后,用命令行执行: mpirun -np 6  ./a.out 这样就启动了6个进程执行你的程序。至于在集群环境下,一般要写一个mpd.hosts文件,里面写上要起动的节点,然后最好在主节点上提交任务。

就写这么多吧,楼主发帖已经一月有余,不知楼主还能否看到我的回复了,呵呵

[ Last edited by wudai on 2008-6-22 at 10:55 ]
6楼2008-06-22 10:50:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

小欢

金虫 (正式写手)


lei0736(金币+1,VIP+0):谢谢
据本人所知,用MPI和PVM可以实现并行计算。
2楼2008-05-09 20:46:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wxjbuilder

木虫 (知名作家)

★ ★
lei0736(金币+2,VIP+0):谢谢
本人愚见:
并行计算应该是程序自己所支持的吧,而不是你想让它并行运算就并行的吧
对于能并行运算的程序,应该可以指定cpu的个数
悠悠天地,奈何独立苍茫?
3楼2008-05-09 21:03:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abinitio

版主 (著名写手)

我自己不会,但听过讲座。
如2楼小欢所言,使用MPI即可实现并行运算,具体是在程序开始处好象加上一个MPI的并行语句即可。
4楼2008-05-09 21:40:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见