python – 多进程还是多线程? – 并行化数百万次迭代的简单计算并将结果存储在单个数据结构中
我有{string:list}条目的字典D,我计算了一个函数
另外, 我需要计算f(x,y)并将结果存储在m [x,y]中,用于字符串S集合中的所有2元组,包括s1 = s2时. 我存储在标记矩阵m中的结果都不相互依赖. 任何人都可以提供(a)如果我应该避免尝试并行化我的算法,以及(b)如果我可以进行并行化,如何做到这一点,最好是在cPython? 解决方法第一个选项 – 服务器进程创建服务器进程.它是Multiprocessing包的一部分,允许并行访问数据结构.这样,每个进程都将直接访问数据结构,锁定其他进程. 从the documentation开始:
第二种选择 – 工人池 创建Pool of workers,输入队列和结果队列. >作为生产者的主要进程将使用对(s1,s2)为输入队列提供信息. 第三种选择 – 分为独立问题 您的数据是独立的:f(D [si],D [sj])是一个隐蔽的问题,与任何f(D [sk],D [sl])无关.此外,每对的计算时间应该相当相等,或至少在相同的数量级. 将任务划分为n个输入集,其中n是您拥有的计算单元(核心,甚至计算机)的数量.将每个输入集分配给不同的进程,并加入输出. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【Python】python 中 的 memoize 和 memoized
- python – 根据网络重复边缘更新权重信息
- django – MongoEngine _types和_cls字段
- python – UnicodeDecodeError:’utf8’编解码器无法解码位
- java如何实现python的urllib.quote(str,safe=/)
- python – 恢复使用迭代器的Tensorflow模型
- python开发_常用的python模块及安装方法
- python芹菜max-tasks-per-child-setting默认值
- python – 多处理和垃圾回收
- python – tkinter中的标签宽度