Chapel

Software skärmdump:
Chapel
Mjukvaruinformation:
Version: 1.3.0 Pre-Alpha
Ladda upp dagen: 11 May 15
Utvecklare: Cray Inc.
Licens: Gratis
Popularitet: 12

Rating: nan/5 (Total Votes: 0)

Chapel är en ny parallell programmeringsspråk som utvecklats av Cray Inc. som en del av DARPA-ledda programmet Hög produktivitet datorsystem (HPC). Chapel syftar till att förbättra produktiviteten i high-end datoranvändare men också fungera som en portabel parallellprogrammeringsmodell som kan användas på råvarukluster eller stationära multicoresystem. Chapel strävar efter att avsevärt förbättra programmerbarhet av storskaliga parallelldatorer samtidigt matcha eller slå prestanda och bärbarhet av nuvarande programmeringsmodeller som MPI.
Kapellet app stöder en flertrådade modell utförande via hög nivå abstraktioner för dataparallellitet, uppgift parallellism, samtidighet och kapslade parallellism. & Nbsp; Chapel locale typ gör det möjligt för användare att ange och resonera kring placeringen av data och uppgifter om en målarkitektur för att ställa till orten. Chapel stöder global datavyn aggregat med användardefinierade implementeringar tillåter operationer på distribuerade datastrukturer som ska uttryckas på ett naturligt sätt. Till skillnad från många tidigare parallella språk på högre nivå, är Chapel konstruerad kring en flera upplösningar filosofi, tillåter användare att initialt skriva mycket abstrakt kod och sedan stegvis lägga till mer i detalj, tills de är så nära maskinen som deras behov kräver. Chapel stöder återanvändning kod och rapid prototyping via objektorienterad design, typhärledning och funktioner för generisk programmering.
Chapel designades från första principer snarare än genom att utöka en befintlig språk. Det är en tvingande block strukturerat språk, utformad för att vara lätt att lära sig för användare av C, C ++, Fortran, Java, Perl, Matlab, och andra populära språk. Medan Chapel bygger på begrepp och syntax från många tidigare språk, är dess parallella funktioner mest direkt påverkas av ZPL, High-Performance Fortran (HPF), och Cray MTA & trade; / Cray XMT & trade; förlängningar C och Fortran

Vad är nytt i den här versionen:.

  • Highlights (se nedan för detaljer)
  • split "def" sökord i "proc" (förfaranden) och "ITER" (för iteratorer)
  • (se "$ CHPL_HOME / util / konvertera-defs help" för att få hjälp att uppdatera befintliga koder)
  • tillade "Replikerad" distribution och förbättrad "Block-cyklisk" fördelning
  • (se & quot; Standard Utdelning & quot; i spec och exempel / primers / distributions.chpl)
  • lagt enda locale uppgift lager för Nanos ++ (BSC) och Qthreads (Sandia)
  • (se doc / README.tasks)
  • stor omarbetning av avstånds semantik och genomförande
  • (se & quot; semantiska Ändringar / Ändringar Chapel Språk & quot; nedan för detaljer)
  • inledande stöd för flyktiga typer: bool, int, uint, real, imag
  • (se doc / Tech / README.volatile)
  • stöd för Extern consts och klasser (pekare-till-structs)
  • (se doc / Tech / README.extern)
  • förbättrat stöd för dataparallellitet på Cray XMT
  • omfattande förbättringar av provkoder i examples / katalogen
  • (se "Exempel Koder" nedan och exempel / README)
  • tillagda Mest kodexempel från spec till ett nytt exempel / katalog
  • (se exempel / spec / *)
  • lagt till en teknisk anmärkning beskriver användardefinierade domän kartgränssnittet
  • (se doc / Tech / README.dsi)
  • omfattande uppdateringar till språkspecifikationen
  • (se "Dokumentation" nedan)
  • flera förbättringar av runtime tasking och kommunikations lager
  • (se & quot; Programbiblioteket ändringar & quot; nedan)
  • Syntaktisk / Namnge ändringar
  • split "def" sökord i "proc" (förfaranden) och "ITER" (för iteratorer)
  • (se "$ CHPL_HOME / util / konvertera-defs help" för att få hjälp att uppdatera befintliga koder)
  • bytt namn "aritmetiska domäner / matriser för" rektangulära "domäner / arrayer
  • lagt till stöd för flyttals literals av formen "1.e ..."
  • (tidigare, bara "1e ..." och "1.0e ..." stöddes)
  • semantiska Ändringar / Ändringar Chapel Språk
  • flera förbättringar intervall (se "Ranges kapitlet i språket spec):
  • lagt ett koncept av anpassning för att ange en inriktning modulo | steg |
  • lagt till ett "align operatör och fråga till intervall för att ange / query inriktning
  • (t.ex. "1..10 med 3 align 2 '= & gt;" 2, 5, 8' sedan 2 == 5 == 8, mod 3)
  • definierat == på intervall i fråga om heltal sekvenser de genererar
  • definierat Ident (R1, R2) att säga om r1 och r2 är semantiskt identiska
  • definierade "# k" för k & lt; 0 så sätt & quot; räkna från slutet av intervallet & quot;
  • tillade "första", "sista", "alignedLow" alignedHigh "metoder till intervall
  • (t.ex. "1..10 med -2 ​​'= & gt; första == 10, sista == 2, alignedLow = 2, alignedHigh = 10)
  • lagt till stöd för en mängd nya sortiment fråge funktioner
  • (t.ex. alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • lagt till stöd för flyktiga bool, int, uint, real, och imag typer
  • (se doc / Tech / README.volatile)
  • lagt till en end-of-file check till filtypen
  • (t ex., "Medan! Infile.eof ...")
  • bort stöd för behandling av "återvändande" i iterator som en "avkastning"
  • (t.ex. förändring "iter foo () {return x;}" till "iter foo () {avkastning x; avkastning;} ')
  • lagt till stöd för refererar moduler utan att först "use'-ing dem
  • (t.ex. modul M1 {var x ...} modul M2 {... M1.x ...} är nu lagligt)
  • lagt till en callStackSize förfrågan till typ locale
  • (t.ex. "here.callStackSize" återgår anropsstacken storleken på den aktuella språk)
  • bort tidigare krävs semikolon från slutet av ENUM deklarationer
  • (t.ex. "enum färger {röd, blå, grön} är nu laglig, tidigare behövs", ")
  • lagt till stöd för en enda avslutande kommatecken i slutet av ENUM listor
  • (t.ex. "enum färger {röd, blå, grön,}" är nu lagligt)
  • bort stöd för +/- operatörer på rektangulära domäner; använda translate ()
  • nyligen implementerade funktioner
  • förs == /! = För rektangulära, associativ och glesa domäner
  • Standardfördel
  • lagt en första utkast "Replikerad" fördelning för att lagra data redundant
  • (se exempel / primers / distributions.chpl)
  • förbättrad "Block-cyklisk", är tillräcklig för att korrekt genomföra HPCC PTRANS och HPL
  • (se exempel / HPCC / ptrans.chpl, hpl.chpl, exempel / primers / distributions.chpl)
  • bort redundans i specifikation av ledar iteratorer mellan domäner / arrayer
  • standardmoduler
  • sattes oändligheten och NAN konstanter till Math.chpl modul
  • (se "Math" under & quot; Standard Moduler & quot; i språk spec)
  • lagt isinf () och isFinite () testrutiner till Math.chpl modul
  • (se "Math" under & quot; Standard Moduler & quot; i språk spec)
  • lagt ett halvt dussin fler rutiner till GMP.chpl modul
  • Dokumentation
  • lagt till en ny teknisk anmärkning beskriver användardefinierade domän kartgränssnittet
  • (se doc / Tech / README.dsi)
  • gjort många förbättringar till språkspecifikationen
  • stora revideringar kapitlet Domäner att öka tydligheten / noggrannhet
  • förbättrats och enhetlig struktur Rekord och Klasser kapitel
  • stora revideringar kapitlet Kartor Domain att öka tydligheten / noggrannhet
  • som heter exempel koder för att tillhandahålla tjänster över hänvisning till exempel / spec / program
  • klarlagligheten av etiketten / paus / fortsätta i parallella slingor
  • uppdaterade beskrivningar av läst [ln] / skriva [ln]
  • fast vissa problem i filen fält beställning
  • formateras specifikationen som en "bok" i LaTeX
  • olika smärre korrigeringar av stavfel / misstag
  • förbättrade definitioner / beskrivningar av flera termer
  • lagt dokumentation av locale.name
  • och många andra förändringar ...
  • uppdaterade snabbreferensdokument att inkludera defi- & gt; proc / iter förändring, rikta op
  • .
  • skrev om / omorganiseras README.extern att klargöra förklaringar och få upp aktuell
  • lagt till en README som beskriver "lokala" uttalande (dok / Tech / README.local)
  • lagt till en README beskriver flyktiga typer (doc / Tech / README.volatile)
  • uppdaterade README.comm-diagnostik för att nämna snabba gaffel statistik
  • uppdaterade olika README-filer
  • Exempel Koder
  • placerade flesta kodexempel från språket spec. till en ny spec / katalogen
  • förbättrade primers / katalogen:
  • lagt till en ny primer för användning av förfaranden (primers / procedures.chpl)
  • lagt till en grundläggande primer för domäner (primers / domains.chpl)
  • döptes de lokaler primer för att locales.chpl och förbättrat det
  • förbättrat fördel primer och lagt Block-Cykliska och replik användningsområden
  • uppdaterat sortiment primer (primers / range.chpl)
  • förbättrat iteratorer primer (primers / iterators.chpl)
  • förbättrat minskningar primer (primers / reductions.chpl)
  • lagt getCurrentTime () till timers primer (primrar / timers.chpl)
  • lagt beskrivningar av denna typ alias och config typer att variabler primer
  • (se primers / variables.chpl)
  • förbättrad HPCC / riktmärken katalog
  • lagt första versionen av HPCC PTRANS till HPCC / katalogen (ptrans.chpl)
  • lagt renare version av HPCC HPL till HPCC / katalogen (hpl.chpl)
  • lagt till en varianter / katalogen till exempel / HPCC att uppvisa andra metoder
  • adderad ström-promoted.chpl att visa användningen av marknadsföring i den globala STREAM Triad
  • lagt ra-cleanloop.chpl att visa renare (men för närvarande långsammare) RA kärna
  • förbättrade exempel på högsta nivå:
  • omdöpt befintliga & quot; Hej, världen & quot; exempel att föreslå en logisk läsordning
  • (se exempel / hello * .chpl)
  • tillagda data parallella och distribuerade uppgifter parallella hej, världs exempel
  • (se exempel / hello3-datapar.chpl, exempel / hello4-datapar-dist.chpl)
  • läggas kommentarer till de olika hej, världs exempel (exempel / hello * .chpl)
  • uppdateras alla exempel på aktuella språk semantik
  • Använd "proc" / "ITER" snarare än "def"
  • uppdatering för att återspegla nya sortiment semantik
  • Plattformsspecifika Notes
  • för Cray XT / Cray XE, förbättrat aprun och PBS-aprun bärraketer
  • (se & quot; Launcher specifika anteckningar & quot; nedan)
  • för Cray XMT, lagt till stöd för parallella slingor över intervall
  • för Cray XMT, tillade generation noalias pragmas till forall sling variabler
  • lagt till stöd för BSC: s Marenostrum inklusive dokumentation och en särskild launcher
  • (se doc / plattformar / README.marenostrum)
  • Launcher specifika anteckningar
  • läggas launcher specifika alternativ för att --help kapacitet
  • förbättrad spridning av exit statuskoder genom bärraketer
  • bytte bärraketer för att stödja exec baserade (snarare än systembaserad) kommandon
  • gjort bärraketer använda "unlink" snarare än systemet (RM) för att ta bort temporära filer
  • lagt till en launcher för BSC: s Marenostrum
  • minskat antal temporära filer som används för att fånga produktionen av "system" kommandon
  • launcher förbättringar aprun:
  • lagt till en --cc flagga för att ange CPU uppdrag w / i en nod
  • lagt till en -q flagga för att köra launcher i tyst läge
  • lagt debug förmåga via CHPL_LAUNCHER_DEBUG att hålla tmp filer runt
  • launcher förbättringar PBS-aprun:
  • lagt till en --cc flagga för att ange CPU uppdrag w / i en nod
  • lagt debug förmåga via CHPL_LAUNCHER_DEBUG att hålla tmp filer runt
  • saneras utgång att bli av med några främmande utskrift
  • gjort launcher stöd vårt testsystem
  • lagt --walltime och --queue flaggor för att launcher som alternativ till ENV. Vars.
  • Compiler ändringar
  • gjorde kompilator print "true" / "false" i typ signaturer snarare än 1/0
  • lagt config param "noRefCount" för att inaktivera referensräkning (kan läcka minne)
  • Compiler sjunker
  • lagt till en --print-callstack-on-felflagga att visa vad som ledde till en dålig samtal
  • lagt till en --no-codegen flagga för att hoppa över koden generationen och koppla fas
  • Interoperabilitet ändringar
  • lagt till stöd för extern C & quot; klasser & quot; (Pekaren mot struct typer)
  • lagt till stöd för Extern consts (se README.extern)
  • Felmeddelande Förbättringar
  • lagt till en varning föräldralösa "användning" uttalanden utanför deklarerade moduler
  • (t.ex. "använd M1, modul M2 {}" bör normalt vara "modul M2 {användning M1;} ')
  • gjort parse-tiden felmeddelande använda standard "filnamn: Lineno:" format
  • genererade ett felmeddelande för att referera till en klassnamn i en primär metod
  • (t.ex. "klass C {def Cm () {...}}" nu genererar ett felmeddelande)
  • buggfixar / Nya semantiska kontroller (för gamla semantik)
  • förhindrade config typer från att ställas in med exekveringstid kommandoraden flaggor
  • fast kompilatorn förmåga att hantera fackföreningar utan fält
  • fastställde minloc / MAXLOC minskningar för att hantera tomma kedjor / delområden av värden
  • fixat en bugg där "väg" argument till fil konstruktörer ignorerades
  • gjorde tomma fackföreningar fungerar
  • fast ett överflöd fråga i spalt upp intervall för distribution / parallellisering
  • fixat en bugg som innebär stöd för tomma Extern posttyper
  • fixat en bugg som involverar Extern funktioner som returnerar poster
  • fixat en bugg i samband med att kopiera externa poster
  • fast genomförande av +/- operatörer på associativa / glesa domäner
  • fixat en bugg i samband med filnamnsbaserade modulnamn innehåller flera ". S
  • meddelanden lagt fel för att expandera / exteriör / interiör på oregelbundna domäner
  • lagt ett fel för konstruktörer / destruktorer med en viss avkastning typ
  • fast ett par buggar som rör "snabb på" optimering
  • lagt till en kontroll mot att bygga klasser utan att ange generiska fält
  • Förpacknings ändringar
  • lagt syntax highlighter kod för GNU source-highlight
  • (se etc / source-highlight / README)
  • förbättrade emacs färgämnen stöd för version 22.x
  • (se etc / emacs / README)
  • uppdateringar vim syntaxfärger för att återspegla nya "proc" / "ITER" sökord
  • (se etc / vim / README)
  • lagt ett skript för att konvertera befintliga koder användning av "def" till "ITER" / "proc"
  • (se $ CHPL_HOME / util / konvertera-defs)
  • bort multirealm exempel och dokumentation för närvarande
  • Programvara från tredje part ändringar
  • uppdaterad GASNet till version 1.16.1
  • lagt kopior av BSC: s Nanos ++ och Sandia Qthreads
  • (se tredje part / README)
  • gjorde en efter installationen steg för GASNet att förändringar absoluta sökvägar till relativa
  • bort PVM för närvarande på grund av instabilitet
  • Programbiblioteket ändringar
  • lagt enda locale uppgift lager för Nanos ++ (BSC) och Qthreads (Sandia)
  • flera förbättringar av runtime tasking skiktet:
  • lagt ett nytt gränssnitt för att ha tasking skiktet samtals chpl_main ()
  • ändras tasking init funktion att ta maxThreadsPerLocale / callStackSize args
  • lagt till en uppgift avkastningsförmåga till tasking skiktet gränssnittet
  • förbättrad runtime-kod för att undvika att använda sync VARs innan initiering tasking
  • bort makro ized form av tasking gränssnitt; användning av standard namn istället
  • enhetlig namngivning av alla uppdrag lagerrutiner till chpl_sync _ * () och chpl_task _ * ()
  • bort kravet på att genomföra en enda variabel gränssnittet
  • flyttat uppsägning av trådar från FIFO tasking skiktet till pthreads gäng
  • förenklat genomförande av synkvariabler i pthread gängskiktet
  • flyttade ansvaret för gäng räknas från FIFO tasking att pthread gäng
  • flera förbättringar av runtime kommunikationsskiktet:
  • omstrukturerat kommunikationsgränssnitt för att stödja längd / typ argument
  • lagt ett gränssnitt för icke-blockerande få verksamheten till komm. gränssnitt
  • enat alla fjärr få verksamheten att använda CHPL_COMM_GET () makro
  • refactored / bytt namn rubrikerna kommunikationsgränssnitt
  • Testing System
  • kraftigt förbättrat prestandatester och graffunktionerna
  • (se kommentarer på framsidan av start_test för dokumentation)
  • förbättrat testsystem stöd för att städa upp efter sig själv
  • Lade till möjligheten att undvika att använda någon indirekthet av stdin
  • lagt till en möjlighet att ge ett systemomfattande prediff alternativ
  • Lade till möjligheten att använda en bärraket hemland timeout funktion snarare än Pythons
  • förbättrades hur testsystemet dödar ett test som timeout
  • fixat en bugg där endast .preexec filer fungerat om "." var i din väg
  • Inre
  • lagt till en --break-on-id kompilator flagga för utvecklare att hitta AST nod skapar
  • förbättrad organisation av util / kataloginnehåll
  • förändrat hur versionsnummer beräknas / visas för SVN-baserade användare
  • lagt till stöd för uppgifts- / tråd särskild modul koden
  • lagt till en möjlighet att skriva ut AST räknas fördelas mellan varje pass
  • lagt till en ny gdb alias att kompilator --gdb: "loc" skriver en AST nod läge
  • kraftigt förbättrat genomförande av pragmas / flaggor för att undvika fall fel
  • bort flera fall av onödiga strängjämförelser i kompilatorn
  • bort felbenägna användning av CHPL_TASKS och CHPL_THREADS som förprocessorn symboler
  • lagt BestPractices dokumentation för utvecklare (som inte ingår i release)
  • ändras inre munging av '=' och '== "till" ASSIGN "och" PLUS "respektive
  • lagt till en utvecklare --print-id-on-felflagga att skriva ut AST-ID på fel
  • förbättrat stränga C ++ prototyp kontroll
  • läggas avtal externa bidragsgivare till SVN träd (inte release)
  • lagt till en föreställning om interna typer som används av kompilatorn men inte användaren

Liknande mjukvara

Jess
Jess

3 Jun 15

BareBones
BareBones

3 Jun 15

YML
YML

11 May 15

Pre Make Kit
Pre Make Kit

3 Jun 15

Kommentarer till Chapel

Kommentarer hittades inte
Kommentar
Slå på bilder!