Paralelleştirme ile ilgili giriş notları, özellikle problem modelleri ve algoritmalar


10

Bilgisayar bilimindeki temel sınıfların paralel analogu gibi, paralel programlamaya iyi bir giriş sağlayan çevrimiçi kullanılabilir Ders notları veya diğer kaynakları arıyorum.

Odak noktam şu: böl ve fethet, açgözlü algoritmalar, dinamik programlama ve benzerleri, yani sıralı algoritmaların (ve problemlerin) temel kalıpları hakkında konuşabiliyorum ve yaklaşımları paralel algoritmalarda sınıflandırmak için uygun bir dile sahip değilim.

Örneğin, aşağıdaki sorunların her birine bariz paralel yaklaşımların farklı nitel davranışlara sahip olduğunu ifade etmek için uygun terimleri edinmek istiyorum:

  1. sıfırdan oluşan bir tamsayı dizisi ayarlama (mükemmel ölçeklendirir.)
  2. bir tamsayı dizisi toplamak (ne kadar çok iş parçacığı kullanırsanız o kadar fazla yük olur.)
  3. Bir dizi verildiğinde, her bir girişin ürünlerini birbiriyle girişle listeleyin (kurallı çift döngü için paralel hale getirirsek, çalışma süresi sayı işlemcilerinin karesine ölçeklenir.)

Paylaşılan bir bellek ortamı yeterli ve süreçler arası iletişim benim için o kadar da önemli değil (aslında, bundan kaçınan algoritmalarla ilgileniyorum). Ayrıca, teknik yönler benim için müzakere edilemez.


Bu cümleyi yeniden formüle edebilir misiniz: "Örneğin, aşağıdaki sorunlara açık paralel yaklaşımın neden farklı nitel davranışları olduğu bir dile sahip olmak isterim"
Gopi

Bitti. Umarım bu daha doğrudur.
shuhalo

Yanıtlar:


6

Paralel programlama için bir tanıtım kitabı için (çevrimiçi materyal hakkında bilmiyorum), bunu teorik paralel algoritmik olarak başlamak için çok yararlı olan Casanova, Legrand ve Robert'ın Paralel Algoritmaları ile öğreniyorum .

Ayrıca, SPAA'11'de paralel bir algoritma ve dağıtılmış hesaplama öğrencisinin neyi bilmesi ve neyi öğretmesi gerektiği hakkında bir tartışma vardı. Paralel ve Dağıtık Hesaplama hakkındaki bu Müfredat Girişimi, bir ders bulmanıza değil, bir lisans dersinde ele alınması gereken farklı konuların listesini bulmanıza yardımcı olacaktır. O zaman her konuyla ilgili belge bulmanın daha kolay olduğunu düşünüyorum.


1
"Dil" terimi, programlama dili veya benzeri değil, doğal dili ifade eder. Tıpkı matematik bir dildir ve örneğin kategori teorisi veya grup teorisinin belirli yapılar, ilişkiler ve gerçekler için bir “dil” sağladığı söylenir. Yinede teşekkürler.
shuhalo

gerçekten, benim kötü :). O zaman sahip olduğunuz üç soru için, çok teorik olan bağladığım kitabı gerçekten tavsiye ediyorum. Farklı türde paralel mimariler üzerinde her türlü paralel algoritma ve tekniği incelerler. O zaman üç sorunuzu cevaplayabilecek kısım Tekdüzen Döngüler bölümü olacaktır .
Gopi


NSF / IEEE-TCPP Müfredat Girişimi için +1, ancak burada gerçekten alakalı olmadıkları için OpenMP ve MPI'yi kaldırmanızı öneririm.
Jukka Suomela

Gerçekten de @Martin'in yorumundan sonra kaldırmayı unuttum. Teşekkürler.
Gopi

7

Kanlı ayrıntılara girmek istemiyorsanız, Mattson, Sanders ve Massingill'in Paralel Programlama Desenleri kitabı tarafından paralelleştirme tasarım desenlerine çok iyi bir giriş sağlanır.

Paralellemeye genel, yaygın olarak uygulanabilir çözümler ve hatta hem OpenMP hem de MPI için kısa bir giriş bulacaksınız. Kitap, tasarım desenleri ve eşzamanlılık sunarak başlar. Daha sonra, yazarlar eşzamanlılıktan nasıl yararlanacağını, algoritmayı nasıl yapılandıracağını ve senkronizasyonu ve iletişimi dikkate alarak algoritmanın gerçekte nasıl uygulanacağını göstermeye devam ederler.

Yine, bu paralel algoritmalar üzerine bir ders kitabı değildir. Hem pratik hem de teorik odaklanma ile kesinlikle paralel yazılım mühendisliği ile ilgili materyalleri sunmak çok iyi bir iş çıkarıyor. Bu nedenle, ihtiyaçlarınıza mükemmel şekilde uymalıdır.


1

MPI_RUBY ... en son kararlı yapımı bulmam gerekiyor. Listeye paralel önek (tarama) eklemenizi öneririm. Ben sadece paralel önek öğretmek ve onlara nasıl tüm çiftleri sorunu daha iyi önbellek verimliliği elde etmek için bir boşluk doldurma eğrisi kullanmak gösterilmiştir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.