Chapel – rinnakkaislaskentaan erikoistunut ohjelmointikieli

Chapel – rinnakkaislaskentaan erikoistunut ohjelmointikieli

Chapel on moderni ohjelmointikieli rinnakkaislaskentaan. Se poikkeaa muista uusista ohjelmointikielistä Fortrania muistuttavalla syntaksillaan ja tehokkuudellaan. Kieli on käännettävä, mutta toisin kuin vaikkapa GNU-kääntäjissä, käyttäjän ei tarvitse osata kuvata laitteistoaan tarkasti käännösvaiheessa. Yksinkertainen -fast-optio riittää tuottamaan liki tuplaten nopeamman binäärin kuin GFortranin -Ofast -mavx2 -march=native.

Chapelista ei ole jaossa Windows-binäärejä, ja Linuxillekin se pitää itse lähdekoodista asentaa. Tämä voi olla syy siihen, että tämä blogikirjoitus on luultavasti ensimmäinen kerta, kun kuulet kielestä. Valmiiksi pakattuja asennuksia on vain Macille, kontille ja Crayn supertietokoneille. Vastineeksi asentaminen Linuxiin on kuitenkin erittäin yksinkertaista, ja Windows 10:ssä on WSL (Subsystem for Linux), jonne voisin kuvitella kielen sujahtavan helposti.
 

Mihin tarpeeseen?

Chapelia kannattaa käyttää, jos halutut kirjastot ovat kielen "Package Modules"-listassa. Erityisesti tarve Libcurlille eli tiedonsiirtokirjastolle – ohjelmalle, jonka avulla voi siirtää tiedostoja verkosta paikalliselle levylle tai toisin päin – voi iskeä nykyisin myös Fortran-koodareille, sillä verkossa olevaa tietoa tarvitsevat kaikki. Fortran on ajalta ennen internetiä, ja mielestäni on hiukan turhan perinteistä edelleen kirjoittaa sillä ohjelmia. 

Fortran poikkeaa syntaksiltaan merkittävästi uudemmista kielistä, mistä syystä siirtyminen uudempiin kieliin voi olla monelle vaikeaa. Chapel mahdollistaa siirtymän ja tuo samalla mukanaan ominaisuuksia, joita Fortranissa ei ole.

Chapelin suurin puute on sen rajoittuminen vain laskentaan. Lisp-ohjelmointikieltä joskus harrastaneena tiedän, että listalla voi tehdä kaiken, mutta vuonna 2018 kirjaston rajoittuminen listaan ei enää riitä. Itse en tulle Chapelia kirjoittamaan, koska käsittelen tietokannassa olevaa dataa, eikä kielessä ole tietokanta-ajureita. Tästä syystä en ole kirjoittanut Chapeliä riviäkään, ja kokemukseni rajoittuvat vain The Computer Language Benchmarks Game -pelin n-body Chapel -ohjelmaan. N-body on aurinkokuntasimulaattoriohjelma, jonka laskenta on erittäin perinteistä. Tästä syystä rinnakkaislaskennan mahdollistava Chapel oli ohjelmassa hyödyllinen.

 

Lisätietoa:

Chapel
Chapel GitHubissa

 

Kuva: Adobe Stock

 

Julkaistu alunperin 30.8.2018.

Lisää tästä aiheesta » Siirry sisältöihin ja uutisiin »

Pekka Järveläinen

Pekka Järveläinen on työskennellyt CSC:llä pitkään ohjelmistokehitysprojektien parissa.

pekka.jarvelanen@csc.fi