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.