V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ft3312591
V2EX  ›  Python

用 Python 做数学题,求个并行处理速度的问题

  •  
  •   ft3312591 · 2021-03-07 22:07:46 +08:00 · 2787 次点击
    这是一个创建于 1363 天前的主题,其中的信息可能已经有所发展或是发生改变。
    碰到个问题,需要预估文件处理速度和完成时间,但是批处理是并行的,这个应该怎么算??
    比如有 10 个文件,大小是 1 2 3 4 5 6 7 8 9
    单进程处理速度是 1,共 3 个进程,求如何算完成时间??
    感觉顺序不一样完成时间也会不一样,大致的范围能算吗?最好能用 python 实现
    11 条回复    2021-03-09 00:13:47 +08:00
    AX5N
        1
    AX5N  
       2021-03-07 23:09:07 +08:00
    直接乘以 3 不就得了,你不是只要大概范围吗,误差范围就不管了呗
    learningman
        2
    learningman  
       2021-03-07 23:18:12 +08:00 via Android   ❤️ 1
    别算了,上协程,反正不浪费 CPU 时间
    makdon
        3
    makdon  
       2021-03-08 00:29:57 +08:00
    抽象来说,就是你有 n 个数值,将其分成 m 组,设分组后每组和的最大值为 x,求 x 的最小值?
    woctordho
        4
    woctordho  
       2021-03-08 03:44:01 +08:00 via Android
    搞个负载均衡吧,比如用 Queue,然后估算时间只要除以 3 就行了
    xuegy
        5
    xuegy  
       2021-03-08 07:36:25 +08:00
    先排三个队列出来,从最大的可能性开始选,目标是总和达到平均值。比如第一个线程选 9+6,第二个选 8+7,第三个选剩下的,正好同时完成。
    siyemiaokube
        6
    siyemiaokube  
       2021-03-08 07:56:50 +08:00 via iPhone
    精准的完成时间是多机调度问题,精确解是 npc 问题,所以你还是随便估一下吧
    dingwen07
        7
    dingwen07  
       2021-03-08 08:41:33 +08:00 via iPhone
    如果是单核 CPU 那就简单了
    shuax
        8
    shuax  
       2021-03-08 09:30:20 +08:00
    from multiprocessing import Manager
    算的过程中上报进度
    ch2
        9
    ch2  
       2021-03-08 12:38:49 +08:00
    已用时间 t_current,已完成任务的百分比 percent,预计完成时间 t_current/percent*(1-percent)
    percent 由 n 个子进程汇报给父进程,父进程计算
    ipwx
        10
    ipwx  
       2021-03-08 13:15:51 +08:00
    看上去像是 XY problem 。把你的原始需求说一下

    https://xyproblem.info/
    space2020
        11
    space2020  
       2021-03-09 00:13:47 +08:00   ❤️ 1
    这是个 NP-完全问题,如果想要求精确解,目前只能暴力,或者用贪心算法求一个近似解。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:11 · PVG 17:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.