Pi Küme Artıları ve Eksileri?


33

Ahududu Pis ile bir "süper bilgisayar" ya da küme nasıl kurulacağını soran birçok yazı gördüm, ancak aslında bir Pis ağı yapmanın artıları ve eksileri hakkında çok az şey buldum. Kendi küçük kümemi oluşturmakla ilgileniyorum ama birkaç sorum var.

Bir kere kümelendiğinde, RPI'ler tek bir sanal bilgisayar olarak mı hareket ediyor yoksa tüm RPI'ler üzerinde bireysel kontrolünüz var mı? Bir düğümün diğerleri üzerinde kontrolü var mı?

Bir RPI’nın yapabileceği herhangi bir şey var mı, bir kümede sınırlı? Örneğin, tüm bireysel GPIO portları üzerinde hala kontrol sahibi olur muyum?

Pi'yi ne kadar hızlı yapar? Diyelim ki her biri 1 GHz'e kadar saatli 2 düğümlü bir küme yapıyorum, aslında bir "çift çekirdekli 1 GHz" işlemciye sahip miyim? Kümenin İkili Katlarda mı olması gerekir? (örn. 1,2,4,8,16,32,64)

Bu benim web hosting için pi için NGINX üzerinden çalışan barındırma zorlaştırır mı? Bazı düğümlerin işlem gücüne ele aldıkları özel görevler verilebilir mi? Gibi düğüm 1, web servis isteklerini idare edecek, düğüm 2 bulut depolama, vb ele

Yanıtlar:


49

Bazı ilginç sorular. Raspberry Pis ile yapılan "süper bilgisayarların" nasıl çalıştığını biraz yanlış anladığınızı düşünüyorum. Otomatik yük paylaşım sistemi olarak çalışmazlar. Karmaşık bir görevin aynı anda gerçekleştirilebilecek parçalara bölündüğü paralel programlama adı verilen bir şey için tasarlanmıştır . Kümedeki ana Pi (baş düğümü) genel görevi düzenlemekten sorumludur ve kümedeki her Pi (müşteri düğümleri) tahsis edilen çalışmasını gerçekleştirir ve sonuçları tekrar baş düğümüne rapor eder. OpenMPI gibi kütüphaneler bunun anahtarıdır.

Ek olarak, oluşturulan Raspberry Pi kümeleri, verimli bilgi işlem cihazları olarak oluşturulmamıştır. Geliştirme platformları olarak inşa edilmişlerdir . 32 Raspberry Pis'i satın almak, 32 masaüstü bilgisayardan çok daha ucuz. Paralel programlama yazılımınızı bu şekilde çok daha ucuza geliştirip test edebilirsiniz. Pis veya PC'niz yoksa tek alternatif gerçek bir süper bilgisayarda CPU zamanı istemektir. Söz konusu bilgisayarın boyutuna bağlı olarak, bunu yapmak paraya mal olabilir veya kaynaklar kullanılabilir olmadan önce uzun bekleme süreleri olabilir. Bu yüzden insanlar neden kendi kişisel kümelerini inşa ettiler? Uygulamanızın gerçek bilgisayarda çalışıp çalışmadığını bildiğiniz zaman anlamlıdır!

Bu nedenle, bunu aklınızda bulundurun ve özel sorularınıza devam edin.

Uygun bir kümede Pis, tek bir sanal bilgisayar gibi davranmaz. Sun Grid Engine gibi bir görev veya kaynak tahsisat sistemi şeklinde her Pi üzerinde gevşek bir kontrolünüz var . Görevler gerektiği gibi düğümlere dağıtılır ve görevler tamamlandığında bu düğümün kaynakları yeni görevler için serbest bırakılır.

Bir kümede, her Pi kendi Linux kopyasını çalıştırdığından, her Pi kendi GPIO portlarının yerel kontrolünü elinde tutacaktır. Yazılımın bunu paralel bir hesaplama ortamında gerçekten nasıl kullanacağından emin değilim, ama sizsiniz.

Bir küme Pi'yi daha hızlı yapmaz çünkü tek bir bilgisayar değildir. Kazandığınız şey, bir kerede daha fazlasını yapma yeteneğidir. İkilik katlarıyla sınırlı değilsin. Ancak, çalıştırdığınız görevlere bağlı olarak kümelenmiş bilgisayarlara uygulanan gerçek bir pratik üst sınır vardır. 200 adım gerektiren birçok Pis üzerinde paralel bir hesaplama yaptığınızı düşünün. Ancak, her bir sonraki adım, her Pi'nin bir önceki adımında hesapladığı bilgiyi gerektirir. Bu yüzden her Pi her bir yinelemede diğer Pi'den veri almalıdır. Her yinelemenin hesaplamak için harcadığı süreye bağlı olarak, hesaplama yapmak yerine veri göndermek için daha fazla zaman harcayabilirsiniz. Bu yüzden çoğu süper bilgisayar InfiniBand kullanıyorağ. Çok hızlı, böylece daha fazla hesaplama yapabilirsiniz. Bunun çözümü daha az Pis kullanmaktır ancak her yineleme için daha fazla çalışmalarını sağlamaktır, ancak algoritmanıza bağlı olarak bu mümkün olmayabilir. Dolayısıyla pratik üst sınır. (Pis'te bu özellikle kötü olurdu çünkü USB Ethernet oldukça yavaş.)

Yani, pratik bir uygulamaya, web barındırma dağıtıldı! Burada birden fazla Pis'den yararlanabilirsiniz, bu sadece normal bir küme değil. 5 Pis olduğunu söyle. Onlara GatewayPi, WebPi1, WebPi2, WebPi3 ve DataPi diyeceğiz. GatewayPi internete bakıyor ve web isteklerini yerine getirmek için Nginix kullanıyor, ancak işlem yapmıyor. Bunun yerine yük dengeleme. Proxy kullanır ve gelen isteği rasgele WebPi1, WebPi2 veya WebPi3'e iletir. Web altyapımızın gücünü üç katına çıkardık, çünkü artık daha fazla isteği aynı anda halledebiliyoruz. DataPi'den ne haber? DataPi, tüm web verilerimizi saklayan bir sabit disk ekledi ve bir NFS sunucusu kullanıyor. WebPiX, NFS'nin paylaştığını, böylece işlem yapmak için verilere erişebileceği şekilde bağlar. Bu yolla sadece bir yerde yedekleme yapmak zorundayız ve disk alanından tasarruf sağlayabiliyoruz.

Az önce tarif ettiğim şey aslında Google ve Facebook gibi büyük şirketlerin kullandığı, ancak Raspberry Pi boyutuna göre ölçeklendirildiği model. Tek yakalama, Pis'in maliyeti nedeniyle, bunu yapmak, aslında Pis'in bir kümesinin paralel bir programlama için olduğu gibi aynı geliştirme platformunu (ancak web servisi için) yaratmasıdır. Çoklu Pis kullanımı, nispeten düşük hesaplama yeteneklerinden dolayı, kısa sürede büyük miktarda veriyi yönetmeye başladığınızda performansta enerji tüketimini kaybeder. Ama sadece öğrenmek için? Onlar mükemmel.


Öyleyse bir ev projesi üzerinde çalışıyorsam, ucuz web siteleri için 2 web sitesini barındırma, soğutma fanlarını GPIO, SSH, FTP, bulut depolama, ev otomasyonu üzerinden kontrol etme
SuperAdmin

4
+1 Bu soruya merakla geldim ve küçük bir eğitim ile ayrıldım. Mükemmel cevap.
jrhorn424

@iOSNoob, eğer onu kullanan tek kişiyseniz ve bir seferde bu şeylerden yalnızca birini yapıyorsanız, o zaman bile bir kümeye değmeyebilir, çünkü kaynaklar gerektiği gibi tahsis edilmiştir. Sadece yeterli RAM yoksa veya tek bir kişiden daha fazla yükünüz varsa, o zaman buna değer. Sadece güvenlik için fanlar ve ev otomasyonu gibi şeyleri ayrı Pis'e koyardım. Gerçekten, birisinin evinizdeki eşyalarla uğraşması ihtimalinin 0 olmasını istersiniz ... Bu sistemlere daha iyi ulaşmak için ekstra bir Pi ile zıplamak zorunda kalırsanız. Bu ekstra bir güvenlik katmanıdır.
Fred

@ jrhorn424 Beğendiğinize sevindim! Son zamanlarda yüksek performanslı (süper) bir bilgi işlem etkinliğine katıldım, bu yüzden bu şeyler aklımdaydı. Bunu yazmak için mükemmel zamanlama.
Fred

1
Neredeyse web barındırma mimarisinin somut bir örneği için Fred açıkladı: pidramble.com (GitHub'daki Pi'nin herhangi bir tadıyla kendi yapabileceğiniz kod / talimatlara bağlantılar).
geerlingguy
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.