Açıklayamadığım tuhaf bir soruna rastlıyorum. Yardımcı olabileceğim birisinin yardım edebileceğini umuyorum!Python'da scipy breakks çoklu işlem desteğini içe aktarma
Python 2.7.3 ve Scipy v0.14.0 çalıştırıyorum ve multiprocessing
modülünü kullanarak kodumu hızlandırmak için çok basit çok işlemcili algoritmaları uygulamaya çalışıyorum. Ben basit bir örnek çalışması için idare ettik: Bu iyi çalışır
import multiprocessing
import numpy as np
import time
# import scipy.special
def compute_something(t):
a = 0.
for i in range(100000):
a = np.sqrt(t)
return a
if __name__ == '__main__':
pool_size = multiprocessing.cpu_count()
print "Pool size:", pool_size
pool = multiprocessing.Pool(processes=pool_size)
inputs = range(10)
tic = time.time()
builtin_outputs = map(compute_something, inputs)
print 'Built-in:', time.time() - tic
tic = time.time()
pool_outputs = pool.map(compute_something, inputs)
print 'Pool :', time.time() - tic
,
Pool size: 8
Built-in: 1.56904006004
Pool : 0.447728157043
dönen Ama çizgiyi import scipy.special
yorumsuz, ben alıyorum:
Pool size: 8
Built-in: 1.58968091011
Pool : 1.59387993813
ve ben Sistemimde sadece bir çekirdeğin işi yaptığını görebilir. Aslında, scipy paketinden herhangi bir modülün içe aktarılması bu etkiye sahip gibi görünüyor (birkaç tane denedim).
Herhangi bir fikrin var mı? Daha önce hiç görülmemiş bir ithalatın böyle garip ve beklenmedik bir etkiye sahip olabileceği, daha önce hiç böyle bir durum görmedim.
Teşekkürler! için @larsmans için (2)
sayesinde
Pool size: 8
Built-in: 1.66807389259
Pool : 0.596321105957
güncelle:
Güncelleme (1)
sorunu kısmen iyileþtirir compute_something
için scipy alma hattı Hareketli farklı bir sistem üzerinde test. Scipy v.0.12.0 kullanılarak sorun onaylanmadı. Bu sorguyu scipy posta listesine taşımak ve herhangi bir cevap gönderecektir.
Python 2.7.5, SciPy 0.12.0 ile çoğaltılamaz. Hangi sürümü kullanıyorsunuz? –
İlginç, denediğiniz için teşekkürler! 0.14.0b1 kullanıyorum. Daha yeni modüllerden bazılarına ihtiyacım var, bu yüzden daha yeni bir sürümü kullanıyorum. – Gabriel
Sabit sürümü de denemenizi öneririm - ve eğer bu sorunu çözerse, SciPy posta listesine başvurmayı deneyin. Kitaplığın beta sürümünün hata ayıklaması gerçekten çok fazla bir şey değil. –