Not daha fazla süreçler: Ben multiprocessing
2 gün önce arazi içine "forayed". Yani benim anlayışım çok basit.Multiprocessing: cpu.count
Yüklemeler için amazon s3
paketlerine yükleme yazıyorum. Dosya boyutu daha büyükse (100mb
), multiprocessing
modülünden pool
kullanarak paralel yüklemeler gerçekleştirdim. core i7
ile bir makine kullanıyorum, cpu_count
8
vardı. pool = Pool(process = 6)
yaparsam 6
çekirdek kullanırım ve dosya parçalara yüklenmeye başlar ve ilk 6 parçanın yüklemeleri eşzamanlı olarak başlar. process
, cpu_count
'dan daha büyük olduğunda ne olacağını görmek için 20 girdim (20 çekirdeği kullanmak istiyorum). Bir hata bloğu almak yerine benim için sürpriz, program aynı anda 20 parça yüklemeye başladı (bol miktarda parça olduğundan emin olmak için daha küçük bir chunk size
kullanmıştım). Bu davranışı anlamadım. Sadece 8
çekirdeğim var, o zaman ne kadar program 20 giriş kabul edemez? process=6
derken, aslında 6 iş parçacığı kullanıyor mu? Hangi 1000 iş parçacığı olabileceğinden, 20 geçerli bir girdi olarak tek açıklama olabilir. Lütfen biri bunu bana açıklayabilir mi.
Düzenleme: here kodu 'ödünç'
. Ben sadece biraz değişiklik yaptım ki, kullanıcıya parallel_processes
- 4
Konu, işlem ve çekirdekleri karıştırırsınız. Hepsi çok farklı "şeyler". 'process = 6' 'yı ayarlarsanız, sadece bir çekirdek üzerinde çalışabilecek 6 ** process ** kullanacaktır veya hepsi bir core üzerinde çalışabilir - işletim sistemine ve sistem yüküne bağlıdır. "Soru" ile ilgili olarak - lütfen bazı kodları sağlayın. –