水木社区手机版
首页
|版面-Linux系统与应用(LinuxApp)|
新版wap站已上线
返回
1/1
|
转到
主题:bash怎么规划并发 提高速度
楼主
|
wenti
|
2021-08-01 13:16:32
|
展开
一个大活,分成了100份小活,每个小活100个不同参数
例如
xxx 参数1 yy.dat
xxx 参数2 yy.dat
。。。。
xxx 参数10000 yy.dat
不同的参数,读取同样的数据 yy.dat, 然后计算,得结果
现在问题是,有的算得快,有的算的慢,有的核早就算完歇息了
怎么提高效率,充分利用这些核,减少歇息时间,最后所有的核一直干活
--
FROM 159.226.171.*
14楼
|
wenti
|
2021-08-03 15:20:59
|
展开
待测试 是不是有很多会变zombie
【 在 hgoldfish 的大作中提到: 】
: #/bin/sh
: env python done.py
: 然后用 python 的 multiprocessing 模块
: ...................
--
FROM 159.226.171.*
15楼
|
wenti
|
2021-08-03 15:25:11
|
展开
有个问题是 这其实是10000行类似的活 同样的命令和数据 参数不同而已
每次都要读取同样的数据 轮询好像不能省下这个时间
有个合适的并发数目m, 我发现cpu核数>>并发数m,多于m速度反而下降了,不是IO的原因
【 在 sosei 的大作中提到: 】
:
https://www.jianshu.com/p/8233b365b2a9
: 看这儿
--
FROM 159.226.171.*
16楼
|
wenti
|
2021-08-03 15:27:04
|
展开
parallel -j 10 < file
把一万行写到file里, 能一直保证是10个任务在跑 是吧?
不过要读一万次,重复读取,有点浪费时间
【 在 JulyClyde 的大作中提到: 】
: 不能控制数量
:
--
FROM 159.226.171.*
19楼
|
wenti
|
2021-08-04 21:48:54
|
展开
这个命令 来自于某个软件 是个黑盒子 只能调用它
【 在 JulyClyde 的大作中提到: 】
: 为什么要读一万次?
: 那程序得写的多烂才能这样啊?
:
--
FROM 159.226.171.*
21楼
|
wenti
|
2021-08-05 17:08:11
|
展开
我就是比如20000行 分成100份 每份200行 去跑
每行就是参数不一样而已 但是每行都要打开关闭数据应该
【 在 JulyClyde 的大作中提到: 】
: 你确定这些程序还能记得“上次读到第几行”了吗?
:
--
FROM 159.226.171.*
24楼
|
wenti
|
2021-08-06 21:37:05
|
展开
是不是放到 /dev/shm里面
【 在 sosei 的大作中提到: 】
: 不是轮询,是管道
: 你这个反复处理一个数据文件,把这个数据文件放到Ramdisk大概不错
:
--
FROM 159.226.171.*
25楼
|
wenti
|
2021-08-07 17:07:12
|
展开
进程数目能不能一直控制在一个固定的数 n ?
比如 10000行的任务 分成n份 有可能有的提前算完 有的晚点 这样造成算力没有充分利用
怎么控制 尽可能 同事算完?或者 比方有一个算完了 就去帮没算完的
【 在 lcgogo 的大作中提到: 】
: 这个看上去最好,xargs,make,parallel感觉都只是多进程而已,不满足楼主的要求。
:
--
FROM 159.226.171.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版