60GB SciPy Dizim (Matrix) var 5+ multiprocessing Processnesne arasında paylaşmam gerekiyor . Numpy-sharedmem gördüm ve bu tartışmayı SciPy listesinde okudum . İki yaklaşım var gibi görünüyor - numpy-sharedmemve a kullanmak multiprocessing.RawArray()ve NumPy s’yi dtypes’ye eşlemek ctype. Şimdi, numpy-sharedmemgidilecek yol gibi görünüyor, ancak henüz iyi bir referans örneği görmedim. Dizi (aslında bir matris) salt okunur olacağı için herhangi bir kilide ihtiyacım yok. Şimdi, boyutu nedeniyle bir kopyasından kaçınmak istiyorum. Bu gibi sesler doğru yöntem oluşturmaktır sadece a kadar dizinin kopyasharedmem array, and then pass it to the Process objects? A couple of specific questions:
Sharedmem tanıtıcılarını altlara aktarmanın en iyi yolu nedir
Process()? Sadece bir diziyi dolaştırmak için kuyruğa ihtiyacım var mı? Bir boru daha mı iyi olur? BunuProcess()alt sınıfın başlangıcına bir argüman olarak iletebilir miyim (burada turşu olduğunu varsayıyorum)?Yukarıda bağlantılandırdığım tartışmada
numpy-sharedmem64bit güvenli olmadığından bahsediliyor mu? Kesinlikle 32 bit adreslenebilir olmayan bazı yapılar kullanıyorum.RawArray()Yaklaşımda değiş tokuş var mı? Daha yavaş mı, böcek mi?Numpy-sharedmem yöntemi için herhangi bir ctype-dtype eşlemesine ihtiyacım var mı?
Bunu yapan bir Açık Kaynak kod örneği olan var mı? Ben çok pratik öğrenmiş biriyim ve bakılacak iyi bir örnek olmadan bunu çalıştırmak zor.
Bunu başkalarına açıklığa kavuşturmak için sağlayabileceğim ek bilgiler varsa, lütfen yorum yapın, ben de ekleyeceğim. Teşekkürler!
Bunun Ubuntu Linux ve Belki Mac OS üzerinde çalışması gerekiyor , ancak taşınabilirlik çok büyük bir sorun değil.
multiprocessingher işlem için her şeyin bir kopyasını almayı bekleyin.