Paralel karmaşıklık sonuçlarını sürekli olarak birçok çekirdeğe nasıl ölçeklendirebiliriz?


20

Ben NC sınıfı tarafından verilen "paralel algoritma ile verimli bir şekilde çözüldü" karmaşıklık teorik görünümünü kabul sorunları vardı :

Kuzey Carolina zaman paralel bir algoritma ile çözülebilir sorunların sınıfıdır ile işlemciler .p ( n ) O ( n k ) c , k NO(logcn)p(n)O(nk)c,kN

Bir PRAM varsayabiliriz .

Benim sorunum, bunun "gerçek" makineler, yani sınırlı sayıda işlemciye sahip makineler hakkında pek bir şey söylemediği. Şimdi işlemcilerde bir işlemci algoritmasını "verimli bir şekilde" simüle edebileceğimiz "biliniyor" .p NO(nk)pN

"Verimli" burada ne anlama geliyor? Bu folklor mu yoksa simülasyonun neden olduğu ek yükü ölçen titiz bir teorem var mı?

Ne olur korkuyorum sıralı bir algoritması ve aynı zamanda işlemciler üzerinde simüle edildiğinde , aynı zamanda zaman alır bir "verimli" paralel algoritması olan bir sorun var eğer ardışık algoritma asemptotik olarak optimal ise, bu tanecikli analiz seviyesinde beklenebilecek her şeydir). Bu durumda, görebildiğimiz kadarıyla hızlanma olmaz; aslında, simüle edilmiş paralel algoritma sıralı algoritmadan daha yavaş olabilir . Yani gerçekten sınırlarından daha kesin ifadeler arıyorum (ya da bu tür sonuçların yokluğu beyanı).p O ( n, k )O(nk)pO(nk)O


Brent teoremi?
cic

Şunu mu demek istediniz: ? Eğer öyleyse, bu (afaik) sadece belirli durumlarda uygulanabilir ve aynı zamanda çalışma zamanlarını çevirmeye hemen izin vermez. Ya da öyleyse, lütfen bir cevapta detaylandırın. Tp<Wp+D
Raphael

NC, "Daha az çalışma süresi için daha fazla donanım takas etmek mümkün mü?" Kendinizi sabit donanımlarla sınırlamak isteyebilirsiniz ve bu, kendinizi sabit bellekle sınırlamaya benzer, bazı sorunların daha iyi bir modellemesi. Pratik bir kullanım için bkz. Taşıma kafası ekleyicileri, daha fazla donanım, böylece de bitlerinin eklenmesi yapılır . O ( N )NO(N)
AProgrammer

Yanıtlar:


13

İşlemci sayısının bir sabitle sınırlı olduğunu varsayarsanız, NC'de bir sorunun pratikte fazla bir şey ifade etmediği konusunda haklısınız. K işlemcili ve t paralel zamanlı bir PRAM üzerindeki herhangi bir algoritma O ( kt ) zamanında tek işlemcili bir RAM ile simüle edilebildiğinden , paralel zaman ve sıralı zaman sadece k sabitse sabit bir faktörle değişebilir .

Ancak, giriş boyutu büyüdükçe daha fazla işlemciye sahip bir bilgisayar hazırlayabileceğinizi varsayarsanız, NC'de bulunan bir sorun, daha fazla işlemci hazırlayabildiğiniz sürece, çalışma süresinin “çok kısa” veya daha kesin olacağı anlamına gelir. giriş boyutunda polilogaritmik. Bu varsayımın gerçekçi olmadığını düşünüyorsanız, bunu sınırsız bellek varsayımı ile karşılaştırın: gerçek bilgisayarlar sadece sınırlı miktarda alana sahiptir, ancak algoritmalar ve karmaşıklık çalışmasında, neredeyse her zaman bir hesaplama cihazının sabit bir üste sahip olmadığını varsayarız. uzaya bağlı. Pratikte, bu, giriş boyutu büyüdükçe daha fazla belleğe sahip bir bilgisayar hazırlayabileceğimiz anlamına gelir, bu da genellikle gerçek dünyada bilgisayarları kullanırız. NC, paralel hesaplamada benzer bir durumu modeller.


1
1) Evet, sürekli olarak birçok çekirdeğe paralelleme yalnızca sabit hızlanma sağlayabilir . -termlerde doğal ve ne yazık ki gizlidir . (İmho) ilginç soru şudur: (optimal) hız artışı veya sadece veya miyim? 2) Sonsuz bellek varsayımı çok fazla RAM'in kullanılabilirliği ile haklı görülebilirken (ve teknik olarak sabit diski ekleyebilirsiniz), bu genellikle işlemciler için doğru değildir. Günümüzde tipik (kişisel) makineler 16 veya daha az çekirdeğe sahiptir. Başka bir deyişle, ilgili sorun boyutlarına kadar "normal" sonuçları, sadece kadar birçok paralel sonucu kullanabilirsiniz . k k / 2 k - 1 n 20Okk/2k1n20
Raphael

4
@Raphael: Belirli bir sorunun NC'ye ait olup olmadığı sorusu sorunuzun modelini oluşturmaz. Sorunuzun ilgisiz olduğunu söylemiyorum; Sadece NC'nin bunu modellemek için doğru karmaşıklık sınıfı olmadığını söylüyorum.
Tsuyoshi Ito

Aslında bunu duyduğuma sevindim; bir kişi aksini iddia eder. Genel olarak NC ile değil, karmaşıklık teorik sonuçları ile. Diğer sınıflarla nasıl?
Raphael

Bir düzeltme: NC'de bir sorun, işlemci sayısı giriş boyutunda yeterince büyük bir polinomsa , çalışma süresinin polilogaritmik olduğu anlamına gelir . İşlemci sayısının gibi sabit bir polinom olduğu veya gibi daha yavaş sabit olmayan bir işlev olduğu tartışmasız daha gerçekçi senaryoda , NC üyeliği resmi olarak hiçbir şey anlamına gelmez. herşey. O(logn)O(n)O(logn)
JeffE

@JeffE: Bu bir düzeltme değil. Sadece titiz anlamını vermeden “daha ​​fazla işlemci hazırla” yazdım (çünkü bunu yapmanın noktayı gizleyeceğini düşündüm).
Tsuyoshi Ito

10

verimli paralel algoritmaları karakterize etmenin en iyi yolu olmadığını kabul ediyorum .NC

Gerçekten de, NC tanımı gereği, etkili bir şekilde paralelleştirilemeyen birçok problemi de içerir. Yaygın bir örnek paralel ikili aramadır. Sorun, paralel ikili aramanın için bile polilogaritmik zaman karmaşıklığına sahip olması nedeniyle ortaya çıkar . En kötü durumda en logaritmik zamanda gerektiren herhangi bir ardışık filtreleme yöntemi bağımsız olarak paralel fizibilite.N Cp=1NC

Ama bekleyin, dahası var.

NC algoritmaları, polilogaritmik zaman orta boyutlu problemleri çözmek için polinom sayıda işlemciye sahip paralel makineler olduğunu varsayar. Bununla birlikte, pratikte büyük sorunları çözmek için orta büyüklükteki makineleri (işlemciler açısından) kullanıyoruz . İşlemci sayısı alt polinom, hatta alt doğrusal olma eğilimindedir.

Son olarak, problemler vardır sublinear paralel defasında .Bu nedenle, bu sorunlar ait olmayan . Şimdi, alt doğrusal fonksiyonlar sadece pratik olmayan büyük değerleri için ilgili bir asimptotik davranışa sahip olabilir ve bunun yerine pratik değerleri için çok daha az ilerici olabilir . Örnek olarak, için . Sublinear paralel zaman algoritmaları izler olabilir daha hızlı koşmak algoritmaları.O ( n ϵ ) , 0 < ϵ < 1 N C n n PO(nϵ),0<ϵ<1NCnnn0,5×109NCn<lg3nn0.5×109NC

Yanıtlardan birinde, "Uygulamada, bu, giriş boyutu büyüdükçe daha fazla belleğe sahip bir bilgisayar hazırlayabildiğimiz, yani gerçek dünyadaki bilgisayarları bu şekilde kullandığımız anlamına gelir. NC, paralel hesaplama.

Bu bakış açısına kısmen katılıyorum. Eski bir süper bilgisayar hizmet dışı bırakıldığında da daha fazla belleğe sahip yeni bir paralel bilgisayar satın alıyoruz, çünkü DRAM yongaları zamanla daha ucuz ve paralel bilgisayarı ana bileşenleri (işlemciler, bellek, ara bağlantı vb.) Açısından dengelemek.

Bununla birlikte, bellek sınırlı bir kaynak olduğundan, bir sorunun daha büyük örneklerini çözmek için bir süper bilgisayara daha fazla bellek eklemeye gerek kalmadan, verimli bir şekilde kullanılması hakkında çok fazla araştırma yapılmıştır. Örneğin Sun ve Ni, bellekle sınırlı hızlanma kavramını önerdi ve Quinn, sabit bir verimlilik düzeyini korumak için işlemci başına bellek miktarının nasıl büyümesi gerektiğini ölçen ölçeklenebilirlik işlevini önerdi. Genel olarak, işlemci sayısı arttıkça paralel ek yük arttığından, çözülmekte olan sorunun boyutunu artırarak verimliliği sürdürürüz. Ancak maksimum sorun boyutu ana bellek miktarı ile sınırlıdır (n pp). Ölçeklenebilirlik işlevi, sabit bir verimlilik düzeyini korumak için işlemci başına bellek miktarının nasıl büyümesi gerektiğini belirlemek için boyutunda bir sorunu saklamak için gereken bellek miktarını gösteren eşdeğerlik işlevini ve başka bir işlevi kullanır . Bu işlev sabit olduğunda, paralel algoritma mükemmel şekilde ölçeklenebilir (bellek perspektifinin kullanımından). Bellek mevcut olsa da, sorun boyutunu artırarak aynı verimlilik seviyesini korumak mümkündür. Ancak, işlemci başına kullanılan bellek ile doğrusal olarak arttığından , bir noktada bu değer sistemin bellek kapasitesine ulaşacaktır. İşlemci sayısı bu noktanın üzerine çıktığında verimlilik sağlanamaz.np

Bu nedenle, bunlar büyük sorunlar için pratik olduğundan bellekte ölçeklenebilir paralel algoritmalar tasarlamak giderek daha önemlidir.

Paralel algoritmaların ölçeklendirilmesine ilişkin son bir not. Bu sadece ölçeklendirmek istediğimiz paralel algoritmanın uygun maliyetli olması durumunda mantıklıdır. Uygun maliyetli bir algoritmanın ölçeklendirilmesi hala hızlı (orijinalinden yavaşsa) bir algoritma üretir. Ancak olmayan bir maliyet uygun algoritma küçültme (bir küçültme dikkate yavaş iyi ardışık çalışma süresi daha paralel bir algoritmaya yol açabilir için sıralama algoritması işlemci sabit zaman işlemciler). Maliyet optimizasyonunun kaçırılma derecesi, bir algoritmanın faydalı olduğu problem aralığını ve makine boyutlarını etkiler ve Grama, Gupta, Karypis ve Kumar'ın ders kitabında iyi tanımlanmıştır. nn3n

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.