[英]How I can parallelize a 'for' loop with an external variable?
我在将new_text
类型为unicode的那部分代码并行化时遇到困难:
for old, new in self.replacements:
line = pywikibot.replaceExcept(
line, old, new, self.excsInside, self.site)
if new_text != entry.text:
yield pywikibot.Page(self.site, entry.title)
使用joblib或process-pool看起来任务很容易,但是在循环外部使用了new_text
。 我不知道#pragama omp ordered
或#pragma omp atomic
的等效性,因为没有适用于Python的 OpenMP包装器...
如果并行运行,如何确定new_next的值在if
语句中?
由于它本质上是顺序的,因此您可以按行并行化:
for line in new_text
for old, new in self.replacements:
line = pywikibot.replaceExcept(
line, old, new, self.excsInside, self.site)
并并行化外部for
循环(映射每个替换,然后通过串联减少)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.