Prosty Klaster Obliczeniowy

0

Witam :)

Jestem nowy na forum i witam wszystkich serdecznie :D

Parę dni temu wpadłem na różne tematy dotyczące Klastrów Komputerowych. Użytkownicy innych for często poruszali temat o łączeniu różnych komputerów w sieć,ale tak żeby ich moc obliczeniowa mogła się sumować :) Na pierwszy rzut oka to świetne rozwiązanie. Takie SLI PC/lapków :D Jednak po paru chwilach przemyśleń nadeszły problemy związane z połączeniem tego w całość. W tym momencie marzenia się topią. Niestety jeszcze nie te czasy :D

Stworzyłem ten temat ,bo w sumie sam postanowiłem rozmyślać nad najprostszym klastrem, bez stosowania np. MOSIX'a. Klaster służący tylko do obliczeń takich ,by każdy komputer mógł obrabiać swoje dane i odsyłać je do głównej jednostki(BAZY).

Jedynie co by dla mnie na tą chwilę spełniało tą regułę,to algorytm poszukujący Liczb Pierwszych. Do Stworzenia klastra potrzeba:
Min. 2xPC/Laptop z systemem Windows +proste udostępnianie plików w sieci domowej. Oczywiście im więcej komputerów tym lepiej :)
Najprościej program można napisać w jakimkolwiek języku,ponieważ będziemy operować tylko na plikach(ZAPIS/ODCZYT).

Zasada byłaby taka: Na jednostce centralnej udostępniamy plik *txt, do którego będziemy przekazywać dane. Pozostałe komputery podłączone do tej samej sieci domowej posiadają program KLIENT, który pobiera dane z Udostępnionego pliku i zaczyna obliczać konkretną liczbę. Po obliczeniu KLIENT zwraca liczbę do pliku *txt, a z kolei Jednostka Centralna pobiera tą liczbę i nadaje polecenie obliczenia kolejnej Określonej liczby do pliku *txt. Operacja ponawiana jest dla każdej jednostki widocznej w sieci domowej. Wszystko dzieje się równolegle i moim zdaniem powinno działać bez zabawy w instalację specjalnych systemów do tego stworzonych. Jedyna zabawa to pisanie kodu i obserwowanie wyników :D

Powyższy projekt spróbuję wykonać sam i jestem ciekawy efektów :) Najbardziej ciekawi mnie o ile skróci się czas poszukiwania liczb pierwszych z konkretnych przedziałów :)

Mam takie pytanie: Czy ktoś z was kiedyś próbował coś podobnego,albo wie jakie jeszcze obliczenia można prowadzić na tego typu Klastrach?
Ja nie mam pojęcia do czego można to jeszcze wykorzystać :D

2

Do wszystkiego co sie da zrównoleglić. Lekcja na dziś: map, filter, reduce.

0

I tylko tyle? W sumie dla mnie to jest świeży temat, ale uważam, że zawsze warto spróbować czegoś nowego. Najpierw pobawię się liczbami pierwszymi,bo na nie zwykle zwracam największą uwagę. I tak małymi krokami do przodu :)

0

Myśle, że połączenia sieciowe zjedzą ten "klaster" no chyba, że zastosujesz infinband czy 10 GbE

1

Jeśli chcesz się pobawić sensownie i tanio to spróbuj z Rasberry Pi ($35 za węzeł).

Poszukaj hasła "rasberry pi cluster computing".

Przykład książki to opisującej:
https://www.packtpub.com/books/content/clusters-parallel-computing-and-raspberry-pi-%E2%80%93-brief-background

Przykład konstrukcji:
http://hackaday.com/2013/05/21/33-node-beowulf-cluster-built-with-raspberry-pi/
http://coen.boisestate.edu/ece/files/2013/05/Creating.a.Raspberry.Pi-Based.Beowulf.Cluster_v2.pdf

To co uda Ci się zbudować będzie wprost przenaszalne na duże komputery (Linux jest linux). O ile nie będziesz rzeźbił w ASM.

0

Dzięki za info :)

Za bardzo wolałbym na tą chwilę nie inwestować $$

Ogólnie pomysł mój chyba padnie ,bo nie wiem jak pobrać w c++ plik z folderu udostępnionego w sieci.
Ogólnie lokalizacja to: Folder/plik.txt po otwarciu Explorera dział SIEĆ/Nazwa_Komp/Folder_udostępniony/PLIK.txt

Ma ktoś pomysł jak odczytać całą ścieżkę do pliku? Kiedy program pobierze plik z folderu udostępnionego musi analizować dane w nim zawarte.

EDIT

Wystarczyło trochę pomyśleć i już wszystko działa. Projekt rusza dalej :D

0

1

W wolnych chwilach wpadłem na pomysł jak można wykorzystać swój mini klaster do gier. W strategiach kosmicznych czasu rzeczywistego świat gry na jednostce centralnej może być duża galaktyką a na pozostałych komputerach trwałyby obliczenia innych galaktyk przy czym w każdym momencie można by było przenieść się do innej galaktyki. Takie zastosowanie to już chyba serwery mają :D Im więcej spedzam czasu nad tym projektem tym coraz większa obawa o synchronizacje. Bez dodatkowych wątków się nie obejdzie..

2

Koledzy zaproponowali R.PI, a dziś wyszło Raspberry Pi 3, do 60% szybsze od R.Pi 2

0

Nowsza wersja jest bardziej wydajna.. Ale system i tak trzeba na nowo pisać,by programy własnej roboty były obsługiwane na kilku jednostkach R.PI..

U siebie zdążyłem już zmusić drugi komputer w sieci domowej do współpracy z komputerem, na którym piszę projekt :D Jeszcze trochę i zmuszę 2 procki do dobrej współpracy przy obliczeniach liczb pierwszych i zacznę testy. Wiadomo ,że to nie będzie działać tak samo jak w ostatnim MOSIX'ie , gdzie program widzi rdzenie procesora jako poszczególne węzły. Tutaj po prostu nie zagłębiam się w niskopoziomowe oprogramowanie.. a szkoda :(

0
Progdeex napisał(a):

Nowsza wersja jest bardziej wydajna.. Ale system i tak trzeba na nowo pisać,by programy własnej roboty były obsługiwane na kilku jednostkach R.PI..

Jak masz na PC Linuxa (najlepiej debiano-podobnego), to przeniesienie tego na R.Pi to bułka z masłem, a i z Winzgrozy nie jest to coś nadzwyczaj trudnego.

0

W tym rzecz,że te mini komputerki nie mają takiej mocy jak zwykły komputer PC. A czym łączone są te Raspberry,że warto użyć ich do budowy klastra? Jakiś super mega interfejs?

1

Sa tanie:)

0

Ktoś już ma choć jeden i może wydać trochę szerszą opinię na ten temat?

0 użytkowników online, w tym zalogowanych: 0, gości: 0