2024. május 5., vasárnap

Gyorskeresés

Útvonal

Cikkek » IT-ipar rovat

A Raspberry Pi találkozik a felhővel

Gyorsítsuk PC segítségével a programfordítást, avagy elosztott fordítás különböző architektúrák között!

[ ÚJ TESZT ]

Áttekintés, elosztott fordítás

Elosztott rendszerek

A számítógépek többsége idejének legnagyobb részét tétlenséggel tölti. Használhatnánk más gépek erőforrásait, amikor arra szükségünk van? Az egyik lehetséges megoldás az Icecream, vagy röviden icecc használata. Bővebb leírást az OpenSuse oldalán találhatunk róla.

A működésének lénye, hogy a gépekre telepítve egy szolgáltatást futtat a háttérben, amely elfogad feladatokat a farm többi tagjától. A farmban résztvevő gépek közti munka elosztását egy koordinátor gép végzi, ami maga is részt vehet a munkában. Ezt elosztott fordításnak is nevezhetjük.
A legismertebb fordítócsomag linux alá a GCC. Amikor fordítást végzünk, akkor a valójában az icecc program indul el és az futtatja az igazi gcc fordítót a farm valamelyik alkalmas gépén.

Mivel általában több szálon egyszerre több programrészletet fordítunk, így hasonlóan rövidülhet a művelet összideje, mintha egy sokmagos gépet használnánk. Mivel a különböző gépek szoftveres szempontból is különbözőek lehetnek, így az icecc használatához egy "toolchain"-t kell készíteni előbb, s ez a fordítócsomag fel fog kerülni automatikusan minden nekünk dolgozó gépre.

Fordítás más architektúrára, cross compile

Felmerül egy másik probléma is a fordítással kapcsolatban. Ahogy már szóba került a RasPi ARM architektúrát használ, ami nem kompatibilis bináris szinten az asztali gépeinkben elterjedt inteltől származó x86 architektúrákkal. Ha több RasPi-vel is rendelkezünk, akkor azokból már összeállítható egy fordító farm, viszont a pécé ebbe még nem tud besegíteni, mert az nem futtathat ARM programot.

Alapvetően a gcc fordító olyan architektúrájú eredményt generál, mint amilyen saját maga. Persze mindenre van okos megoldás. Használjunk olyan cross compiler gcc-t, amely x86 gépen futtatható, de a kimenete ARM bináris. Ebből már készíthetünk olyan toolchain-t az icecc számára, amely pécéken futtatható és mégis megfelelő eredményt ad vissza. Egy ilyen fordítót nem olyan egyszerű létrehozni, aki maga akarja elkészíteni, annak segítséget nyújthat a Crosstool-NG. Szerencsénkre az alapítvány már készített egy számunkra is használható változatot, így lényegesen könnyebben boldogulhatunk a feladattal.

Folytassuk konkrét lépésekkel a kereszt-platform fordítófarmunk felállítását.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

  • Hőmérséklet mérő Pi

    Egy kis bevezető után bemutatom a hőmérséklet mérésének egyszerű megvalósítását Raspberry Pi-al.

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.