[问题] multi-jobs in single CPU

楼主: 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:00
GNU parallel
楼主: noonee (我和烤肉间只差一撮孜然)   2016-08-10 11:57:00
谢谢楼上 正在看是不是我要的大致上看懂意思了 应该不是我要的 还是谢谢
作者: bibo9901 (function(){})()   2016-08-10 18:14:00
明明gnu parallel 就是你要的
作者: fourdollars (四元)   2016-08-10 22:39:00
楼主要找的是 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在玩的啊@@
作者: jokester (蛮王科科)   2016-08-18 11:27:00
简单的job control也可在bash做: https://git.io/v6KdZ

Links booklink

Contact Us: admin [ a t ] ucptt.com