Weboldalak

A párhuzamosság szükségessé teszi a gyilkos alkalmazást a tömeges elfogadáshoz

Kegyelem- és kárhoztatás, - Párhuzamosság elve, - 2019.04.27.

Kegyelem- és kárhoztatás, - Párhuzamosság elve, - 2019.04.27.
Anonim

A többmagos magok mikroprocesszorokhoz való hozzáadása jelentős lehetőséget teremtett a párhuzamos programozáshoz, de egy gyilkos alkalmazásra van szükség ahhoz, hogy a koncepciót a mainstreambe tereljék, írják a kutatók a Hot Chips konferencia panelbeszélgetése során.

A legtöbb szoftvert ma is írják a szekvenciális végrehajtáshoz, és a programozási modelleknek változtatniuk kell ahhoz, hogy kihasználhassák a gyorsabb hardvereket és egyre több magot a chipeken. A programozóknak olyan kódot kell írniuk, amely lehetővé teszi a feladatok egyszerre történő felosztását és végrehajtását a több mag és szálon keresztül.

Sok összpontosítást és pénzt sikerült beépíteni a gyors gépek és a jobb programozási nyelvek közé - mondta David Patterson, egy számítógép a Kaliforniai Egyetem professzora, a Berkeley, a hétfői Stanford-i konferencián. Összehasonlításképpen kevés figyelmet fordítottak az asztali programok párhuzamos írására, de az olyan alkalmazások, mint a játék és a zene megváltoztathatják ezt. Az ilyen programok felhasználói igénylik a legjobb valós idejű teljesítményt, így a programozóknak olyan modelleket kell elfogadniuk, amelyek több szálon és magon áttörik a feladatokat.

Például az újszerű párhuzamos formák javíthatják a számítógépen játszott zeneszám minőségét és okostelefonok, mondta Patterson. A csatornák és eszközök elválasztására irányuló jobb munkafolyamat végül párhuzamos interakciót eredményezhet.

A Kaliforniai Egyetem (Berkeley) egy párhuzamos számítástechnikai laboratóriummal rendelkezik, ahol a kutatók megpróbálják megérteni, hogyan használják az alkalmazásokat, ami segíthet a kód optimalizálásában kézi eszközök esetén. Az egyik projekt célja, hogy asztali minõségû böngészést biztosítson kézi eszközökkel azáltal, hogy olyan speciális feladatokon alapuló kódot optimalizálja, mint az oldalak rendszerezése és elemzése. Egy másik projekt a kód optimalizálását jelenti az egészségügyi információk gyorsabb visszakereséséhez. A laborot elsősorban az Intel és a Microsoft támogatja.

A Berkeley kutatói párhuzamot próbálnak elérni azáltal, hogy az eredetileg írott kódokkal helyettesítik az olyan kódokat, mint a Python és a Ruby on Rails, új alacsony szintű C kóddal. Az új kód kifejezetten az olyan konkrét feladatokra összpontosít, mint a beszédfelismerő alkalmazásban egy bizonyos hangminta elemzésére, mondta Patterson szerdán egy interjúban. A kód OpenMP vagy MPI alkalmazással készült, alkalmazás-programozási interfészek, amelyeket gépi szintű párhuzamos alkalmazások készítésére terveztek.

A szakembereknek ezt a magasan specializált párhuzamos kódot kell írniuk, mondta Patterson. Ez csökkenti a fejlesztői időt azoknak a programozóknak, akik egyébként Pythonot és Ruby on Rails-et használnának, ami megkönnyíti az alkalmazások fejlesztését, de nem a párhuzamosságra összpontosít, mondta Patterson az interjúban. A labor kimutatta, hogy a konkrét feladatok végrehajtása 20-as tényezővel ugrik az alacsony szintű gépi kóddal.

A párhuzamosság fogalma nem új, és többnyire a nagyteljesítményű számítástechnika területe. A párhuzamosság alacsony szintje mindig is lehetséges volt, de a programozók szörnyű feladattal szembesültek a szoftvereszközök és az állandóan változó hardverkörnyezet hiányában.

"A szálaknak helyesen szinkronizálniuk kell" - mondta Christos Kozyrakis, az elektrotechnika professzora számítástechnika a Stanford Egyetemen, a panelbeszélgetést megelőző bemutató során. A kódot olyan formában kell megírni, amely előre láthatóan viselkedik és skálázódik, mivel több mag is elérhetővé válik.

A fordítóprogramokat még okosabbnak kell lenni, és elég érzékelhetőnek kell lennie ahhoz, hogy a szálakat időben fel lehessen szüntetni, hogy a kimeneteket megfelelő sorrendben fogadják, mondta Kozyrakis.. Hibás kísérletek arra, hogy párhuzamot építsenek kódba, hibás szoftvert hozhatnak létre, ha bizonyos számításokat nem hajtanak végre bizonyos sorrendben. Ez egy probléma, amelyet általában versenyfeltételeknek neveznek. A kódolóknak is meg kell tanulniuk több programozási eszközt használni a finomabb párhuzamosság elérése érdekében.

"A programozáshoz nincs lusta fiú megközelítés" - mondta Patterson a konferencián.

A memória és a hálózati késleltetés szűk keresztmetszetet okozott az adatátviteli sebességben, ami megakadályozhatja a párhuzamos feladatok végrehajtásával elért teljesítményt. Különböző programozási eszközök vannak a különböző architektúrákhoz, amelyek megnehezítik a rendelkezésre álló összes hardver kihasználását.

A jelenleg elérhető számos párhuzamossági eszköz a processzorok és a grafikus feldolgozó egységek párhuzamos feldolgozási képességeinek kiaknázására szolgál a rendszer teljesítményének javítása érdekében. Az Apple, az Intel, az Nvidia és az Advanced Micro Devices az OpenCL-t támogató vállalatok közé tartozik, amelyek párhuzamos programozási környezetet támogatnak az Apple közelgő Mac OS X 10.6 operációs rendszerében, amelyet Snow Leopardnak is neveznek. Az OpenCL versenytársa a Microsoftnak, amely elősegíti a saját tulajdonú DirectX párhuzamos programozási eszközeit, valamint az Nvidia, amely a CUDA keretrendszert kínálja.

Az OpenCL tartalmaz egy C-szerű programozási nyelvet API-kkal (alkalmazásprogramozási interfészekkel) mint processzor magok és egyéb források. Az OpenCL segíthet a Mac OS gyorsabb dekódolásában a képpont feldolgozásán keresztül több processzor és grafikus feldolgozó egységet egy rendszerben.

A meglévő eszközök különböző szoftverkörnyezetekre irányulnak, és kihasználják a különböző erőforrásokat, mondta Patterson. A OpenCL például inkább a GPU-kon végrehajtott feladatok végrehajtására irányul. A saját modellek, mint például a DirectX, nehezen telepíthetők a heterogén számítástechnikai környezetek között, míg egyes modellek, mint az OpenCL, csak a GPU-kon alapuló specifikus környezetekhez alkalmazkodnak.

"Nem hiszem, hogy az OpenCL-t minden architektúrán át fogják magáévá tenni." Mondta Patterson. "Időközben meg kell próbálnunk más dolgokat kipróbálni", mint a programozási modellek javítása a leggyakrabban használt fejlesztőeszközökkel, mint a Ruby on Rails.

Bár a közönség tagjai rámutattak, hogy a párhuzamosság problémát jelentett A panelisták évtizedek óta azt állítják, hogy az egyetemek most új megközelítést alkalmaznak a többféle programozási eszközzel való együttműködésre a párhuzamosság érdekében. A kormányzat több évig tartó fejlesztési chip fejlesztés után is nagyobb figyelmet fordít a párhuzamos feldolgozásra a kapcsolódó programok finanszírozásával.

Kozyrakis szerint a Stanford létrehozott egy olyan laboratóriumot, amely 2012-ig "a tömegek párhuzamos alkalmazásfejlesztését kívánja megvalósítani" A kutatók együttműködnek olyan cégekkel, mint az Intel, az AMD, az IBM, a Sun, a Hewlett-Packard és az Nvidia.

A fejlesztők azonnali feladatvizsgálata lehet a meglévő régi kód párhuzamos átalakítása a modern chipek, a Berkeley Patterson mondott. Egy pár cég kínálja az automatikus párhuzamosságot, de az eredetileg szekvenciális végrehajtásra írt korábbi kód újraírása és összeállítása nagy kihívást jelenthet.

"Patterson azt mondja,