【发布时间】:2021-01-23 05:37:42
【问题描述】:
我有一个大小为n 的向量v,我需要使用此代码将每个条目递增1:
for output_diff in results:
for i in n:
if (output_diff & (1 << i)):
v[i] += 1
结果的大小约为 10 000 000,n = 4096 的大小。如何在 python 中使用并行或多处理来做到这一点?我尝试使用 How to implement a reduce operation in python multiprocessing? 中的想法,但它比串行方式花费的时间更长。
【问题讨论】:
-
尝试改用
numpy -
情况并非如此。多个python进程可以同时执行。 “标准库中为受 CPU 限制的应用程序提供的主要替代方案是多处理模块,它适用于由相对较少数量的长时间运行的计算任务组成的工作负载,但如果单个操作的持续时间很短,则会导致过多的消息传递开销" - python-notes.curiousefficiency.org/en/latest/python3/…
-
@AzatIbrakov 你有什么例子吗?
标签: python