私は単純な例で並列ループを実行しようとしています。
何が間違っていますか?並列ループの作成
from joblib import Parallel, delayed
import multiprocessing
def processInput(i):
return i * i
if __name__ == '__main__':
# what are your inputs, and what operation do you want to
# perform on each input. For example...
inputs = range(1000000)
num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=4)(delayed(processInput)(i) for i in inputs)
print(results)
コードの問題は、Python 3のWindows環境で実行されたとき、それは並列ジョブを実行するためのpythonのnum_cores
インスタンスを開くが、一方のみがアクティブであることです。これは、プロセッサの動作が14%ではなく100%(i7 - 8論理コアの下)でなければならないため、そうではありません。
追加のインスタンスが何もしないのはなぜですか?
エラーメッセージが表示されますか?それは私のためにうまくいく...。インデントは1つではなく4つのスペースにする必要があります。 –
私は同じ問題があります。問題は、コードがnコアではなく1つのコアでのみ実行されることです。 –