楼主:
noonee (我和烤肉间只差一撮孜然)
2016-08-10 00:12:08想问一个应该是shell script的问题
平常都是在hpc上面丢job 但是因为人很多 很多job都要等很久才开始跑
但是有些计算其实也就十几分钟 但是这种的job量很大
所以想考虑直接在桌上型电脑上跑
如果直接全部丢的话 就是全部一起执行 几乎同时全部结束
因为是普通桌上型 CPU只有四核
量小的时候 大约20~30内吧 就是慢而已
量多的时候 大约超过50 甚至会出错
更不要说全部同时一起执行的时候 普通的使用都会受到影响
所以在想有没有办法让他一个接着一个跑
同时可以控制同时在跑的job数量 例如说随时在跑的最多两个或三个jobs
这样可以保留其他普通工作的空间
这样的需求可以用写script 来解决吗?
还是只能自己装一个小cluster 单一电脑用?
如果是script的话 现在还没有什么头绪该从那边下手
不知道有没有人有类似经验给点建议
谢谢
作者:
CaptainH (Cannon)
2016-08-10 00:43:00取决于你怎么"丢"job 但你偏偏不写这个
楼主:
noonee (我和烤肉间只差一撮孜然)
2016-08-10 01:36:00如果是hpc上当然就是qsub ./exe我在自己电脑上平丢也只是用 nohup ./exe & 而已程式本身没有做平行化所以可以看成很一般的执行
作者:
Hevak (Arthow Eshes)
2016-08-10 06:04:00GNU parallel
楼主:
noonee (我和烤肉间只差一撮孜然)
2016-08-10 11:57:00谢谢楼上 正在看是不是我要的大致上看懂意思了 应该不是我要的 还是谢谢
作者:
bibo9901 (function(){})()
2016-08-10 18:14:00明明gnu parallel 就是你要的
楼主要找的是 taskset -c 0 some_heavy_command 吧?
作者:
lspci (awk sed echo)
2016-08-10 22:44:00把所有的计算工作写进一个job script里面就可以了
作者:
m8403051 (大吉岭红茶)
2016-08-11 16:13:00开三个 terminal, 每个各贴一次 cmd && cmd && cmd...
作者:
Hevak (Arthow Eshes)
2016-08-12 21:30:00同时只有3个job这种就是gnu parallel在玩的啊@@