2 bilgisayarın işlem gücünü birleştirmek mümkün mü?


Yanıtlar:


11

Çalışan bir programın kodu çalıştırmak için bir şekilde ikinci makineyi kullanabileceği şeffaf bir şekilde değil, çünkü işlemcinin birbirlerinin hafızasına iletişim kurması veya erişmesi için mantıksal olarak ayrıdırlar.

Bu, işlem gücünü birleştiremeyeceğiniz anlamına gelmez:

  1. Belirli yazılımlar, diğer makinelerde yürütülebilen bileşenler içerebilir, örneğin protein katlama, SETI @ home. Bunlar uzmanlaşma eğilimindedir, yani Excel'i başlatamaz ve hesaplama için başka bir bilgisayar kullanmasını söyleyemezsiniz.
  2. İşlemci yoğun görevler yapıyorsanız, bunları çalıştırmak için ikincil makineyi kullanabilirsiniz; örneğin, bir video akışını kodlama / yeniden kodlama.

İkincil bilgisayarı herhangi bir şekilde kullanmak istiyorsanız, uzaktan kumanda edebilmek çok önemlidir. Bunu yapmanın iki yolu, bir tür uzaktan erişim (RDP, VNC) veya alternatif olarak sinerji +.


1
Diyelim ki dizüstü bilgisayarımda 4GB RAM ve bilgisayarımda 4GB RAM var, RDP neredeyse 8GB RAM ile bir progran çalıştırmamı sağlayacak mı?
TGamer

5

En çok kullandığım hatlardan biri - Evet ve Hayır!

Evet, bu şekilde çalışmak üzere tasarlanmış bazı uygulamalar için mümkündür. (Genellikle küme olarak bilinir - Daha fazla bilgi burada )

Hayır (en azından bildiğim kadarıyla) raf bilgisayarlarından iki tane almak, onları birbirine bağlamak ve birleşik bellek, işlem gücü ve diğer her şeyi almak mümkün değildir.


1
@ ~ quack evet, ve bazı uygulamalar için dedim ... Soru Windows-7 etiketli olduğu gibi, o herhangi bir raf programı kapalı herhangi bir günlük bilgisayar anlamına geldiğini varsaydı .... Neyse - Beowulf kümeleri gerektirmez özel olarak yazılmış uygulamalar? ... Ben uzman değilim, hiç kullanmadım, ama hızlı bir şekilde beowulf.org/overview/index.html (özellikle son iki paragraf)
okudum

üzgünüm, tekrar okuduktan sonra önceki yorumumu sildim ve zaten kümeleme konseptine bağlandığınızı fark ettim. beowulfs, kullanıma hazır bileşenler etrafında tasarlanmıştır ve birden çok sistemi birbirine bağlamanın bir yoludur, ancak kendileri için özel olarak tasarlanmamış programlar için gerçekten çalışmazlar.
quack quixote

4

Çok mümkün! Ancak sorunuzun basitliğine bakılırsa, bilgisayarınızı sihirli bir şekilde iki kat daha hızlı hale getirecek bir program çalıştırmak istediğinizi varsayıyorum, bu mümkün değil.

Bir program çalıştığında, CPU'nun belleği, HDD ve RAM kayıtları ve çeşitli bileşenlerdeki (video kartları veya ağ kartları gibi) adresler arasında hareket ettirmesini provoke ederek durumunu koruduğunu anlamalısınız. Size yardımcı olması için başka bir bilgisayardan CPU kullanmanın sorunu, aynı belleğe erişmesi gerektiğidir. Ve bilgisayar belleğinizin ayna görüntüsünü başka bir bilgisayarda tutmak, o kadar fazla yük gerektirir ki, performans kazanmak için başka bir bilgisayar eklemeyi denemek amacını kolayca yener :)

Ancak, birden fazla bilgisayar arasında bölünebilecek şeylerin türü, görüntü oluşturma veya bağımsız olarak çalışabilen bazı matematiksel hesaplamalardır.


3

Eğer aradığınız şey iki bilgisayarın işlem gücünü bir araya getirme yöntemiyse, bunu yapmanın en kolay yolu VMWare ESXi gibi bir yazılım kullanarak her ikisini de sanal makine ana bilgisayarları olarak yapılandırmaktır. uyumlu bir donanıma sahip) ve bir kaynak grubu veya küme oluşturmak ve her iki bilgisayarın kaynaklarını kullanan bir sanal makine oluşturmak. Bu size tam 2x hız elde edemez (Sanallaştırma nedeniyle kaynakları kaybedersiniz) ve olası uyumluluk gereksinimleri nedeniyle sınırlı bir çözümdür, ancak sorunuzun en "doğru" cevabıdır. Sanal makine, her iki ana bilgisayarın işlem gücü eksi sanallaştırmayı sürdürmek için gereken ek yükü olan tek bir PC gibi davranacaktır.


Korkarım ana bilgisayarlar arasındaki iletişim darboğaz olacak.
gronostaj

1
Evet, ana bilgisayarlar arasındaki iletişim bir darboğaz olabilir, bu ek yükün bir parçasıdır. Gigabit olmayan ağlar bunun en büyük suçlusu olurdu, ancak ucuz ve üretken gigabit kullanılabilirliği göz önüne alındığında, bunun özellikle cezalandırıcı olduğunu düşünmüyorum. Bununla birlikte, bu, tüm ağ dağıtılmış işlem için geçerlidir ve VM, Uzaktan Yordam Çağrıları ve ağ dağıtımlı bilgi işlemlere adanmış (zaten ne olması gerekir) özel yazılmış uygulamalardan çok daha az karmaşıklığa sahip çok daha kullanışlı bir senaryodur.
George Spiceland

2

Diğer cevaplara katılıyorum:

  • Çok büyük, çok sayfalı bir Excel çalışma kitabınız varsa ve Excel'i iki kat daha hızlı çalıştırabilmek istiyorsanız (formülleri ve senaryoları güncelleme, makroları çalıştırma vb.), Şansınız kalmadı.
  • 1'den 1.000.000'a kadar her tamsayının kare kökünü bulmak gibi kolayca bölümlenebilen özel bir uygulamanız varsa, sorunu parçalara ayırmanız ve dağıtmanız kolay olmalıdır.
  • İlk 1.000.000 rakamı π (pi) hesaplamak gibi özel bir uygulamanız varsa, sorun alanını yeterince iyi anlarsanız, bunu yapabilirsiniz.

Dağıtılmış (çok bilgisayarlı) bir ortamda çalıştırmak için yazılım geliştirme hakkında konuşuyorsanız, işte birkaç öneri:

  • Uzak yordam çağrılarını (RPC) kullanın . Bir ana bilgisayarı bir dosya sunucusu veya bir web sunucusu yapabileceğiniz gibi, RPC'ler de bir makine, aslında bir CPU sunucusu yapmanıza izin verir. Kavramsal olarak, bir RPC istemcisi olan bir ana makineniz olur ve sunucuda şeffaf olarak yürütülecek kitaplık işlevlerini çağırır. En basit haliyle, bu mimari size herhangi bir performans avantajı vermeyecektir, çünkü herhangi bir anda yalnızca bir CPU çalışacaktır. Ancak, zaman uyumsuz modelde, istemci sunucuda uzak bir yordam başlatabilir ve sonra sunucu çalışırken başka şeyler yapabilir.
  • Paralel işleme için tasarlanmış birleştirilmiş Paralel C (UPC) gibi bir dil kullanın . Bu, C dilinin dağıtılmış veri ve eşzamanlı yürütme olanaklarıyla bir uzantısıdır. Referanslar:
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.