Kommutativitás-elemzés; EWSTranslate
Összegzés
A párhuzamos gépek a teljesítmény jelentős növekedését ígérik, lehetővé téve több processzor számára, hogy egyszerre futtassák a számítás különböző részeit. A fejlesztők hagyományosan kifejezetten párhuzamos nyelveket használó alkalmazásokat fejlesztettek ki párhuzamos gépek számára. A soros programozási nyelvektől eltérően a kifejezetten párhuzamos nyelveknek van egy olyan komplex programozási modelljük, amelyet olyan jelenségek jellemeznek, mint a blokkolás, a nem determinisztikus végrehajtás és az üzenetgépek esetében az adatfolyam közvetlen kezelése számítással. A szekvenciális imperatív programozási paradigma nyilvánvaló programozható előnyei tehát a soros programok automatikus párhuzamosítására szolgáló elemzési és fordítói technikák fejlesztését inspirálták.

A kommutativitás-elemzés egy statikus elemzési keretrendszer a transzfer műveletek detektálására. Két művelet mozog, ha ugyanazt az eredményt generálja, függetlenül a végrehajtás sorrendjétől. A kommutativitás-elemzés megszünteti az adatfüggőségen alapuló meglévő megközelítések számos korlátját, ahelyett, hogy megtartaná az egyes leolvasások relatív sorrendjét és egyedi memória szavakkal írna, a kommutativitás-elemzés mind az adatokat, mind a számítást nagy szemcseegységekben összesíti. Ezután statikusan elemezze a számítást ezzel a részletességgel, hogy megtudja, a kimeneti számítás részei mikor hoznak ugyanazt az eredményt, függetlenül a végrehajtás sorrendjétől. Ha az összes művelet egy adott számítástechnikai transzfer végrehajtásához szükséges, akkor a fordító automatikusan generál párhuzamos kódot.
Ez a megközelítés érdekes tulajdonságokkal rendelkezik. Mivel a kapcsolási elemzés nem a manipulált adatstruktúrák topológiájára vonatkozó információkon alapul, a kapcsolási elemzést használó fordítónak nem kell elemeznie a kód azon részeit, amelyek felépítik az adatstruktúrát. A kapcsolhatósági elemzés ezért alkalmas a hiányos számításokhoz, például a tartós adatokat kezelő alkalmazásokhoz (pl. Objektumorientált adatbázis-alkalmazások) vagy a földrajzilag szétszórt adatokat manipuláló alkalmazásokhoz (például mobil számítások a világhálón). ). Ezekben az esetekben az adatstruktúrát eredetileg létrehozó kód nem érhető el, vagy már nem létezik. A kommutativitás-elemzés különösen alkalmas a grafikonokat manipuláló számításokra is.
Ezek a kísérleti eredmények nagyon biztatóak. Ezek az alkalmazások nagyon dinamikus jellegűek - vagy kifinomult mutatóalapú adatszerkezetek manipulálásával, vagy rendkívül hozzáférhető adatelérési modellek bemutatásával. A durva szemcsékkel való párhuzamosság kiaknázása az ilyen jellemzőkkel rendelkező alkalmazásokban nagyon nehéz problémának bizonyult. Nem ismerünk olyan más összeállítási vagy összeállítási technikát, amely jelentős mennyiségű egyidejűséget vonhatna ki ezekhez a számításokhoz. Sőt, a pozitív kísérleti eredmények konkrét bizonyítékot szolgáltatnak a kommutativitás-elemzés mint az automatikus párhuzamosítás-összeállítás technikájának gyakorlati jelentőségére.