Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Prímrekord, 2005 Csajbók Tímea, Farkas Gábor, Kasza János.

Hasonló előadás


Az előadások a következő témára: "Prímrekord, 2005 Csajbók Tímea, Farkas Gábor, Kasza János."— Előadás másolata:

1 Prímrekord, 2005 Csajbók Tímea, Farkas Gábor, Kasza János

2 Összefoglaló Hardware Software-ek Fordítóprogramok Párhuzamosítás Adatfeldolgozás Mentés Vészleállítás Betöltés Végső összegzés

3 Hardware Intel Itanium 2 3 MB cache 128 db processzorregiszter 1 GB memória ~5 TB háttérkapacitás ~400 db processzor

4 Software-ek Redhat GNU/Linux (ia64), 2.4-es kernel Fordítóprogramok (C): GNU C Compiler (gcc) Intel C Compiler (icc) Párhuzamosító software-ek: PVM library MPI library

5 Fordítóprogramok Kezdetben mind gcc-vel, mind icc-vel kipróbáltuk a programot Késöbb, az optimalizáláskor az icc 2x-3x gyorsabb kódot tudott előállítani

6 Párhuzamosítás Egy vezérlő processz Csak az intervallumok kiosztása a feladata Ha az összes elkészült, STOP signal-t küld a szitálóknak Sok szitáló processz Csak saját intervallumát szitálja A vezérlő processztől kér egy új intervallumot, mindaddig, amíg van hátra Ha STOP signal-t kap, minden adatot a merevlemezre elment.

7 Adatfeldolgozás Hogy tároljuk a számokat a szitatáblában? Leggazdaságosabb módja, hogy minden szám egyetlen bitnek felel meg Mi jelentsen, hogy az adott h még szóba jöhet? Egy intervallumot minnél több prímmel szitálunk meg, annál kevesebb h marad, így jobb, ha az 1 jelenti.

8 Adatfeldolgozás 2 Ezen aprócska észrevétellel a merevlemezen rengeteg helyet megspórolhatunk, hiszen a szóbajövő h-k száma több század részére csökken Ami 1 szónyi h esetén általában 0, az ellenkező esetben 18446744073709551616 lenne... (2^64)

9 Mentés Az ún. batch node-ok instabilak voltak 2-3 naponta megszakadt a futás Adatvesztés lép fel, a futási idő pedig fogy Mi lett volna, ha az utolsó pillanatban az adatok mentése elött megszakad a futás?

10 Mentés 2 Menteni kell! A szitáló processzek 10 intervallumonként automatikusan mentenek, azaz a h értékeket egy az egyben a merevlemezre írja Vészhelyzet esetén mentés és maximum 5 percen belül vészleállás

11 Vészleállítás Egy egyszerű `touch stop` parancs hatására a vezérlő nem ad új intervallumot Amikor egy szitáló processz új intervallumért fordul a kiszolgálóhoz, STOP signal-t kap Ekkor azonnali mentés indul Ha minden mentés befejeződött, a program (szabályosan) leáll

12 Betöltés Helytakarékossági és adatfeldolgozási okokból adódott a következő ötlet: Dolgozik 100 db processzor, majd végeznek és mentenek Következő munkafolyamat során minden processz megmarkol egy előzőleg elkészült file-t, és folytatja

13 Betöltés 2 Hogyan lehetséges mindez? Amikor egy számmal szitálunk, adott pozíción lévő egyeseket nullákra cserélünk Ha már az előző munkának köszönhetően kiütöttünk egy lehetséges értéket, nem befolyásolja az aktuális folyamatot.

14 Végső összegzés Miután minden szükséges intervallummal végeztünk, a 100 db-ból egyetlen file-t kell csinálnunk Összeéseljük az azonos pozíción lévő elemeket pl: 0100100000001001 1000110001000001 0000100000000000

15 Végső összegzés 2 Ez a művelet már egyetlen processzoron elvégezhető Első lépésben két file-t fésülünk össze, majd mindig 1 újat hozzáveszünk Minden file-t csak egyszer olvasunk be a merevlemezről


Letölteni ppt "Prímrekord, 2005 Csajbók Tímea, Farkas Gábor, Kasza János."

Hasonló előadás


Google Hirdetések