2012-08-31 25 views
6

Şu anda Bilgisayar Bilimi lisansüstü çalışmaları için konuları araştırıyorum ve daha fazla bilgi almak istiyorum nispeten geniş bir ilgi alanı, Dağıtılmış Hesaplama, buldum. Benzer soruları ele alan StackOverflow üzerinde başka soruların bir avuç vardır [1, 2, 3], ama özellikle sormak istediğim, özellikle de aradığım dillerle ilgili olmayan sorular.Dağıtılmış Hesaplama/Paralel İşleme ile Nereden Başlanır? (Python/C)

Web'de arama yaptım ve Rutgers'den this dersi gibi Dağıtılmış Hesaplama'nın arkasındaki teori ve mekaniği tanımlayan birçok makale, makale ve hatta kurslar buldum. Ne yazık ki, bu kağıtların ve kurduğum kursların çoğu, Dağıtılmış Hesaplama'nın koddaki gerçek kavramlarını açıklamak konusunda oldukça sınırlıdır. Distributed Computing'ın programlama bölümlerine bir giriş yapabilecek web siteleri arıyorum. (Tercihen C veya Python'da.)

Bir yan not olarak, bunun, Paralel Hesaplamanın Dağıtılmış Hesaplama alanına nasıl uyduğuna dair daha ayrıntılı olabileceğini belirtmek isterim. (Henüz bir rota almadım!)

+0

FYI Python ve C/C++ tuşlarını kullanabilirsiniz! Yüksek seviyeli yönetim için python ve Cython tarafından hız için sarılmış veya üretilmiş C/C++ kullanabilirsiniz. Bu şekilde, her iki dünyayı da elde edersiniz! – Onlyjus

+0

Bu, SO için uygun değildir. –

+0

IEEE spektrumunda mükemmel bir makale var: [Multicore With Trouble] (http://spectrum.ieee.org/computing/software/the-trouble-with-multicore/). Özellikle [PI hesaplamasının nasıl paralelleştirileceği] örneğinde anlatılan örnek (http://spectrum.ieee.org/image/1627665) Onları paralel hale getirebilmek için problemler hakkında düşünmeye çok yardımcı oldum. –

cevap

1

Tek bir makinede python için yerleşik paketler kullanarak iyi deneyimlerim oldu. Arkadaşım 128 çekirdekli bir makinede ipython kullanarak büyük bir başarı elde etti.

Artık kümeler, bulutlar veya internet üzerindeki herhangi bir makinede katlama @ home (PS3'ler dahil!) Gibi çeşitli dağıtılmış bilgi işlem türleri vardır. GPU'ları da unutmayın!

Bazı Python Bağlantılar:
Various Python libraries
Ipython
Python and Parallel Computing presentation

+0

Sunum, aradığım ilgili birçok bilgiyi görüntüler. Benzer başka bir malzemeyi bile bilmezsiniz, ama IPython ile ilgisi yok mu? –

+0

@AlexWilliams, Kafamın üstünden bir şey bilmiyorum. – Onlyjus

3

Disclamer: Ben kepçe bir geliştiricisi duyuyorum.

Bu gerçekten kişiliğinize bağlıdır. Hareket etmeden önce teorik bilgi almayı tercih ederseniz, önce bazı kitapları okumalısınız ya da önce teknolojilerle geçinmelisiniz. Konunun bir kısmını kaplayan kitapların listesi şöyle olacaktır: Thomas Rauber ve Gudula Runger (Springer-Verlag) tarafından çok çekirdekli ve küme sistemleri için

  • Paralel Programlama.
  • Calvin Lin ve Lawrence Snyder (Addison-Wesley) Timothy G. Mattson ve diğerleri tarafından paralel programlama için
  • Patterns Paralel programlama arasında
  • ilkeleri. (Tek bilgisayar için) (Addison-Wesley) (çoklu bilgisayarlar için) Eğer MPI standart olacağını tanıma isteyebilirsiniz

Veri tabanlı teknolojiler ve OpenMP yanı sıra oldukça iyi çoklu işlem modülü Python'da yerleşik olan

Önce ellerini kirletmeyi tercih ederseniz, basit ve kullanıcı dostu bir kullanım sağlayan görev tabanlı çerçevelerle başlamanız gerekir. Bunların ikisi de SCOOP oluşturulurken en üst düzeyde odaklanmışlardır. pip -U scoop ile deneyebilirsiniz. Windows'ta, PyZMQ'yi ilk olarak executable installers kullanarak yüklemek isteyebilirsiniz. Sunulan örnekleri kontrol edebilir ve performansın bozulmasına neden olan ya da kolaylıkla artacağınızı anlamak için çeşitli parametrelerle oynayabilirsiniz.Benzer çalışma için Celery veya bir coroutine çerçevesi için Gevent gibi alternatifleriyle karşılaştırmanızı tavsiye ederim. Eğer macera dolu hissediyorsanız, Python'un builtin coroutines functionnalities testini yapmak ve çeşitli ağ yığınlarıyla birleştirmek için utangaç olmayın.

Görev tabanlı bir çerçeve kullanmak, yük dengeleme uygulama ayrıntıları, serileştirme vb. Gibi önemsiz olmayan ve hata ayıklamak ve çalışmak için uzun zaman alabilir gibi teorik analiz yükünü hafifletecektir. Dağıtılmış sistemlerin tüm istenilen seviyede anlaşılmasını sağlar. Açık kaynaklı yazılım ile bonus: Kapağın altındaki mekanik detayları anlamak için kodu kontrol edin.

+0

Çok yardımcı. Bu metinleri kesinlikle kontrol edeceğim! –

İlgili konular