Beowulf HOWTO Autor: Jacek Radajewski i Douglas Eadline v1.1.1, 22 padziernik 1998 Wersja polska: Adam Byrtek alpha@irc.pl v1.0, lipiec 1999 Ten dokument jest wprowadzeniem do architektury superkomputerw Beowulf i dostarcza podstawowych informacji na temat programowania rwnolegego, wraz z odnonikami do bardziej szczegowych dokumentw oraz stron WWW. ______________________________________________________________________ Spis treci 1. Wstp 1.1 Zastrzeenie 1.2 Prawa autorskie 1.3 Informacje o dokumencie 1.4 Informacje o autorach 1.5 Podzikowania 2. Wstp 2.1 Kto powinien czyta ten dokument? 2.2 Czym jest Beowulf? 2.3 Klasyfikacja 3. Oglny opis architektury 3.1 Jak to wyglda? 3.2 Jak wykorzysta pozostae wzy? 3.3 Czym Beowulf rni si od COW? 4. Planowanie systemu 4.1 Krtkie wprowadzenie do przetwarzania rwnolegego. 4.2 Metody przetwarzania rwnolegego 4.2.1 Po co wicej ni jeden procesor? 4.2.2 Sklep z przetwarzaniem rwnolegym 4.2.2.1 Jednozadaniowy system operacyjny 4.2.2.2 Wielozadaniowy system operacyjny 4.2.2.3 Wielozadaniowe systemy operacyjne z wieloma CPU 4.2.2.4 Wtki w wielozadaniowym systemie operacyjnym z wieloma CPU 4.2.2.5 Wysyanie komunikatw w wielozadaniowych systemach z wieloma CPU 4.3 Architektury przetwarzania rwnolegego 4.3.1 Architektury sprztowe 4.3.2 Programowe architektury API 4.3.2.1 Komunikaty 4.3.2.2 Wtki 4.3.3 Architektura aplikacji 4.4 Suitability 4.5 Pisanie i przenoszenie oprogramowania rwnolegego 4.5.1 Wyznaczanie konkurencyjnych czci programu 4.5.2 Obliczanie efektywnoci rwnolegej 4.5.3 Opisywanie konkurencyjnych czci programu 4.5.3.1 Metody wyrane 4.5.3.2 Domniemane metody 5. Zasoby dotyczce Beowulfa 5.1 Punkty startowe 5.2 Documentation 5.3 Dokumenty 5.4 Oprogramowanie 5.5 Maszyny Beowulf 5.6 Inne interesujce strony 5.7 Historia 6. Kod rdowy 6.1 sum.c 6.2 sigmasqrt.c 6.3 prun.sh ______________________________________________________________________ 1. Wstp 1.1. Zastrzeenie Nie ponosimy adnej odpowiedzialnoci za jakiekolwiek bdne informacje zawarte w tym dokumencie, ani za uszkodzenia ktre mog one spowodowa. 1.2. Prawa autorskie Copyright (C) 1997 - 1998 Jacek Radajewski and Douglas Eadline. Udzielono zezwolenia na dystrybucj i modyfikowanie tego dokumentu zgodnie z licencj GNU General Public Licence. 1.3. Informacje o dokumencie Jacek Radajewski rozpocz prac nad tym dokumentem w padzierniku 1997, niedugo potem doczy do niego Douglas Eadline. W przecigu kilku miesicy dokument Beowulf HOWTO znacznie si rozrs, i w sierpniu 1998 zosta podzielony na trzy dokumenty: Beowulf HOWTO, Beowulf Architecture Design HOWTO, oraz Beowulf Installation and Administration HOWTO. Wersja 1.0.0 Beowulf HOWTO zostaa wydana w ramach Linux Documentation Project (Projektu Dokumentacji Linuxa) 11 padziernika 1998. Mamy nadziej, e to jedynie pocztek tego, co stanie si wkrtce Beowulf Documentation Project (Projektem Dokumentacji Beowulfa). 1.4. Informacje o autorach o Jacek Radajewski pracuje jako zarzdca sieci i studiuje nauki komputerowe na Uniwersytecie Poudniowego Queensland, w Australii. Jacek pierwszy raz spotka si z Linuxem w 1995 roku, i bya to mio od pierwszego spojrzenia. Jacek wybudowa swj pierwszy klaster Beowulf w maju 1997 i od tamtego czasu eksperymentuje, starajc si znale nowe i lepsze sposoby rozwizywania problemw. Mona skontaktowa si z Jackiem wysyajc mu email na adres jacek@usq.edu.au o Douglas Eadline, Ph.D. jest Prezesem i Pierwszym Naukowcem w Paralogic, Inc., Bethlehem, PA, USA. Z wyksztacenia chemik fizyczny/analityczny, zainteresowany komputerami od 1978, gdy zbudowa swj pierwszy komputer do uycia z instrumentami chemicznymi. Teraz Dr. Eadline interesuje si Linuxem, klastrami Beowulf i algorytmami rwnolegymi. Mona skontaktowa si z nim wysyajc email na adres deadline@plogic.com 1.5. Podzikowania Pisanie Beowulf HOWTO byo dugim procesem, zakoczonym dziki wielu osobom. Chciaem podzikowa nastpujcym ludziom za pomoc i wkad w ten dokument. o Becky za jej mio, wsparcie i zrozumienie. o Tom'owi Sterling, Don'owi Becker oraz innym ludziom z NASA, ktrzy rozpoczli projekt Beowulf. o Thanh Tran-Cong i Katedrze Inynierii i Pomiarw za stworzenie maszyny Beowulf topcat, udostpnionej do eksperymentw. o Mojemu nadzorcy Christopher'owi Vance za wiele wietnych pomysw. o Mojemu przyjacielowi Russell'owi Waldron za wietne pomysy programistyczne, jego zainteresowanie projektem i wsparcie. o Mojemu przyjacielowi David'owi Smith za przeczytanie tego dokumentu w poszukiwaniu bdw. o Wielu innym ludziom z listy dyskusyjnej Beowulfa, ktrzy dostarczyli mi opinii i pomysw. o Wszystkim ludziom odpowiedzialnym za system operacyjny Linux i pozostae darmowe oprogramowanie wykorzystywane na topcat i innych maszynach Beowulf. 2. Wstp Jako e wydajno sprztu komputerowego i sieciowego wci ronie, a jego ceny spadaj, bardziej praktyczne ni kupowanie bardzo kosztownego superkomputera staje si budowanie rwnolegych systemw obliczeniowych ze skadnikw dostpnych w kadym sklepie. W rzeczywistoci wskanik wydajnoci do ceny maszyny typu Beowulf jest od trzech do dziesiciu razy wyszy ni tradycyjnych superkomputerw. Architektura Beowulf jest atwo skalowalna, atwa w budowie i paci si jedynie za sprzt, jako e wikszo oprogramowania jest darmowa. 2.1. Kto powinien czyta ten dokument? To HOWTO jest zaprojektowane dla osoby majcej przynajmniej podstawowe dowiadczenie z systemem operacyjnym Linux. Znajomo technologii Beowulf czy rozumienie bardziej zoonych koncepcji zwizanych z systemami operacyjnymi i sieciami nie jest konieczne, ale podstawowa wiedza o przetwarzaniu rwnolegym bdzie przydatna (w kocu musisz mie jaki powd, czytajc ten dokument). To HOWTO nie odpowie na wszystkie moliwe pytania na temat Beowulf'a, ale by moe da ci pomysy i poprowadzi we waciwym kierunku. Celem tego dokumentu jest udzielenie podstawowych informacji, oraz odnonikw do bardziej zaawansowanych dokumentw. 2.2. Czym jest Beowulf? Famed was this Beowulf: far flew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan. Beowulf to najstarszy zachowany poemat epicki w jzyku angielskim. Jest to opowie o bohaterze dysponujcym wielk si i odwag, ktry pokona potwora zwanego Grendel. Patrz do dziau ``Historia'' aby dowiedzie si wicej o walecznym Beowulf'ie. Prawdopodobnie istnieje co najmniej tyle definicji Beowulf'a, ile ludzi ktrzy budowali lub korzystali z architektury superkomputera Beowulf. Niektrzy twierdz e system moe zosta nazwany Beowulf tylko jeli zosta zbudowany tak samo, jak oryginalna maszyna NASA. Inni zmierzaj do drugiej skrannoci, nazywajc imieniem Beowulf kady system stacji roboczych wykonujcych kod rwnolegy. Moja definicja Beowulf'a mieci si mniej wicej porodku, i jest oparta na wielu opiniach z listy dyskusyjnej Beowulf'a: Beowulf to wielo-komputerowa architektura ktra moe zosta uyta do oblicze rwnolegych. Jest to system, ktry na ogl skada si z jednego wz- serwera i jednego lub wicej wza-klienta poczonego przez Ethernet lub jak inn sie. Jest to system zbudowany w oparciu o powszechnie dostpne komponenty sprztowe, jak kady PC zdolny do uruchomienia Linuxa, standardowe karty Ethernet i switch'e. Nie zawiera adnych unikalnych komponentw sprztowych i jest atwy w tworzeniu. Beowulf korzysta rwnie ze zwykego oprogramowania, jak system operacyjny Linux, Parallel Virtual Machine (PVM) oraz Message Passing Interface (MPI). Wze-serwer kontroluje cay klaster i udostpnia pliki klientom. Peni on take funkcj konsoli klastra i jest jego bram do zewntrznego wiata. Due maszyny Beowulf mog posiada wicej ni jeden wze-serwer, oraz inne wzy stworzone dla specyficznych zada, na przykad konsole lub stacje monitorujce. W wikszoci przypadkw wzy-klienci w systemie Beowulf s gupie, im gupsze tym lepiej. Wzy s konfigurowane i kontrolowane przez wze-serwer, i robi tylko to, co kazano im robi. W konfiguracji bezdyskowej klienci nie znaj nawet swojego adresu IP lub nazwy, dopki serwer im ich nie poda. Jedn z podstawowych rnic pomidzy Beowulf'em a architektur Cluster of Workstations (COW) jest to, e Beowulf zachowuje si bardziej jak jedna maszyna, ni wiele stacji roboczych. W wikszoci przypadkw wzy-klienci nie posiadaj klawiatur czy monitorw, a dostp do nich jest moliwy jedynie przez odlege logowanie bdz opcjonalny terminal szeregowy. Wezy Beowulf mona sobie wyobrazi jako pakiej CPU + pami, ktry moe zosta podczony do klastra, tak jak CPU czy modu pamici moe zosta doczony do pyty gwnej. Beowulf to nie aden specjalny pakiet oprogramowania, nowa topologia sieci czy nowa nakadka na jdro. Beowulf to technologia czenia komputerw Linux aby utworzy rwnolegy, wirtualny superkomputer. Chocia istnieje wiele pakietw oprogramowania, takich jak modyfikacje jdra, biblioteki PVM i MPI, narzdzia konfiguracyjne, ktre przyspieszaj architektur Beowulf, uatwiaj konfiguracj i zwikszaj uyteczno, jednak moliwe jest zbudowanie maszyny Beowulf wykorzystujc standardow dystrybucj Linux, bez adn...
Porozmawiajmy.TV