MIT:n tietojenkäsittelytieteen ja tekoälyn laboratorion (CSAIL) tutkijat ovat kehittäneet uuden ohjelmointikielen, joka voi mullistaa suurteho- eli HPC-laskennan optimoinnin. Exo 2 -niminen kieli kuuluu uuteen "user-schedulable language" (USL) -kategorian ohjelmointikieliin, jotka antavat kehittäjille enemmän hallintaa koodin suorituskyvyn optimoinnissa.
Toisin kuin perinteiset kääntäjät, jotka generoivat valtavia määriä optimoitua koodia automaattisesti, Exo 2 antaa ohjelmoijille mahdollisuuden itse määritellä optimointisäännöt. Tämä tarkoittaa, että koodi saadaan tehokkaammaksi vähemmällä vaivalla
Perinteiset HPC-kirjastot, kuten NVIDIA:n kehittämät laskentakirjastot, voivat sisältää satojatuhansia rivejä koodia optimoidakseen suorituskyvyn erilaisille laitteistoille. Exo 2 sen sijaan mahdollistaa saman suorituskyvyn vain muutamalla sadalla koodirivillä. Tämä tarkoittaa, että pienetkin kehittäjäryhmät voivat tuottaa tehokasta HPC-koodia ilman suurten yritysten resursseja.
Exo 2:n ytimessä on käyttäjän määriteltävä ajoitus (scheduling), joka mahdollistaa optimoidun koodin kirjoittamisen suoraan tietylle laitteistolle. Tämä eliminoi tarpeettomat optimointikerrokset, joita perinteiset kääntäjät generoivat tuottaessaan geneerisesti optimoitua koodia eri prosessorialustoille.
Exo 2:n keskeinen ero muihin HPC-optimointikieliin on sen uusi mekanismi, Cursors, joka tarjoaa vakaan viitepisteen objektikoodille ajon aikana. Tämä mahdollistaa koodin ajoituksen muuttamisen ilman, että ohjelmoijan täytyy huolehtia muuttuvista objektikoodin rakenteista.
Exo 2 mahdollistaa uudelleenkäytettävien ajoituskirjastojen luomisen, mikä vähentää manuaalista optimointityötä jopa satakertaisesti. MIT:n tutkijat rakensivat Exo 2:lla kirjaston, joka sisältää vain noin 2000 riviä koodia, mutta kattaa yli 80 korkean suorituskyvyn laskentaytimen optimoinnin. Tämä mahdollistaa kehittäjille nopeamman ja tehokkaamman työskentelyn ilman, että heidän tarvitsee kirjoittaa uutta optimoitua koodia jokaiselle laitteistoarkkitehtuurille erikseen.
Tutkimusryhmä aikoo laajentaa Exo 2:n tukea GPU-kiihdytetyille sovelluksille sekä parantaa kääntäjän analyysia oikeellisuuden, käännösajan ja ilmaisuvoiman osalta.