Paralel hesaplama vs dağıtılmış


61

İnsanların paralel hesaplamalardan ve dağıtılmış bilgisayarlardan bahsettiğini sık sık duyuyorum , ancak bu ikisi arasında net bir sınır olmadığı izlenimini edindim ve insanlar çok farklı olduğuna inanırken, bunu oldukça kolay karıştırıyorlar:

  • Paralel hesaplama, çoklu iş parçacığına veya tek bir CPU'dan nasıl tam olarak yararlanılacağına daha sıkı bir şekilde bağlıdır.
  • Dağıtılmış hesaplama, farklı makinelerde alt işleri yürüten ve ardından sonuçları birleştiren bölme ve fethetme kavramını ifade eder.

Bununla birlikte, Büyük Veri çağına adım attığımız için fark gerçekten de eriyor ve günümüzde çoğu sistem paralel ve dağıtılmış hesaplamanın bir kombinasyonunu kullanıyor.

Günlük işimde kullandığım bir örnek, farklı makinelerde görevlerini yerine getiren ve aynı zamanda bazı paralel hesaplamalarla her makineden tam olarak yararlanan, çalışanların açık bir şekilde dağıtıldığı bir sistem olan Harita / Azaltma paradigması ile Hadoop'tur.

Bugünün dünyasında tam olarak nasıl bir ayrım yapılacağını anlamak için bazı tavsiyeler almak istiyorum ve eğer hala paralel hesaplama hakkında konuşabilirsek veya artık açık bir ayrım olmadığını söyleyebilirim. Bana göre dağıtılmış hesaplamanın geçmiş yıllarda çok fazla büyüdüğü görülüyor. Paralel hesaplamanın durgun olduğu görülüyor. Muhtemelen neden hesaplamaları dağıtmak konusunda paralelleştirmekten çok daha fazla konuşacağımı açıklayabiliyorum.


5
Paralel hesaplama, mutlaka tek bir CPU anlamına gelmez: birden fazla fiziksel CPU'ya sahip sistemler vardır.
svick

2
Ayrıca, dağıtılmış hesaplama, kendi başına bölmek ve ele geçirmekle sınırlı değildir . Eşzamanlılık ve paralellik karıştıran insanlarla daha fazla sorun yaşıyorum.
Raphael

1
Açık bir şekilde dağıtılmış bilgi işlem ile uğraşıyorsanız, daha derin arıza durumlarını ele almanız gerekecektir. Pek çok şey sadece coğrafi sebeplerden dolayı dağıtılmaktadır. Bazı dağıtık sistemler paralel olarak çok az devam ediyor, çünkü ağdaki merkezi bir düğüm bir tıkanıklık.
Rob,

Yanıtlar:


57

Bu kısmen bir terminoloji meselesidir ve bu nedenle, yalnızca sizin ve konuştuğunuz kişinin bunu önceden netleştirmesini gerektirir. Ancak, paralellik , eşzamanlılık veya dağıtık sistemler ile daha güçlü bir şekilde ilişkili olan farklı konular vardır .

Paralellik genellikle belirli bir hesaplamanın olabildiğince hızlı bir şekilde yapılması ve çoklu işlemcilerden yararlanılması ile ilgilidir. İşlemcilerin ölçeği, tek bir işlemcideki çoklu aritmetik birimlerden, belleği paylaşan birden fazla işlemciye, birçok bilgisayardaki hesaplamayı dağıtmaya kadar değişebilir. Hesaplama modelleri tarafında, paralellik genellikle son bir sonucu hesaplamak için dahili olarak eşzamanlı olarak birden fazla hesaplama iş parçacığı kullanmakla ilgilidir. Paralelcilik bazen tek bir ana saati paylaşan birçok işlemci içeren gerçek zamanlı reaktif sistemler için de kullanılır ; bu tür sistemler tamamen belirleyicidir .

Eşzamanlılık , birden fazla hesaplama iş parçacığı ile hesaplamaları çalışmadır. Eşzamanlılık, donanımın mimarisinden ziyade yazılımın mimarisinden gelme eğilimindedir. Yazılım, donanımsal paralellikten yararlanmak için eşzamanlılığı kullanmak üzere yazılabilir, ancak çoğu zaman yazılımın davranışında, farklı asenkron olaylara (örneğin, bir kullanıcı arayüzü başlığından bağımsız olarak çalışan bir hesaplama dizesi veya reaksiyona giren bir program dizisi) tepki verme ihtiyacı doğar. bir kesme işleyicisi iş parçacığına geçerek donanım kesintileri.

Dağıtılmış hesaplama çalışmaları, iletişim bağlantılarına bağlı işlemcileri ayırır. Paralel işleme modelleri sıklıkla (ancak her zaman değil) paylaşılan hafızayı kabul ederken, dağıtılmış sistemler temel olarak mesaj aktarma işlemine dayanır. Dağıtılmış sistemler doğal olarak eşzamanlıdır. Eşzamanlılık gibi, dağıtım da genellikle çözümün bir parçası değil, hedefin bir parçasıdır: kaynaklar coğrafi olarak farklı yerlerde ise, sistem kendiliğinden dağıtılır. Kısmi arızaların (işlemci düğümlerinin veya iletişim bağlantılarının) mümkün olduğu sistemler bu etki alanına girer.


2
İyi cevap. Kişi, dağıtılmış hesaplamanın paralel hesaplamanın bir alt kümesi olduğunu vurgulamalıdır.
Raphael

6
@Raphael: Bunun iki alanın odağını tam olarak temsil ettiğini sanmıyorum. Aslında, bunlar tamamen ayrı alanlar olarak kabul edilir, çünkü tamamen farklı konularla ilgilenirler. MPI kullanarak paralel bir bilgisayar programlarken, bu tür bilgisayarlarda ortaya çıkma ihtimalleri daha düşük olduğu için, kişi kısmi arızalarla gerçekten ilgilenmez. Öte yandan, dağıtılmış hesaplama, kısmi arızalar gibi dağıtım meseleleriyle daha fazla ilgilidir ve her bir CPU döngüsünün mevcut makineleri kapatmasıyla ilgili daha az endişe duymaktadır.
Dave Clarke

4
@Raphael Aksine, dağıtılmış hesaplama, paralel hesaplamaya göre çok bağımsızdır. Dağıtık sistemler çalışmasında, paralel hesaplama genellikle sıkıcı durumdur (ilginç yerel kaynaklar yoktur, arızalar yoktur).
Gilles 'SO- kötülük olmayı bırak'

Kelimelerin tam anlamıyla kelimeleri kullanıyordum; şartlar uygunsa ve bu nedenle ayrıldıysa çok kötü.
Raphael

Cevabınız için teşekkürler @Gilles, dağıtılmış hesaplamaya karşı biraz taraflı olduğum anlaşılıyor, uygun şartlarda bir şeylere başvuran birisini gördüğüme sevindim!
Charles Menguy,

17

@Raphael tarafından işaret edildiği gibi, Distributed Computing, Parallel Computing'in bir alt kümesidir; sırayla, Paralel Hesaplama, Eşzamanlı Hesaplamanın bir alt kümesidir.

Eşzamanlılık paylaşımı ifade ederkaynakların aynı zaman dilimi içinde. Örneğin, birkaç işlem aynı CPU (veya CPU çekirdeğini) paylaşır veya belleği veya bir I / O cihazını paylaşır. İşletim sistemleri paylaşılan kaynakları yönetir. Çok işlemcili makineler ve dağıtılmış sistemler, eşzamanlılık kontrolünün önemli bir rol oynadığı mimarilerdir. Eşzamanlılık hem donanım hem de yazılım düzeyinde gerçekleşir. Birden fazla cihaz aynı anda çalışır, işlemciler dahili paralelliğe sahiptir ve aynı anda birkaç komut üzerinde çalışırlar, sistemler birden fazla işlemciye sahiptir ve sistemler ağ iletişimi yoluyla etkileşime girer. Eşzamanlılık, sinyal işleme, G / Ç çakışması ve işlemede, iletişimde ve işlemlerin arasında veya aynı işlemdeki iş parçacıkları arasında kaynakların paylaşımında uygulama düzeyinde ortaya çıkar.

Aynı sistem üzerinde çalışan iki işlem (ya da iş parçacığı), böylece yürütmeleri zaman içinde iç içe geçmiş olur: işlem (iş parçacığı) CPU kaynağını paylaşır. Aşağıdaki tanımı seviyorum: aynı sistemde yürütülen iki işlem (iş parçacığı), eğer ilk işlem (iş parçacığı) henüz işlemini sonlandırmadığında yalnızca ikinci işlem (iş parçacığı) yürütmeye başlarsa eşzamanlı olur.

İşlemler (veya iş parçacığı) farklı CPU'larda (veya aynı CPU'nun çekirdeğinde ) yürütüldüğünde eşzamanlılık paralelliğe dönüşür . Bu durumda paralellik “sanal” değil “gerçek” dir.

Bu CPU'lar aynı makineye ait olduğunda, hesaplamaya "paralel"; CPU'lar farklı makinelere ait olduklarında , coğrafi olarak yayılabiliyorsa, hesaplamayı "dağıtılmış" olarak adlandırıyoruz.

Bu nedenle, Dağıtılmış Hesaplama, Eşzamanlı Hesaplamanın bir alt kümesi olan Paralel Hesaplamanın bir alt kümesidir.

Tabii ki, genel olarak, paralel ve dağıtılmış hesaplamanın farklı olduğu kabul edilir. Paralel hesaplama, sıkı bağlantılı uygulamalarla ilgilidir ve aşağıdaki hedeflerden birini gerçekleştirmek için kullanılır:

  1. Bilgi işlem-yoğun problemleri daha hızlı çözün;
  2. Aynı sürede daha büyük problemleri çözün;
  3. Aynı büyüklükteki problemleri aynı sürede daha yüksek hassasiyetle çözün.

Tx5xTxxama çok daha karmaşık bir model, daha fazla denklem, değişken ve kısıtlama kullanarak daha yüksek doğrulukla). Paralel hesaplama paylaşılan hafızayı, mesaj iletmeyi veya her ikisini kullanabilir (örneğin, OpenMP kullanan paylaşılan hafıza içi düğüm, MPI kullanan mesaj geçişi arası düğüm); GPU hızlandırıcılarını da kullanabilir. Uygulama bir paralel süper bilgisayarda çalıştığından, genellikle arızalar, ağ bölümleri vb. Sorunları dikkate almayız, çünkü bu olayların olasılığı pratik amaçlar için sıfıra yakındır. Bununla birlikte, birkaç ay boyunca çalışabilen iklim değişikliği simülasyonları gibi büyük paralel uygulamalar genellikle başarısızlıklarla ilgilidir ve bir problem ortaya çıkarsa simülasyonu tekrar başlatmaktan kaçınmak için kontrol noktası / yeniden başlatma mekanizması kullanın.

Dağıtılmış hesaplama, amaç ( dağıtılmış süper hesaplama için ) aksi takdirde çok büyük olan veya çözülmesi farklı mimarilerdeki uygulamadan faydalanabilecek farklı bileşenlere bölünmesi gereken sorunları çözmek olduğu gevşek bağlantılı uygulamalarla ilgilidir . İstemci-sunucu, eşler arası vb. Dahil olmak üzere birkaç model vardır. Güvenlik, arızalar, ağ bölümleri vb. Gibi dağıtılmış hesaplamalarda ortaya çıkan sorunlar, tasarım sırasında dikkate alınmalıdır, çünkü bu bağlamda hatalar kurallar ve istisna değil.

Son olarak, Grid ve Cloud hesaplamanın her ikisi de dağıtılmış hesaplamanın alt kümesidir. Şebeke bilgi işlem paradigması, büyük ölçekli kaynak paylaşımına ve yenilikçi yüksek performanslı uygulamalara odaklanmasından dolayı geleneksel dağınık bilgisayarlardan farklı bir alan olarak ortaya çıkmıştır. Paylaşılan kaynaklar, genellikle birden çok, farklı idari alanlara ( Sanal Kuruluşlar ) aittir . Grid Computing, son on yılda bilim adamları tarafından yoğun olarak kullanılmasına rağmen, sıradan kullanıcılar için geleneksel olarak zordur. Cloud computing, sıradan kullanıcıların, Sanal Veri Makineleri kullanılarak aynı veri merkezinde bulunan ve coğrafi olarak dağıtılmayan birden fazla makineden kolayca yararlanmalarını sağlayarak açığı kapatmaya çalışıyorBu, uygulamaları çalıştırmak için kullanıcılar tarafından birleştirilebilir. Donanım, özellikle yüksek performanslı bir ağ bağlantısının (Infiniband vb.) Olağan olmaması nedeniyle, bulutlar paralel MPI uygulamaları çalıştırmak için hedeflenmemiştir. Bulutlarda çalışan dağıtılmış uygulamalar genellikle Harita / Küçültme paradigmasından yararlanmak için uygulanır. Bu arada, birçok insan Harita / azaltmayı paralel bir veri akışı modeli olarak düşünüyor.


2
Bence bu cevap biraz yanıltıcıdır; dağıtılmış yüksek bilgisayarlı hesaplamaya odaklanır (bu, paralel olarak yüksek performanslı bilgisayarla yakından ilişkilidir), tüm dağıtılmış bilgisayar alanında ise daha geniş kapsamlıdır.
Jukka Suomela

Kabul etmiyorum: Cevap ayrıca dağıtılmış yüksek performanslı hesaplamayı da içeriyor , bunun yerine genellikle dağıtılmış hesaplamanın dışında kalıyor. Nitekim, dağıtık bilişimin dünyası olan istemci-sunucu ve eşler arası modeller, güvenlik, arızalar ve ağ bölümleme problemlerini tartıştım.
Massimo Cafaro

+1. Güzel cevap! Paralel hesaplama dışındaki amaçlarla dağıtılmış hesaplamanın kullanılıp kullanılmadığını merak ediyorum. Başka bir deyişle, bir hesaplamaya paralel hesaplamanın bir alt kümesi dağıtılır, yani dağıtık hesaplamalar paralel hesaplamaya mı ait? Btw, işte sorum şu
Tim

1
@Tim, paralel hesaplamadan bağımsız olarak dağıtılmış hesaplama da kullanılır. Örneğin, lider seçimi, fikir birliği vb. Gibi klasik dağıtılmış algoritmalar hakkında düşünün
Massimo Cafaro

7

Soruyu anladığımdan emin değilim. Paralel ve dağıtılmış işlem arasındaki fark hala var. Her ikisinden de aynı hesaplamada yararlanabilmeniz, kavramların ne anlama geldiğini değiştirmez.

Ve hangi haberleri takip ettiğinizi bilmiyorum, ancak paralel işlemenin durgun olmadığından eminim, özellikle de çok daha faydalı olduğunu düşünüyorum.

Terabaytlarca veriyi işlemeniz gerekirse, dağıtılmış hesaplama (muhtemelen paralel hesaplama ile birlikte kullanılabilir). Ancak bir masaüstünde veya akıllı telefonda bir şey hesaplamanız gerekiyorsa, yalnızca paralel hesaplamalar muhtemelen en iyi sonuçları verecektir; İnternet bağlantısının her zaman kullanılamayacağını ve ne zaman olabileceğini yavaşlatarak mümkün olamayacağını düşünün.


1
-1, çünkü bu cevap soruyu gerçekten cevaplamıyor (yani terimleri açıklayın).
Jukka Suomela

@JukkaSuomela, soru terimleri açıklamakla ilgili değil, aralarındaki farkı anlatıyor.
svick

6

İşte okumaya değer yeni bir makale:

Michel Raynal: "Paralel Hesaplama - Dağıtık Hesaplama: Harika Bir Karışıklık?" , Proc. Euro-Par 2015 , Doi: 10.1007 / 978-3-319-27308-2_4

Soyut, Özet:

Bu kısa pozisyon makalesi, öğretme bakış açısına göre, paralellik ve dağınık hesaplamanın çoğu zaman birbirine karıştığını, derin doğalarına bakarken farklı temel meseleleri ele aldıklarını tartışmaktadır. Dolayısıyla uygun müfredat bunların her biri için ayrı ayrı tasarlanmalıdır. “Her şey her şeyde (ve karşılıklı olarak)” tutumu, öğrencilere bir tarafta paralelliği karakterize eden ve diğer tarafında dağıttığı önemli kavramları öğretmek için uygun bir yaklaşım gibi görünmemektedir.


4

Kitabın Giriş bölümünde [1], yazarlar dağıtılmış hesaplama ile paralel hesaplama arasındaki karşılaştırmada başka bir bakış açısı (diğer cevaplardakilerden farklı olarak) sunmaktadır.

Geniş anlamda, paralel işlemenin amacı, tüm işlemcileri büyük bir görevi yerine getirmek için kullanmaktır. Buna karşılık, dağıtık bir sistemdeki her işlemcinin genellikle kendi yarı bağımsız gündemine sahiptir, ancak kaynakların paylaşımı, kullanılabilirlik ve hata toleransı dahil olmak üzere çeşitli nedenlerden dolayı işlemcilerin eylemlerini koordine etmesi gerekir.

Bu açıdan, Harita / Küçültme paradigması temel olarak paralel hesaplama bağlamına girer. Bununla birlikte, söz konusu düğümlerin, örneğin Paxos (wiki) algoritmasını kullanarak ortak bir lider üzerinde fikir birliğine varmasını istiyorsak , o zaman dağıtılmış hesaplamada tipik bir sorun olduğunu düşünüyoruz.

[1] Dağıtık Hesaplama. Temeller, Simülasyonlar ve İleri Konular. Hagit Attiya ve Jennifer Welch. 2004.


0

Burada daha uygun olan cevap var. Temel olarak, buna karşılık parallelgelir ise memory-shared multiprocessorbuna distributedkarşılık gelir private-memory multicomputers. Yani, birincisi tek bir çok çekirdekli ya da süperskalar makinedir, diğeri ise coğrafi olarak dağıtılmış bir bilgisayar ağıdır. Sonuncusu daha az bağlantı ve dolayısıyla daha az performans pahasına daha fazla kullanılabilirlik ve hataya dayanıklılık anlamına gelir. Her gidiş-dönüş işleminde veri (de) serileştirme ve uzun mesafeler boyunca teslim edilmesine ihtiyaç duyduğunuz için performans düşmektedir, oysa bunu paralel işlemcideki başka bir CPU'ya iletmek için sadece bir bellek içi nesneye başvurabilirsiniz.

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.