Klaszterek a linuxban

A cikk témája a párhuzamos számítás Linux alatt. Ez a cikk általános klaszterezési kérdéseket, fürtözött szoftvereket, különösen PVM-et ismertet. A cikk végén talál további linkeket a tárgyhoz tartozó további irodalomhoz.

Általános információk a klaszterekről


Először meg kell értened, hogy mi a klaszter általában. A klaszter általában csomópontokból (egyéni számítógépekből) és egy olyan hálózatból áll, amely egyesíti őket. A konstrukció a hálózat általában használt Fast Ethernet technológia (100 Mbit / sec), de a legegyszerűbb esetben (például a létrehozása a klaszter az otthon vagy egy demonstrációs céllal), és alkalmas egy Ethernet szegmenst, 10 Mbit / sec.

A klasztereket általában a kutatási szervezetek használják különböző feladatok szimulálására vagy komplex számítások elvégzésére. Az ár a szuperszámítógépek megfizethetetlen a legtöbb szervezet számára, így az ötlet, hogy összegyűjti a „szuper számítógép” a „rendelkezésre álló anyag” - munkaállomások az Intel processzorok. Teljesítményű gyártási Intel processzorok már gyakorlatilag elérte a RISC processzor (Intel processzorral rendelkezik, köztük a Pentium III használt CISC architektúra és P4 - VLIW).

Összegyűjtjük a klaszterünket

A klaszter csomópontok konfigurációja attól függ, hogy mely feladatokat hajtja végre. Ha a cél egy klaszter létrehozása néhány fontos feladat megoldása nélkül, a 486-os processzorral (lehetőleg DX2 vagy DX4) rendelkező régi gépek fognak működni. A fontos feladatok megoldásához a Pentium II processzorok 400Mhz vagy Pentium III processzorokból (600Mhz-ból) fognak működni.

Egy számítógép (csomópont) központi lesz. Kívánatos, hogy erősebb legyen, mint a klaszter többi csomópontja. Erre nagyobb teljesítményű processzort kell telepíteni, kétszer annyi RAM-ot, mint a többi csomópontnál (minimum 128 MB). Kívánatos SCSI lemez használata a központi számítógépen, de ATA133 / 7200 rpm is alkalmas. Jobb, ha egy gyors SCSI-t, és egy csomóponton egyáltalán lemondani a merevlemezről - így olcsóbb lesz. Mindezek a követelmények kívánatosak, de nem kötelezőek.

Most beszéljünk a hálózatról. Mint már írtam, kívánatos a Fast Ethernet használata. Ha a csomópontok száma elég nagy (20), hogy minimalizáljuk az ütközések kell bontani különálló szegmenseket vagy felhasználni az csatlakozás kapcsoló (Swith), ahelyett, hogy egy átjátszó (hub).
Bizonyos esetekben érdemes megszakítani a hálózatot szegmensekké, még akkor is, ha kevés csomópont van (8-ból), például Ethernet (10 Mbit / s) használatával.

Ethernet használata esetén a merevlemezek eldobása nem ajánlott. A klaszter rendkívül lassan dolgozik, nagy ütközés lesz.
Az egyik leghatékonyabb megoldás a klaszter csomópontok összekapcsolására az 1.28GBit Myrinet kapcsolók használata. Használhatja a Gigabit Ethernet technológiát is.

szoftver

Operációs rendszerekként a következőket használhatja:
  1. Linux
  2. FreeBSD
  3. Windows NT

Előnyösebb bármilyen Unix-rendszert használni, mivel ezek az operációs rendszerek hatékonyabban használják a hálózati erőforrásokat. Az optimális megoldás a Linux operációs rendszer - szabad és meglehetősen egyszerű konfigurálni.

Használhat bármilyen Linux rendszert a 2.2-es verzióval. * És magasabb. Azt javasoljuk, hogy használja a hatodik Linux RedHat változat, hiszen alacsony erőforrás (minimum konfiguráció - 486 33MHz / 8 MB RAM / 120 MB HDD) és az elosztó egy viszonylag új szoftver verziója legalább 5.2, ami szintén használható építeni klaszter. Az elosztás által használt rendszermagverzió (RH 6), 2.2.5-15.

A fordítók telepítése után telepítenie kell a feladatelosztási környezetet. Ebben a cikkben leírtam a munkát a PVM környezetben, bár más eszközök állnak rendelkezésre - MPI. Condor.

Az MPI CHameleon az iparági standard MPI 1.1 megvalósítása. Az MPI CHameleon lehetővé teszi a programok helyi rendszernél vagy hálózaton belüli TCP kapcsolatokon való futtatását.
A Condor egyenletes terhelést biztosít a fürtön a több gép közötti folyamatok áttelepítésével.

Egy egyszerűbb verziót választottam - PVM (párhuzamos virtuális gép). A PVM biztosítja a feltételeket egy (vagy több - legtöbb esetben) feladat végrehajtására több gépen. Más szóval, a PVM egyszerűen elosztja a folyamatokat a fürt csomópontjain, ugyanúgy, ahogy az operációs rendszer ütemező több feladathoz rendeli a CPU időt.
A PVM a következő architektúrákon dolgozhat:

Ez nem minden olyan architektúra, amely támogatja a PVM-et. Az összes rendelkezésre álló architektúra listája megtalálható a pvm dokumentációban. Az architektúrák, amelyek érdeklődnek minket (vagy inkább elérhetők tőlünk), vastagon jelenik meg.

A "párhuzamos gép" használata nagyon egyszerű. Telepítenie kell az összes fürtgépre. Az én "klaszterem" két Pentium (100 és 150 MHz) 32 MB RAM-mal és egy (központi) Celeron 433-mal (128Mb) volt. A 10Mbit Ethernet használatával elutasítottam a hálózati rendszerindítást. Ezenkívül már minden merevlemezre telepítették a merevlemezeket. A központi operációs rendszeren a Linux Mandrake 7, valamint a Linux RedHat 6.0 Hedwig segédgépeken telepítették. Nem szerettem semmilyen kereskedelmi bókokat, de azokat használtam, amelyek szerepelnek az elosztásban.
By the way, PVM dolgozhat a Windows 9x platformon, de nem javaslom csinálni. Az érdeklődés kedvéért telepítettem a Windows 98 rendszerhez készült PVM-et. Az egyenletes tesztalkalmazások sebessége (nem is beszélve a valós számításokról) lényegesen alacsonyabb volt. Az a tény, hogy a klaszter lassabban fut, még a "szabad szemmel" is látható volt. Valószínűleg ez a Windows hálózatnak a hálózaton keresztüli nem hatékony működtetésének tudható be. Ráadásul a teljes klaszter gyakran "lóg" még a PVM csomag részét képező tesztelési feladatok elvégzése során is.

PVM használata

A PVM-et az ismerős csapat segítségével állítják össze:
konfigurálni; Márka; telepítés

Futtatás előtt állítsa be a PVM_ROOT környezeti változót. Ebben a környezeti változóban meg kell adnia a könyvtárat, ahol a PVM könyvtárak találhatók (például $ HOME / pvm, ha kicsomagolta az archívumot a saját könyvtárába). Egy másik fontos környezeti változó a PVM_ARCH. Tartalmazza az operációs rendszer architektúrájának nevét. Ezt a változót automatikusan be kell állítani, de ha ez nem történik meg (az én esetemben), magának kell telepítenie az architektúrát. A Linux használatakor a változónak tartalmaznia kell a LINUX értéket.

Mint már írtam, telepítenie kell a PVM-et a fürt összes csomópontjára. Az egész párhuzamos gép a pvmd démonból és a pvm konzolból áll. Megtalálhatja a démon indításának lehetőségeit az ember pvmd parancs futtatásával. A központi gépen meg kell indítania a pvmd démont, és futtatni kell a parancsot:
PVM
Ez elindítja a konzolt, amellyel kezeljük az egész klasztert.

A konzol futtatása után egy olyan meghívót kell látnia, amely jelzi, hogy a fürt készen áll a használatra:
PVM>
Adja meg a conf parancsot a fürtkonfiguráció kinyomtatásához. Látnia kellene valami ilyesmit:
1. felsorolás.

Az 1. lista azt mutatja, hogy most a fürtünk egy gépből áll - a központi Linux csomópontból. Itt az ideje, hogy még két csomópontot adjunk a klaszterünkhöz. Csomópontok hozzáadása a következő paranccsal:
adj hozzá hostnevet
Miután a csomópont sikeresen hozzá lett adva a fürtnek, meg kell jelennie a fürtcsomópontok listáján. Most már lehetséges a PVM-t támogató programok futtatása. Ilyen programok példái a $ PVM_ROOT / bin / $ PVM_ARCH / könyvtárban találhatók, esetünkben ez lesz a / root / pvm / bin / LINUX könyvtár (telepítettem a pvm-et a / root könyvtárba). Először is, futtasd a legegyszerűbb programot, hello. A futtatás előtt néhány megjegyzést kell készítenie:
  1. A folyamatokat közvetlenül a pvm konzolból nem lehet elindítani. A konzol csak a klaszter kezelését szolgálja.
  2. A feladat a szokásos módon kezdődik - az operációs rendszer konzoltól. De a "folyamatok", amelyek támogatják a pvm-t, "párhuzamosan" lesznek. A spawn parancs segítségével létrehozhat egy feladatot is (lásd alább)
Amikor elkezdsz hellyel látni egy üzenetet
Hello, világ a gazdanévtől.
ahol a gazdanév a fürtcsomópont. Más szóval, a klaszter összes csomópontja üdvözölhet.

Megjeleníti a libpvm verzióját

Az 1. táblázatban nem írtam le a pvm konzol összes parancsát, az összes többi parancsról az ember pvm beírásával olvashatunk.
Most vegyen fontolóra néhány parancsot. Kezdjük a legegyszerűbb egy alias-val. Ennek használatával definiálhat álneveket a gyakran használt parancsokhoz
alias. segít
Most, a help parancs helyett, egyszerűen beírhatod.

Az id parancs megjeleníti a pvm konzol azonosítóját:

Az mstat parancs megjeleníti a csomópont állapotát, például:

Hasonlóan a jól ismert ps parancshoz, a ps-pvm parancs is használható a gép által végrehajtott párhuzamos feladatok megjelenítéséhez:

A pstat parancs megjeleníti a feladat állapotát:

Most jöttünk az egyik legérdekesebb csapat - spawn. Ez a parancs létrehoz egy feladatot. Segítségével megadhatja a feladat egyes paramétereit, például a csomópontot, amelyen végre kell hajtani.
spawn [opt] a.out
a.out - minden végrehajtható bináris fájl - egy olyan program, amely még nem támogatja a libpvm könyvtárat. Az ilyen programok esetében megadhatja, hogy melyik gépen fog futni. A Windows környezetben az a.out paraméter exe vagy com fájl.
Megadhatja az ilyen paramétereket a spawn parancs számára:

Kapcsolódó cikkek