[Bu benim ilk yazım ve umarım SE kullanımını tamamen yanlış anlamamışımdır - eğer öyleyse önceden özür dilerim]
"Bgschaid" ile verilen bilgilere dayanarak sorunun cevaplanması çok zor. Düşük seviyeli rutinlerin çok çekirdekli bir mimariden faydalanmasını veya utanç verici paralel problemler veya aradaki bir şey için paralellikten faydalanmanız gerekiyorsa büyük bir fark yaratır. Python'daki farklı paralel hesaplama olasılıklarına genel bir bakış burada bulunabilir .
İlk durumda ben kesin gibi araçları kullanmak tavsiye NumPy / SciPy Enthought dan MKL derlenmiş sürümünde en azından çok çekirdekli mimarileri destekler. Burada, "MKL_NUM_THREADS" ortam değişkeni ile kullanılacak çekirdek sayısını kontrol edebilirsiniz. Bu, performansı akıllıca geçmeyi beklediğimiz yüksek derecede optimize edilmiş kütüphanelere dayanır. Genel olarak bu yüksek kaliteli ve yüksek düzeyde optimize edilmiş kütüphanelerin mümkün olduğunca kullanılması tavsiye edilir.
Paralellikten kaba bir düzeyde yararlanmak istiyorsanız, Python standart araç çoklu işleminin kullanımı kolaydır - ve aynı zamanda paylaşılan veri nesnelerini de destekler. Çok işlemcili paketin bir parçası olarak kullanılacak farklı araçlar vardır . Ben iyi sonuçlar ile çeşitli sorunlar için map_async (SIMD gibi) ve Apply_async (MIMD gibi) kullandık. Çok işlemli paketin kullanımı oldukça kolaydır ve Python'un standart bir parçası olması, kodunuzun diğer potansiyel kullanıcılarının kolayca kullanabilmesini beklediğiniz anlamına gelir. çoklu işlem doğrudan NumPy veri nesnelerine de bağlanır. Çoklu işlem kullanırkenOrtam değişkenini "MKL_NUM_THREADS" değerini 1 olarak ayarlamanızı tavsiye ederim, böylece NumPy her işlem / işçi için yalnızca bir çekirdeğe izin verilir - aksi takdirde performans düşüşüne yol açan NumPy paralel ve çoklu işlem arasında bir kaynak çekişmesine neden olabilirsiniz. çok işlem , aynı işletim sistemi altında çok işlemcili / çok çekirdekli bir mimaride işe yarar . 4 x Xeon E7-4850 CPU (her 10 çekirdekli) ve 512 GB belleğe sahip bir paylaşılan bellek bilgisayarında çoklu işlem kullandım ve son derece iyi çalıştı. Paylaşılan diziler çoklu işlemlerle işlenebilir . Dizi veya paylaşılan türler . Python belgelerini burada bulabilirsiniz -library.pdf dosyası. Bunun bazı temel bölümlerini açıklayan bazı slaytlar var - İsterseniz bana PM.
Dağıtılmış belleğe sahip bir küme yapılandırmanız varsa , mpi4py'nin muhtemelen tercih edilen araç olduğuna inanıyorum . Bunu kendim kullanmadım ama Python paralel programlamada çok kullanıldığını biliyorum.