24小时热门版块排行榜    

查看: 603  |  回复: 9
当前主题已经存档。

fineren

木虫 (正式写手)

[交流] 【求助】如何在计算机集群上做并行计算

有专门用来做高斯计算的集群,24个节点,Linux系统。但管理机器的人不知道怎么做并行计算,求助做过的xd,用那个secureCRT登录主机,如何让比如5个节点同时计算?谢谢

[ Last edited by zzgyb on 2008-10-16 at 15:30 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

richard58272

金虫 (正式写手)

★ ★
zzgyb(金币+2,VIP+0):谢谢你的参与,欢迎再次光临计算模拟版!
建议你问一下专门做高斯或分子动力学的教授,我知道有一个,他自己管理机群,不过他不上小木虫。你可以给他发电子邮件:严六明,上海大学化学系教授,liuming.yan@shu.edu.cn
2楼2008-10-16 16:20:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fineren

木虫 (正式写手)

3楼2008-10-16 16:53:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

如果只做G03的并行的话,我可以帮你配置!

我只提供最为简单的。

但是如果是多用户使用的话,需要别的服务配置!

邮件abbott.cn@gmail.com  如果你有更好的解决办法,大家一起交流啊!
Chemistry[]==[]Chem[]is[]try!!!
4楼2008-10-16 19:02:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fineren

木虫 (正式写手)

我看了别人写的,输入以下:
echo “Tsnet.Node.lindarsharg: ssh” >~/.tsnet.config
export GAUSS_LFLAGS=‘ -nodelist “Node1 Node2”’
export GAUSS_EXEDIR=/home/gauss/g03/linda-exe:$GAUSS_EXEDIR

gjf文件里把并行机器的个数和单个机器cpu个数标出:
%nprocl=2
%nprocs=1

然后提交:
g03 ××.gjf &
但只在一个节点上计算。

另外有个问题,用我们那集群的计算机算几个小时,有时算几分钟,计算就自己停止了。log文件没有报错,也没显示已算完。这是咋回事?
5楼2008-10-16 20:32:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

我可以提供一些参考

如果是并行,跨节点的,比如你的文件中用到%nproclinda=2,那么你必须是用g03l tst.com& 来提交你的作业,
如果你仅仅使用%nprocshared=n, 那个是SMP(共享内存的方式, 适用于一个主板上有一个CPU, 多核心的也可以,几个物理CPU也可以), 这样的作业,提交用g03 tst.com&

如果并行是通过linda进行的,那么你的log文件中的时间仅仅记录的是最后一个link所用的时间,并不是整个作业的时间消耗。


在计算进行过程中,可以并行的link,你会在参与的几点上面看到lnnn.exel的进程,但是这个进程运行的时间不一定和主节点上的一样。

举个例子,如果你的主节点,除了做管理之外,还参与计算,那么由于主节点担负的load比其他的节点多, 他运行一个进程的时间就相对的长一点, 这样就是你看到的一个可以并行的link,其他的节点上是不动的,只有主节点上在运作。 可是,实际上,由于其他的slave节点,计算资源较多,已经完成了本次进程的并行后的部分工作,所以在等待主节点或者其他节点计算完成后,合并结果,获取数据。

可以说,如果你的cluster中,没有一个很好的load balance系统,那么最好这样处理。
单独一个节点,用来做管理,提供各种服务,比如你能用到的NIS,NFS,同时做一个磁盘阵列,主节点兼作存储节点,而且他的slave node 都用做计算节点。

但是同是也要明确,高斯中还有也能多不能并行的link ,那么就要求,运行不能并行的link的机器,性能一定要强,负责,在不能并行的节点上,会浪费很多时光的。


还有一个问题,尽量的让计算过程中,不要使用SWAP,过多的使用SWAP,回导致计算性能下降。应该很明确,CPU和RAM交换数据的速度绝对比和磁盘交换数据的速度快很多。

一般而言,主要承担计算的节点上的内存余量(系统正常运作后,剩余的物理内存,不包含SWAP空间)的95%都可以用于计算的内存设置。

以上的东西,只是个人的一点点看法,不正确指出,请高手斧正!


abbott.cn@gmail.com
刚刚开始一个人摆弄G03的并行,希望能和大家多多交流!
Chemistry[]==[]Chem[]is[]try!!!
6楼2008-10-16 23:49:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fineren

木虫 (正式写手)

引用回帖:
Originally posted by abbott at 2008-10-16 23:49:
如果是并行,跨节点的,比如你的文件中用到%nproclinda=2,那么你必须是用g03l tst.com& 来提交你的作业,
如果你仅仅使用%nprocshared=n, 那个是SMP(共享内存的方式, 适用于一个主板上有一个CPU, 多核心的 ...

谢谢。你是说开始计算时输入的是:g03l name.gjf &           就是说g03后面加个“l ”?
我用的集群主节点和其他的配置一样。提交计算的时候是从主节点提交还是从node1提交?(假如我选的节点1和2)
7楼2008-10-17 08:38:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fineren

木虫 (正式写手)

引用回帖:
Originally posted by tq02ksu at 2008-10-17 00:05:
MPI就行。

不懂,呵呵
8楼2008-10-17 08:47:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

如果你的集群Cluster安装了作业管理软件,比如OpenPBS,那么你得使用PBS 脚本来提交作业。
对于一个大规模的集群,最好采取作业管理软件,否则麻烦不断啊。

采用PBS管理的脚本,在网上就可以找到的。

最好不要在节点上提交作业,容易卡死,而且效率贼低下的!
Chemistry[]==[]Chem[]is[]try!!!
9楼2008-10-19 21:05:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 proton00 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见