2012-04-15 19 views
5

par olarak ilan edilir. Par kullanmak için aynı ifadeyi birden çok kez kullanmak gibi hileler oynamak gerekir. amacı paralel a ve b yürütmek iseHaskell: Neden "par" şeklini tanımladı?</p> <pre><code>par :: a -> b -> b </code></pre> <p>Bildirimi, tek atılır o argüman:

, böyle tanımlanmamış neden (unevaluated) ifadelerin bir demet alarak ve aynı ifadeleri dönen

par :: (a, b) -> (a, b) 

?: - onlar ise Potansiyel olarak arka plan konuları üzerinde gerçekleştirilir.

ikinci model eski daha basittir görünüyor. Tasarım neden bu şekilde seçildi?

+2

içine tembel hesaplama dönüm, paralel yürürlükte değerlendirmek için potansiyel kârlı olarak tembel hesaplama eklenmesi için bir mekanizma olarak tasarlanmıştır. Pariteye ilettiğiniz parite henüz değerlendirilmemiş olabilir. Kim değerlendirir ve ne zaman? – augustss

cevap

8

eski, kolayca ikincisi oldukça hantal olacağını ikiden fazla hesaplamaları,

c1 `par` c2 `par` c3 `par` c4 `pseq` something c1 c2 c3 c4 

kıvılcım olabilir.

par bu şekilde dizayn edilmiştir neden gelince
evalTuple2 :: Strategy a -> Strategy b -> Strategy (a, b) 

, par 'yüksek düzeydir:

+0

İkincisi, 8 taneye kadar yüklenebilir ve bir liste sürümüne de sahip olabilir. – usr

+0

Dikkat, bu argüman bir tanesi atılır, yani örneğinizden sadece c4 hayatta kalır (daha fazla hile olmadan). – usr

+0

Nasıl yüklersiniz? 'sınıf bir yere' ve 8-tuples kadar örnekleri? Ugh. –

7

önerdiğiniz tupled sürüm türüyle, Control.Parallel.Strategies içinde parTuple2 olarak bulunabilir ', bir quicksort parallelize Real World Haskell tartışıyor bölüm 24 olarak: biz gerekli değil herşey için bizim koduna

Bu değişiklikler dikkat çekicidir söylemek.

  • kaç çekirdek kullanmaya.
  • Birbiriyle iletişim kurmak için hangi konular var.
  • nasıl kullanılabilir çekirdek arasında iş bölümü yapar için.
  • hangi veri parçacıkları arasında paylaşılır ve hangi özeldir.
  • Tüm katılımcıların ne zaman tamamlandığını belirleme. A Monad for Deterministic Parallelism, Marlow, Newton ve Peyton Jones yazma olarak

: Bu tembel değerlendirme ve gelecek arasındaki örtüşme istifade çünkü

par operatör çekici dil tasarımdır. , değeri sonra talep edilebilecek biz henüz değerlendirilmeyen ifadeler için bir temsilini olmalıdır tembel değerlendirme uygulamak ancak etmek; ve benzer şekilde bir gelecek, değerinin paralel olarak değerlendirildiği ve bekleyebildiğimiz bir hesaplamadır. Dolayısıyla, par Düşünmem gereken Sürüm daha zor bir gelecek

İlgili konular

 İlgili konular