[英]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.