Chapel

Software kuvakaappaus:
Chapel
Ohjelmiston tiedot:
Versio: 1.3.0 Pre-Alpha
Lähetyksen päivämäärä: 11 May 15
Kehittäjä: Cray Inc.
Lupa: Vapaa
Suosio: 12

Rating: nan/5 (Total Votes: 0)

kappeli on uusi rinnakkainen ohjelmointikieli kehitetään Cray Inc. osana DARPA-johtama korkea tuottavuus Computing Systems ohjelma (HPCs). Kappeli on suunniteltu parantamaan tuottavuutta high-end tietokoneen käyttäjille samalla toimii kannettava rinnakkainen ohjelmointi malli, jota voidaan käyttää raaka klustereihin tai työpöydän moniytimisissä järjestelmiä. Kappeli pyrkii huomattavasti parantaa ohjelmoitavuus laajamittaisen rinnakkaisia ​​tietokoneita yhdistämällä tai pelaajan suorituskykyä ja siirrettävyys nykyisen ohjelmakauden malleja kuten MPI.
Kappeli App tukee monisäikeinen toteuttamisen mallin kautta korkean tason abstraktioita tietojen yhdenmukaisuutta, tehtävä rinnakkaisuus, samanaikaisuuden, ja sisäkkäisiä rinnakkaisuus. & Nbsp; kappelin maa tyyppiä avulla käyttäjät voivat määrittää ja syy noin sijoittamista tiedot ja tehtäviä kohde-arkkitehtuuri, jotta virittää ja paikkakunnalle. Kappeli tukee globaali-view aggregaatteja käyttäjän määrittämiä toteutukset, että liiketoiminnan hajautettujen tietojen rakenteita ilmaistava luonnollisella tavalla. Toisin kuin monet aikaisemmat korkeamman tason rinnakkaista kieliä, Kappeli on suunniteltu noin moniresoluutio filosofia, joka mahdollistaa käyttäjät voivat aluksi kirjoittamaan hyvin abstrakti koodin ja sitten vähitellen lisätä tarkemmin kunnes ne ovat lähellä konetta heidän tarpeet vaativat. Kappeli tukee koodin uudelleenkäyttö ja nopea prototyyppien kautta olio-suunnittelu, tyyppi päättelyyn, ja ominaisuudet geneeristen ohjelmointia.
Kappeli suunniteltiin periaatteiden pohjalta sen sijaan, laajentamalla olemassa olevia kieltä. Se on välttämätöntä, lohko jäsennelty kieltä, suunniteltu helppo oppia käyttäjille C, C ++, Fortran, Java, Perl, Matlab, ja muita suosittuja kieliä. Vaikka Chapel rakentuu käsitteistä ja syntaksin monista edellisestä kieliä, sen rinnakkaisia ​​piirteitä eniten vaikuttaa suoraan ZPL, High-Performance Fortran (HPF), ja Cray MTA & trade; / Cray XMT & trade; laajennuksia C ja Fortran.

Mikä on uusi tässä julkaisussa:

  • Highlights (katso alla lisätietoja)
  • split "def" avainsanan "proc" (menettelyihin) ja ITER (for iterators)
  • (katso "$ CHPL_HOME / util / muuntaa-defs --help" apua päivittää jo olemassa olevien)
  • lisätä "Julkaistut" jakelu- ja parantunut "Block-syklinen" jakelu
  • (ks & quot; Standard Distributions & quot; spec ja esimerkkejä / alukkeita / distributions.chpl)
  • lisätä yhden locale tehtävä kerroksittain Nanos ++ (BSC) ja Qthreads (Sandia)
  • (ks doc / README.tasks)
  • merkittävä jatkokehityksen valikoima semantiikan ja täytäntöönpano
  • (ks & quot; Semantic Muutokset / Muutokset Chapel Language & quot; alla yksityiskohta)
  • alkuvaiheen tukea haihtuvia tyyppejä: bool, int, uint, todellinen, imag
  • (ks doc / TechNote / README.volatile)
  • tuki extern consts ja luokat (osoittimet-to-structs)
  • (ks doc / TechNote / README.extern)
  • parannettu tuki tiedon rinnakkaislaskentaa Cray XMT
  • laajoja parannuksia näytteen koodit esimerkeissä / hakemistoon
  • (katso "esimerkki Koodit" alle ja esimerkkejä / README)
  • lisätä eniten koodia esimerkkejä spec uuteen esimerkkejä / hakemistoon
  • (katso esimerkit / spec / *)
  • lisätään tekninen huomautus kuvataan käyttäjän määrittelemän verkkotunnuksen kartan käyttöliittymä
  • (ks doc / TechNote / README.dsi)
  • laajoja päivityksiä kielimäärittelyt
  • (katso "Documentation" alla)
  • useita parannuksia runtime joon ja viestintä kerrosten
  • (ks & quot; Runtime Library muutokset & quot; alla)
  • Syntaktiset / nimeäminen muutokset
  • split "def" avainsanan "proc" (menettelyihin) ja ITER (for iterators)
  • (katso "$ CHPL_HOME / util / muuntaa-defs --help" apua päivittää jo olemassa olevien)
  • nimeksi "aritmeettinen" verkkotunnukset / taulukot on "suorakulmainen" verkkotunnukset / paneelit
  • lisätty tuki liukulukujen literaaleja muotoa "1.e ..."
  • (aiemmin vain "1e ..." ja "1.0e ..." tuettiin)
  • Semantic Muutokset / Muutokset Kappeli Language
  • useita parannuksia alueita (katso "Alueet" luku kieli spec):
  • lisäsi käsitteen yhdenmukaistaminen osoittamaan linjaus modulo | STRIDE |
  • lisätä "align" operaattori ja kyselyn vaihtelee täsmentää / query linjaus
  • (esim, "1..10 3 align 2 '= & gt;" 2, 5, 8' koska 2 == 5 == 8, mod 3)
  • määritellään == siitä valikoimia kannalta kokonaisluvun sekvenssien ne tuottavat
  • määriteltyjä ident (r1, r2) sanoa, R1 ja R2 ovat semanttisesti samanlaisia ​​
  • määriteltiin # k 'k: & lt; 0 siten & quot; laskea lopusta alueen & quot;
  • lisätä "ensimmäinen", "viimeinen", "alignedLow," alignedHigh "menetelmiä vaihtelee
  • (esim, "1..10 by -2 '= & gt; ensimmäinen == 10, viimeinen == 2, alignedLow = 2, alignedHigh = 10)
  • lisätty tuki useita uusia erilaisia ​​kyselyn toimintoja
  • (esim alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • lisätty tuki haihtuvien bool, int, uint, todellinen ja imag tyypit
  • (ks doc / TechNote / README.volatile)
  • lisätä end-of-file tarkistaa tiedostotyypin
  • (esim., "Taas! Infile.eof ...")
  • poistettu tukea hoitoon paluuta "in iteraattori kuin" tuotto "
  • (esim muutos "iter foo () {return x;}" on "iter foo () {saanto x, paluu,}")
  • lisätä tukea löytymistä moduulien ensin "use'-ta niitä
  • (esim moduuli M1 {var x ...} moduuli M2 {... M1.x ...} on nyt juridinen)
  • lisätä callStackSize kyselyn locale tyyppi
  • (esim, "here.callStackSize" palauttaa kutsupino kokoa paikanne)
  • poistettiin aiemmin vaadittu puolipistettä lopusta enum ilmoitusten
  • (esim, "ENUM värit {punainen, sininen, vihreä}" on nyt juridinen; aiemmin tarvitaan ";")
  • lisätty tuki yksittäisestä lopussa pilkku lopussa enum luettelot
  • (esim, "ENUM värit {punainen, sininen, vihreä,}" on nyt juridinen)
  • poistettu tuki +/- toimijoille suorakaiteen aloilla; käyttöön Käännä ()
  • äskettäin käyttöön otettu Ominaisuudet
  • täytäntöön == /! = Suorakulmaisille, yhdistys, ja harva verkkotunnukset
  • Tavallinen jakaminen
  • lisäsi ensimmäisen luonnoksen "Julkaistut" jakelu tietojen tallentamista redundanttisesti
  • (katso esimerkit / alukkeita / distributions.chpl)
  • parannetun "Block-syklinen", riittää asianmukaisesti täytäntöön HPCC PTRANS ja HPL
  • (katso esimerkit / HPCC / ptrans.chpl, hpl.chpl; esimerkkejä / alukkeita / distributions.chpl)
  • poistaa irtisanomisten laatuvaatimuksissa johtajan iterators verkkotunnusten välillä / paneelit
  • Standard Moduulit
  • lisätä INFINITY ja NAN vakiot Math.chpl moduuli
  • (katso "Math" alla & quot; Standard Modules & quot; kielellä spec)
  • lisätä isinf () ja isfinite () testi rutiinit Math.chpl moduuli
  • (katso "Math" alla & quot; Standard Modules & quot; kielellä spec)
  • lisätä puoli tusinaa enemmän rutiineja GMP.chpl moduuli
  • Documentation
  • lisätty uusi tekninen huomautus kuvataan käyttäjän määrittelemän verkkotunnuksen kartan käyttöliittymä
  • (ks doc / TechNote / README.dsi)
  • tehnyt monia parannuksia kielimäärittelyt
  • suurempia muutoksia Verkkotunnukset lukuun parantaa selkeyttä / tarkkuus
  • parantunut ja yhtenäinen rakenne Recordsin ja luokat luvut
  • suurempia muutoksia Domain Maps luvun parantaa selkeyttä / tarkkuus
  • nimettiin esimerkiksi koodeja tarjota rajat esimerkkeihin viitaten / spec / ohjelmat
  • selvensi laillisuuden etiketin / tauko / jatka rinnan silmukoita
  • päivitetty kuvauksia luetaan [ln] / kirjoittaa [ln]
  • Kiinteät joitakin ongelmia tiedostojen aloilla tilaus
  • alustanut selityksessä "kirja" in LaTeX
  • erilaisia ​​pieniä korjauksia kirjoitusvirheitä / virheitä
  • parantamalla määritelmiä / kuvauksia monista ehdoista
  • lisätä dokumentointi locale.name
  • ja monet muut muutokset ...
  • päivitetään nopeasti viiteasiakirja sisällyttää def- & gt; proc / iter muutos, kohdista op.
  • rewrote / organisoitiin README.extern selventää selityksiä ja tuoda ajan tasalla
  • lisätä README kuvataan "paikallinen" lausuman (doc / TechNote / README.local)
  • lisätä LUEMINUT kuvaava haihtuvaa tyyppiä (doc / TechNote / README.volatile)
  • päivitti README.comm-diagnostiikan mainita nopeasti haarukka tilastoista
  • päivitetyt eri README-tiedostoja
  • Esimerkki Koodit
  • sijoitetaan eniten koodia esimerkkejä kielen spec. uuteen spec / alihakemisto
  • paransi alukkeita / hakemistoon:
  • lisätty uusi pohjamaali käyttää menettelyjä (alukkeita / procedures.chpl)
  • lisätä perus pohjamaali verkkotunnuksille (alukkeiden / domains.chpl)
  • nimeksi locales primerin locales.chpl ja parantanut sen
  • paransi jakaumat pohjamaali ja lisäsi Block-Sykliset ja replikoitu käyttötarkoitukset
  • päivitti alue pohjamaali (alukkeiden / range.chpl)
  • paransi iteraattorit pohjamaali (alukkeiden / iterators.chpl)
  • paransi vähennykset pohjamaali (alukkeiden / reductions.chpl)
  • lisätä getCurrentTime () ja ajastimet pohjamaali (alukkeiden / timers.chpl)
  • lisätä kuvauksia tyypin aliaksia ja config tyypit muuttujien pohjamaali
  • (ks alukkeita / variables.chpl)
  • parantunut HPCC / vertailuarvojen hakemistoon
  • lisätään ensimmäisen version HPCC PTRANS ja HPCC / hakemistoon (ptrans.chpl)
  • lisätä puhtaampi versio HPCC HPL ja HPCC / hakemistoon (hpl.chpl)
  • lisätä variantteja / alihakemisto esimerkkejä / HPCC näytteille muita toimintatapoja
  • lisätä stream-promoted.chpl osoittamaan käytön edistäminen maailmanlaajuisissa STREAM Triad
  • lisätä ra-cleanloop.chpl näyttää puhtaampaa (mutta tällä hetkellä hitaampi) RA kernel
  • parani huipputason esimerkkejä:
  • nimeksi nykyisiä & quot; hei, maailma & quot; esimerkkejä ehdottaa loogisessa lukemisjärjestyksen
  • (katso esimerkit / hei * .chpl)
  • lisätä tietojen rinnakkainen ja hajautettu tietojen samansuuntaiset hei, maailma esimerkkejä
  • (katso esimerkit / hello3-datapar.chpl, esimerkit / hello4-datapar-dist.chpl)
  • lisätä kommentteja eri hei, maailma esimerkkejä (esimerkkejä / hei * .chpl)
  • päivitetty kaikki esimerkkejä kielenkäytössä semantiikan
  • käyttää "proc" / "iter" eikä "def"
  • päivittyvät uudenlaisia ​​semantiikan
  • Platform huomautuksia
  • for Cray XT / Cray XE, paransi aprun ja PBS-aprun kantoraketit
  • (ks & quot; Launcher huomautuksia & quot; alla)
  • for Cray XMT, lisätty tuki rinnakkaista silmukkaa yli alueilla
  • for Cray XMT, lisätään sukupolven noalias Pragmat ja forall loop muuttujiin
  • lisätty tuki BSC: n Marenostrum kuten dokumentit ja erityinen kantoraketti
  • (ks doc / alustat / README.marenostrum)
  • Launcher huomautuksia
  • lisätä kantoraketti-erityisiä vaihtoehtoja --help valmiudet
  • parantunut leviämistä exit tilakoodeista kautta kantoraketit
  • muutettiin kantorakettien tukea exec-pohjainen (eikä järjestelmä-pohjainen) komentoja
  • loi kantoraketit käyttävät "linkitys" eikä järjestelmä ('rm') poistaa väliaikaiset tiedostot
  • lisätä kantoraketti BSC: n Marenostrum
  • vähensi määrää tilapäistiedostot kaapata tuotos "järjestelmän" komennoilla
  • aprun kantoraketti parannuksia:
  • lisätä --cc lipun määrittää CPU tehtävän w / solmussa
  • lisätään q lipun ajaa kantoraketti hiljaisessa tilassa
  • lisätä debug valmiudet kautta CHPL_LAUNCHER_DEBUG pitää tmp tiedostoja noin
  • PBS-aprun kantoraketti parannuksia:
  • lisätä --cc lipun määrittää CPU tehtävän w / solmussa
  • lisätä debug valmiudet kautta CHPL_LAUNCHER_DEBUG pitää tmp tiedostoja noin
  • siivottu lähdön päästä eroon joistakin ylimääräisiä tulostus
  • teki kantoraketti tukea meidän testausjärjestelmä
  • lisätä --walltime ja --queue lippuja kantorakettien vaihtoehdoiksi env. vars.
  • Compiler muutokset
  • teki kääntäjä print "true" / "vääriä" out tyypin allekirjoitusten sijasta 1/0
  • lisätä config param 'noRefCount "poistaa viittaus laskenta (saattaa vuotaa muisti)
  • Compiler Liput
  • lisätä --print-callstack vs. virhelippu näyttää, mitä johti huono puhelun
  • lisätä --no-Codegen lippu ohittaa koodin sukupolven ja yhdistää vaihe
  • yhteentoimivuutta muutokset
  • lisätty tuki extern C & quot; luokat & quot; (Osoitin-to-struct tyypit)
  • lisätty tuki extern consts (ks README.extern)
  • Virheilmoitus parantaminen
  • lisätään varoitus orvoksi "käyttöä" lausunnot ulkopuolella julisti moduulien
  • (esim, "käytä M1; moduulia M2 {} 'tulee olla tyypillisesti" moduuli M2 {käytön M1;}')
  • teki parse-ajan virheilmoitus käyttää standardia "tiedostonimi: lineno:" muotoa
  • syntyy virheilmoitus viittaa luokan nimen ensisijainen keino
  • (esim, "class C {def Cm () {...}}" Nyt näyttää virheilmoituksen)
  • Virhekorjauksia / New Semantic Tarkastukset (vanha semantiikan)
  • esti config tyypit asetetaan käyttäen suoritusaika komentorivin liput
  • kiinteä kääntäjä kykyä käsitellä liittojen ilman kenttiä
  • kiinteä minloc / maxloc vähennyksiä käsittelemään tyhjiä alueita / subranges arvojen
  • Kiinteä vika, jossa polku argumentti tiedostoon rakentajille ohitettiin
  • teki tyhjäksi ammattiliitot toimivat oikein
  • kiinteitä ylivuoto-ongelman chunking up valikoimia jakeluun / rinnakkaisuuteen
  • Kiinteä vika, johon tukea tyhjien extern tietuetyyppien
  • Kiinteä vika liittyy extern jotka palauttavat tietueet
  • Kiinteä vika liittyy kopiointi ulkoiseen kirjaa
  • kiinteä täytäntöönpano +/- toimijoiden yhdistys / harvaa verkkotunnukset
  • Kiinteä vika liittyvä tiedostonimi-pohjainen moduuli nimiä, jotka sisältävät useita ". N
  • lisätä virheilmoitukset expand / ulko / sisustus on epäsäännöllinen verkkotunnuksia
  • lisätä virheen rakentajille / purkajat joiden määritelty palautuva
  • kiinnitetty pari bugeja liittyvien "paastota" optimointi
  • lisätä tarkistaa vastaan ​​rakentamalla luokat täsmentämättä geneerinen kentät
  • Pakkaus muutokset
  • lisätä syntaksin korostustyökalu koodi GNU source-highlight
  • (ks etc / source-highlight / README)
  • parantunut emacs väritys tuki version 22.x
  • (ks etc / emacs / README)
  • päivityksistä vim syntaksin väritys vastaamaan uuden "proc" / "iter" avainsanat
  • (ks etc / vim / README)
  • lisätä skripti muuttamalla koodien "käyttöä" def "muotoon" ITER "/" proc "
  • (ks $ CHPL_HOME / util / muuntaa-defs)
  • poistettu multirealm esimerkkejä ja dokumentaatiota toistaiseksi
  • Kolmannen osapuolen Software Muutokset
  • päivitetty GASNet versioon 1.16.1
  • lisätä kopiot BSC: n Nanos ++ ja Sandia Qthreads
  • (katso kolmannen osapuolen / README)
  • teki jälkiasennus askel GASNet joka muuttuu absoluuttisesti polkuja suhteellinen
  • poistettu PVM toistaiseksi puutteesta johtuvat
  • Runtime Library muutokset
  • lisätä yhden locale tehtävä kerroksittain Nanos ++ (BSC) ja Qthreads (Sandia)
  • useita parannuksia runtime joon kerros:
  • lisäsi uuden käyttöliittymän siitä joon kerros puhelun chpl_main ()
  • muuttunut delegointi init toiminto ottaa maxThreadsPerLocale / callStackSize args
  • lisätä tehtävän tuotto kyky joon kerrosrajapinta
  • parani runtime-koodi välttää käyttämällä sync vars ennen alustamista joon
  • poistettu makro-muotoiseen muotoon joon liitäntä; tavallisilla nimien sijaan
  • yhtenäinen nimeäminen kaikkien tehtävän kerroksen rutiineja chpl_sync _ * () ja chpl_task _ * ()
  • poistettiin vaatimus toteuttaa yhden muuttujan käyttöliittymä
  • muutti päättymisen viestiketjut FIFO joon kerroksesta pthreads ketjuttaminen
  • yksinkertaistettu täytäntöönpanoa sync muuttujien pthread ketjuttaminen kerroksen
  • siirtyi vastuu kierre laskee välillä FIFO joon ja pthread ketjuttaminen
  • useita parannuksia runtime liikennekerroksen:
  • uudelleen viestinnän liitäntä tukee pituuteen / type argumentteja
  • lisätä käyttöliittymä estoton saavat toimintaansa comm. interface
  • unified kaikki kauko päästä toimintojen käyttö CHPL_COMM_GET () makro
  • refactored / nimeksi kommunikaatiorajapinnan otsikot
  • Testing System
  • huomattavasti parantunut suorituskyvyn testaus ja kuvaajat ominaisuudet
  • (katso kommentit edessä start_test dokumentointia)
  • paransi testausjärjestelmä tuki siivoaminen itse
  • lisätä mahdollisuus välttää käyttämällä mitä tahansa epäsuora vakiosyötteen
  • lisätä mahdollisuus tarjota koko järjestelmän prediff vaihtoehto
  • lisätä kykyä käyttää kantoraketti äidinkielen Aikakatkaisutoimintoa sijaan Pythonin
  • paransi miten testausjärjestelmä tappaa testi, joka kertaa ulos
  • Kiinteä vika, jossa .preexec tiedostoja vain toimi, jos "." oli teidän tiellä
  • Internal
  • lisätä --break vs. id kääntäjä lippu kehittäjille paikantaa ASAT solmuun luo
  • järjestettyä paremmin util / hakemiston sisältöä
  • muuttanut tapaa versionumerot lasketaan / näytetään SVN-pohjainen käyttäjille
  • lisätty tuki tehtävä- / kierre moduulin koodi
  • lisätä kyky tulostaa AST lukemat jaetaan kullekin pass
  • lisäsi uuden gdb alias Compiler --gdb: "LOC" tulostaa AST solmun sijaintia
  • parantanut täytäntöönpanoa Pragmat / liput välttää virhetilanteissa
  • poistaa useita esimerkkejä turhaa merkkijonon vertailuja kääntäjä
  • poistettu virhealtista käyttö CHPL_TASKS ja CHPL_THREADS kuin esiprosessorin symbolit
  • lisätä bestPractices dokumentaatio kehittäjille (ei sisälly release)
  • muuttanut sisäisiä munging of "=" ja "==" muotoon "ASSIGN" ja "PLUS" vastaavasti
  • lisätä --print-id-on-error kehittäjä lipun tulostaa ASAT ID virheitä
  • paransi tiukkuus C ++ prototyypin tarkkailun
  • lisätä ulkoisia tukija sopimuksia SVN puun (ei release)
  • lisätään käsite sisäisen tyyppejä, joita kääntäjä, mutta ei käyttäjä

Vastaavia ohjelmistoja

STklos
STklos

15 Apr 15

Ruby
Ruby

17 Aug 18

SmartEiffel
SmartEiffel

3 Jun 15

Kommentit Chapel

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!