2010-09-29 3 views
25

Ben mesela 2 işlemcili bir havuz nesnesi varsa:"ChunkSize" parametresi

p=multiprocessing.Pool(2) 

ve dizin dosyaların bir listesini üzerinden yineleme ve harita işlevi kullanmak istiyorum

birisi bu fonksiyonun ChunkSize ne olduğunu açıklayabilir: 10'a kadar örneğin ChunkSize ayarlarsanız

p.map(func, iterable[, chunksize]) 

her 10 dosyaları tek fiyat bilgileri içeren işlenmelidir anlamına gelmez sor?

cevap

24

o neredeyse doğru konum görünüyor documentation for Pool.map baktığımızda: chunksize parametre iterable yaklaşık o boyutta parçalar halinde bölünmesi ve her parçası ayrı bir görev olarak gönderilirse neden olacaktır.

Örneğinizde, evet, map ilk 10'u (yaklaşık) alır, tek bir işlemci için bir görev olarak gönderir ... sonra sonraki 10 başka bir görev olarak gönderilir ve böyle devam eder. Bunun, işlemcilerin her 10 dosyada bir değişiklik yapacağı anlamına gelmediğini, işlemci # 1'in 1-10 ve 11-20 almasını ve işlemci # 2'nin 21-30 ve 31-40 almasını sağlaması oldukça olasıdır.