2010-03-09 18 views
5

Ben recenty nedeniyle benim niyet iletişim benim kötü yeteneği oldukça hızlı kapatıldı paralel programlama algoritmaları hakkında bir soru sordu:En kullanışlı paralel programlama algoritması?

Is MapReduce just a generalisation of another programming principle?: Ben de son zamanlarda özellikle başka bir soru, sormuştu

https://stackoverflow.com/questions/2407631/what-is-the-most-useful-parallel-programming-algorithm-closed

Diğer soru, özellikle haritanın azaltılması ve harita programlamanın paralel programlamanın diğer bir kavramının daha spesifik bir versiyonu olup olmadığına bakmasıydı. Bu soru (kullanışlı bir paralel programlama algoritması hakkında) paralel programlama için tüm algoritma serileri hakkında daha fazladır. Paralel programlamaya oldukça yeni olduğum için özür dilemelisiniz, belki MapReduce ya da daha genel bir harita harita formu olan bir şey mevcut olan "tek" paralel programlama yapısıdır, bu durumda cehaletimden dolayı özür dilerim.

+1

Bu isho subm –

+0

Katılıyorum @Gabriel, teşekkürler. "Topluluk wiki" kutusunu kontrol etmeyi unuttum. – Zubair

+0

"-j " –

cevap

1

Muhtemelen iki "ana" paralel programlama yapısı var.

Harita/Küçült bir değerdir. Yüksek, ultra jenerik seviyede, sadece paralel böl ve ele geçir. Tek tek bitleri paralel işleyicilere gönderin ve sonuçları geldiklerinde birleştirin.

Diğer ana paralel programlama yapısı, boru hattıdır ... çalışma parçaları, her biri paralel bir dişte çalıştırılabilen bir dizi aşamadan geçer.

Hemen hemen her paralelleştirme algoritmasının bu ikisinden birine doğru kayma olacağını düşünüyorum. Tabi ki, yanılmış olabilirim.

+0

"Ben sadece boru hattı algoritmasıyla aynı değil, iki boru kullanarak, hesaplamayı göndermek için bir tane ve bir cevap almak için" ? – Zubair

+0

@Zubair: Gerçekten de ... harita bir şeyi paralel olarak birden fazla 'boruya' gönderirken, bir boru hattı her şeyi aynı sıralı boru dizisine gönderir. Bu yüzden, harita/küçültme A -> (B, C, D, E) -> F (B, C, D, E, paralel olarak isteği al ve yanıtları doğrudan F'ye) gibi görünüyor, A-> B-> C-> D-> E-> F - her elemanın verilerini bir sonraki öğeye gönderir, böylece F'ye giden her şey zaten A'dan E'ye geçmiştir. IOW, bir boru hattında her adım önceki adımdan çıktı alır. – kyoryu

+0

Açıklama için teşekkürler. Bir boru hattındaki her şeyin seri bir şekilde işlenmesi gerekiyorsa o zaman paralellik nerede? – Zubair

İlgili konular