Bir 16 çekirdekli makinem ve utandırıcı bir paralel programım olduğunu varsayalım. Çok sayıda nokta noktalı ürün kullanıyorum ve numpy dizileri ekledim ve çok işlem yapmazsam no-brainer olurdu: Numpy'nin multithreading kullanan blas sürümüne göre oluşturulduğundan emin olun. Ancak, çok işlemciyi kullanıyorum ve tüm çekirdekler her zaman çok çalışıyor. Bu durumda, multithreading blas kullanmanın yararı var mı?Python'da çoklu işlem ile birlikte çok iş parçacıklı bir blas uygulamasını kullanmaya değer mi?
operasyonların çoğu (blas) Zaten çoklu işlem kullanıyorsanız bazı tip 2.
Belki yanlış anlama ediyorum şeyler ama bir işlemci çekirdeği verimli çoklu konuları kullanabilirsiniz izlenim oldu. Böylece tek çekirdekli bir makinede bir hızlanma elde edebilirsiniz. –
Çok işlemcili/iş parçacığı (henüz!) Konusunda uzman değilim, ancak tek bir işlemci maksimum yükte ise, daha fazla iş parçacığı eklemek yalnızca bunlar arasında değişimin daha fazla yüklenmesine neden olacaktır. Çalışırken diğer iş parçacıklarını işlemeye yardımcı olacak özel bir mimari olmadığı sürece (diyelim, başka bir çekirdek?) Performans artışı oluşmaz. Çekirdeklerin tümü maksimum yük altındaysa ve aynı işi küçük parçalara ayırırsanız, bunların tümü hala maksimum yükte olacaktır. Tek bir çekirdek makineye iplik eklemek, çekirdek bir şeylerin gerçekleşmesi için beklerken faydalıdır. – TorelTwiddler