This topic created in 1896 days ago, the information mentioned may be changed or developed.
碰到个问题,需要预估文件处理速度和完成时间,但是批处理是并行的,这个应该怎么算??
比如有 10 个文件,大小是 1 2 3 4 5 6 7 8 9
单进程处理速度是 1,共 3 个进程,求如何算完成时间??
感觉顺序不一样完成时间也会不一样,大致的范围能算吗?最好能用 python 实现
11 replies • 2021-03-09 00:13:47 +08:00
 |
|
1
AX5N Mar 7, 2021
直接乘以 3 不就得了,你不是只要大概范围吗,误差范围就不管了呗
|
 |
|
2
learningman Mar 7, 2021 via Android 1
别算了,上协程,反正不浪费 CPU 时间
|
 |
|
3
makdon Mar 8, 2021
抽象来说,就是你有 n 个数值,将其分成 m 组,设分组后每组和的最大值为 x,求 x 的最小值?
|
 |
|
4
woctordho Mar 8, 2021 via Android
搞个负载均衡吧,比如用 Queue,然后估算时间只要除以 3 就行了
|
 |
|
5
xuegy Mar 8, 2021
先排三个队列出来,从最大的可能性开始选,目标是总和达到平均值。比如第一个线程选 9+6,第二个选 8+7,第三个选剩下的,正好同时完成。
|
 |
|
6
siyemiaokube Mar 8, 2021 via iPhone
精准的完成时间是多机调度问题,精确解是 npc 问题,所以你还是随便估一下吧
|
 |
|
7
dingwen07 Mar 8, 2021 via iPhone
如果是单核 CPU 那就简单了
|
 |
|
8
momo1999 Mar 8, 2021
from multiprocessing import Manager 算的过程中上报进度
|
 |
|
9
ch2 Mar 8, 2021
已用时间 t_current,已完成任务的百分比 percent,预计完成时间 t_current/percent*(1-percent) percent 由 n 个子进程汇报给父进程,父进程计算
|
 |
|
11
space2020 Mar 9, 2021 1
这是个 NP-完全问题,如果想要求精确解,目前只能暴力,或者用贪心算法求一个近似解。
|