Yapılması gereken işlerin işçiler arasında parçalanıp dağıtılabileceği çok basit vakalarım var. Neden aynı rasgele sayıÇok işlemcili farklı çalışanlarda aynı çıktı
Input : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0 7
1 7
2 7
5 7
3 7
4 7
6 7
7 7
8 6
9 6
Pool : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
baskılı oluyor:
import multiprocessing
import numpy as np
import time
def do_calculation(data):
rand=np.random.randint(10)
print data, rand
time.sleep(rand)
return data * 2
if __name__ == '__main__':
pool_size = multiprocessing.cpu_count() * 2
pool = multiprocessing.Pool(processes=pool_size)
inputs = list(range(10))
print 'Input :', inputs
pool_outputs = pool.map(do_calculation, inputs)
print 'Pool :', pool_outputs
yukarıdaki program şu çıktıyı üretir: Ben here den çok basit çoklu işlem örnek çalıştı? (Makinemde 4 cpus var). Bu devam etmenin en iyi/en basit yolu mu?
[Her işlem için farklı bir rasgele tohum kullanarak piton çoklu işlem] (olası çift http://stackoverflow.com/questions/9209078/using-python-multiprocessing-with-different- rasgele sayı-her işlem için) –
Rastgele sayıları kullanabilecek her işlem için rasgele sayı belirlemenin bir yolu yok mu? Biri modülü rastgele, numpy, scipy, tensorflow kullanır ve kim bilir başka ne bilir. Sürecin her birinden geçmek ve durumu el ile ayarlamak için farklı bir rastgele tohum olduğundan emin olmanın tek yolu var mı? –