私は、プロセッサーインテル®Core™i7-7500U CPU @ 2.70GHz×4と16GBのRAMを搭載した64ビットUbuntu 17.04を使用しています。
このプログラムを実行すると、4つのコアすべてを使用する代わりに、1つのコアが使用されます。私は各機能10のいくつかの低電力を印刷する場合なぜPythonがマルチプロセッシングでいくつかの計算を事前に計算しようとしている
import time
import multiprocessing
def boom1(*args):
print(5**10000000000)
def boom2(*args):
print(5**10000000000)
def boom3(*args):
print(5**10000000000)
def boom4(*args):
print(5**10000000000)
if __name__=="__main__":
array = []
p1 = multiprocessing.Process(target=boom1, args=(array,))
p2 = multiprocessing.Process(target=boom2, args=(array,))
p3 = multiprocessing.Process(target=boom3, args=(array,))
p4 = multiprocessing.Process(target=boom4, args=(array,))
p1.start()
p2.start()
p3.start()
p4.start()
p1.join()
p2.join()
p3.join()
p4.join()
print('Done')
今:
print(5 ** 10000000)
今時間の小さな期間にわたって、単一のコア100%を処理して、その後、すべての4つのコアが100%を実行しています。 これはなぜそうですか? 100%稼働のすべてのコアで始めるべきではありません。
私が知りたかったのは、Pythonがそれ自体の前にいくつかの操作を実行し、それゆえに単一のコアからそれをやっていたことでした。それがそうであれば、Pythonの解釈ポイントは何ですか?または何かが欠けていますか?