Nový přístup k programování umožní zrychlení software

Nový přístup k programování umožní zrychlení software

Výzkumný pracovník ze Státní univerzity v Severní Karolíně (NCSU) přišel na nový přístup k softwarovému vývoji, který dovoluje běžné počítačové programy spouštět o 20 % rychleji a pravděpodobně zapracovat nová bezpečnostní opatření.

Výzkumník totiž přišel na způsob, jak spouštět různé části programů - včetně software jako textové editory či webové prohlížeče - najednou, což umožní efektivnější práci programu. A jak to udělal?

Princip je velmi jednoduchý. Jak jistě víte, k tomu aby bylo možné využít více procesorů, je třeba mít aplikaci, která je k tomuto účelu napsána. Od aplikace se vyžaduje, aby rozdělila svou práci do samostatných úloh (threadů, vláken), a tyto úlohy jsou pak zpracovávány jednotlivými jádry procesoru. Bohužel některé aplikace jako textové editory či webové prohlížeče nelze zcela efektivně tímto způsobem využít, protože jednotlivé kroky závisí na výstupu předchozího (zjednodušeně řečeno, mají sériovou logiku). V Severní Karolíně však přišli na způsob jak paralelizovat i tyto aplikace.

Každý počítačový program provádí několik kroků. Provede výpočet, pak provede funkce pro správu paměti - připraví paměť pro data nebo ji uvolní, pokud ji již nepotřebuje. Tyto kroky se velmi často opakují. A u obtížně paralizovatelných programů jsou tyto kroky prováděny na jednom jádru.

"Odstranili jsme kroky pro správu paměti z procesu a spustili jako zvláštní úlohu," říká Dr. Yan Solihin profesor elektrického a počítačového inženýrství na NCSU, vedoucí tohoto výzkumného projektu, a spoluautor dokumentů které popisují tento výzkum. Tímto způsobem rozdělení výpočtové úlohy a úlohy správy paměti se mohou spouštět najednou, což dovoluje programu fungovat efektivněji.

"Díky spouštění funkcí paměťového managementu ve zvláštním vláknu, tyto těžko paralizovatelné úlohy mohou fungovat přibližně o 20 % rychleji." říká Solihin. "To otevírá dveře vývoji nových paměťových funkcí, které mohou identifikovat anomálie v chování programu nebo provádět další bezpečnostní opatření. Dříve tyto funkce byly velmi náročné a zpomalovaly celkový výkon programů."

Za pomoci této techniky, když je potřeba spustil funkci pro alokaci paměti, "výpočtové vláknu kontaktujte paměťové vlákno - efektivně ho požádá o alokaci paměťového prostoru a aby oznámilo výpočtovému vláknu kde toto místo bude vytvořeno," říká Devesh Tiwari, Ph.D. student na NCSU a hlavní autor dokumentace. "Pomocí stejného principu, pokud již výpočtové vláknu paměť nepotřebuje, informuje paměťový management, že příslušná paměťová oblast může být uvolněna."

Dokumentace k projektu "MMT: Exploiting Fine-Grained Parallelism in Dynamic Memory Management" bude prezentován 21. dubna na IEEE International Parallel and Distributed Processing Symposiu v Atlantě. Výzkum byl dotován National Science Foundation. Na dokumentu spolupracovali Tiwari, Solihin, Sanghoon Lee a Dr. James Tuck.

Tohle je evidentně věc, která by šla implementovat do Applovského Grand Dispatcheru. Otázkou je, jak rychle se ji podaří implementovat. V minulosti měl Apple velké problémy přijímat myšlenky z venčí, protože se domníval že on sám to umí lépe. Typickým příkladem je vývoj druhé generace disketové mechaniky, která nebyla dokončena jen díky tomu, že by trvalo příliš dlouho ji vyrobit a Sony již měla jednu k dispozici. Viz článek Dohoda mezi Apple a Sony.

Teprve s příchodem Steva Jobse (který mezi tím nabral zkušenosti) Apple začal chápat, že je třeba přejímat i jiné myšlenky a nemá smysl znovu objevovat kolo.

Poslat Nový přístup k programování umožní zrychlení software na facebook
Publikováno 30.11.2009
 

Změna barev | Autorská práva | Kontakt | Podpora | RSS kanály
© 2006 Gandalf, Design by Mirek
Creative Commons License