主题:【求助】 关于MPI和集群的一个问题
xaml
[专家分:0] 发布于 2012-05-23 21:31:00
#PBS -S /bin/sh
#PBS -o out2
#PBS -e err2
#PBS -q dque
#PBS -l nodes=12:ppn=1 -l walltime=150000:00:00
cd /project
/opt/mpich2/bin/mpdboot
ulimit -s unlimited
/opt/mpich2/bin/mpif90 -i-static -openmp ...........
/opt/mpich2/bin/mpirun -np 12 ...........
以上是一个提交任务的脚本文件,其中不限制堆栈大小命令“ulimit -s unlimited”这样放置对吗? 我感觉这样只对当前的一个节点有效,如何让这条“ulimit -s unlimited”命令对所有参加运算的节点有效呢?
谢谢!
回复列表 (共10个回复)
沙发
wm694005136 [专家分:10] 发布于 2012-05-25 11:33:00
把ulimit -s unlimited放在.bashrc中
板凳
xaml [专家分:0] 发布于 2012-05-29 10:47:00
[quote]
把ulimit -s unlimited放在.bashrc中[/quote]
请问具体怎么操作呢?我只会基本的Linux命令。
3 楼
wm694005136 [专家分:10] 发布于 2012-05-29 16:06:00
vi ~/.bashrc
在最后添加那句就可以了
加好后,source ~/.bashrc
4 楼
cgl_lgs [专家分:21040] 发布于 2012-05-30 08:41:00
不过这样你还是必须得在集群中每台机器改一次。
当然如果你集群中的登录脚本是集中管理的那就好办了。只需要在主服务器上改就行了。具体的建议您问问集群管理员,自己乱动责任太大啊:)
5 楼
xaml [专家分:0] 发布于 2012-05-31 09:11:00
有没有办法只在我这个提交任务的脚本文件中修改呢? 不方便修改服务器其他的东西啊。
6 楼
xaml [专家分:0] 发布于 2012-05-31 09:11:00
有没有办法只在我这个提交任务的脚本文件中修改呢? 不方便修改服务器其他的东西啊。
7 楼
xaml [专家分:0] 发布于 2012-05-31 19:30:00
谢谢,我还是不太清楚 vi ~/.bashrc 和 source ~/.bashrc 应该放在我这个脚本文件的什么位置,能明确说明一下吗?? 还有bashrc应该放在与脚本文件相同的目录下吗?
8 楼
xaml [专家分:0] 发布于 2012-06-01 17:05:00
[quote]
把ulimit -s unlimited放在.bashrc中[/quote]
还有,用这个bashrc会不会影响别的用户? 使用之后下次当我登陆时还需要重新设置吗?
9 楼
f2003 [专家分:7960] 发布于 2012-06-03 05:18:00
单机上设置堆栈,命令行执行ulimit -s unlimited,或者放到.bash_profile/.bashrc中并非真的就是不限制了,系统还是有限制的。
系统的资源设置是在/etc/security/limits.conf这个文件中,堆栈大小就是其中之一,根据自己的情况设置好这个文件,可以一劳永逸地解决问题。文件中有注释,学习即可,我也改大了,供参考,
root hard stack 1024576
root soft stack 65536
* hard stack 524288
* soft stack 32768
原先都是8MB,我改成了64M/32M,这个值可以在命令行通过ulimit -s再增加,上限(hard)被我设的很大,这个值不能热修改,必须重启。
建议不要改的太大。。。,防止流氓程序或者软件bug占太多内存。
可见,可以分用户进行设置,还有所谓soft/hard设置的区别,这就是为什么ulimit -s 不能解决问题:只能修改soft的值。
以上是以Redhat rhel为例,fedora也一样。其他Linux我就不知道了。
集群上怎么弄,考,我他妈的也帮不了你。
以上都是自己摸索的经验,如有错误请指正。
10 楼
xaml [专家分:0] 发布于 2012-06-04 09:16:00
[quote]单机上设置堆栈,命令行执行ulimit -s unlimited,或者放到.bash_profile/.bashrc中并非真的就是不限制了,系统还是有限制的。
系统的资源设置是在/etc/security/limits.conf这个文件中,堆栈大小就是其中之一,根据自己的情况设置好这个文件,可以一劳永逸地解决问题。文件中有注释,学习即可,我也改大了,供参考,
root hard stack 1024576
root soft stack 65536
* hard stack 524288
* soft stack 32768
原先都是8MB,我改成了64M/32M,这个值可以在命令行通过ulimit -s再增加,上限(hard)被我设的很大,这个值不能热修改,必须重启。
建议不要改的太大。。。,防止流氓程序或者软件bug占太多内存。
可见,可以分用户进行设置,还有所谓soft/hard设置的区别,这就是为什么ulimit -s 不能解决问题:只能修改soft的值。
以上是以Redhat rhel为例,fedora也一样。其他Linux我就不知道了。
集群上怎么弄,考,我他妈的也帮不了你。
以上都是自己摸索的经验,如有错误请指正。[/quote]
ulimit -s 还是可以解决程序出现"segment fault”错误的对我来说,我用OpenMP在单机上弄的时候。
我来回复