Chapel

Software screenshot:
Chapel
Podrobnosti Software:
Verze: 1.3.0 Pre-Alpha
Datum uploadu: 11 May 15
Vývojka: Cray Inc.
Licence: Volný
Popularita: 12

Rating: nan/5 (Total Votes: 0)

kaple je nový paralelní programovací jazyk byl vyvinut Cray Inc. jako součást DARPA vedené programu vysokou produktivitu počítačových systémů (HPC). Kaple je navržen tak, aby zvýšení produktivity high-end uživatelů počítačů a zároveň slouží jako přenosný paralelní programovací model, který může být použit na komoditních klastrů nebo desktop vícejádrových systémech. Kaple se snaží přispět k výraznému zvýšení programovatelnost rozsáhlých paralelních počítačů, zatímco odpovídající nebo porazil výkon a přenositelnost současných programovacích modelů, jako je MPI.
Kaple Aplikace podporuje vícevláknové modelu spuštění přes abstrakce na vysoké úrovni pro paralelismus dat, úkolů paralelismus, souběžnost, a vnořené paralelismus. & Nbsp; kaple je typ locale umožňuje uživatelům určit a důvod, proč o umístění dat a úkolů na cílové architektury v pořadí vyladit pro lokality. Kaple podporuje globální výhledem na datové agregáty s uživatelem definované implementací, která umožňuje operace na distribuovaných datových struktur, které mají být vyjádřena v přírodním způsobem. Na rozdíl od mnoha předchozích paralelních jazycích na vyšší úrovni, kaple je navržena kolem multirezoluční filozofie, která umožňuje uživatelům, aby zpočátku psát velmi abstraktní kód a pak postupně přidávat více detailů, než oni jsou tak blízko ke stroji jako jejich potřeby vyžadují. Kaple podporuje opětovné použití kódu a rychlé prototyping přes objektově orientovaného návrhu, typ závěr, a funkcí pro generické programování.
Kaple byla navržena z prvních principů, spíše než tím, že rozšíří existující jazyk. Je nezbytně nutné, blok strukturovaný jazyk, navržen tak, aby bylo snadné se naučit pro uživatele C, C ++, Fortran, Java, Perl, Matlab, a dalších populárních jazyků. Zatímco Kaple staví na konceptech a syntaxi z mnoha předešlých jazyků, jeho paralelní funkce jsou nejvíce přímo ovlivněny ZPL, High-Performance Fortran (HPF), a Cray MTA a obchodu; / Cray XMT a obchodu; rozšíření až C a Fortran

Co je nového v této verzi:.

  • Highlights (viz níže)
  • Split "def" klíčového slova do "proc" (postupy) a "ITER" (pro iterátorů)
  • (viz '$ CHPL_HOME / util / convert-defs --help' pro pomoc aktualizuje stávající kodexy)
  • dodal "Replikovaná" distribuce a vylepšený "Block-cyklického" distribuce
  • (viz & quot; Standardní Distribuce & quot; v spec a příklady / primery / distributions.chpl)
  • přidal single-národní prostředí úloh Layers pro Nanos ++ (BSC) a Qthreads (Sandia)
  • (viz doc / README.tasks)
  • hlavní replikou rozsah sémantiky a realizace
  • (viz & quot; Sémantické Změny / Změny Chapel Language & quot; pouze pro detail)
  • počáteční podpora pro těkavé typy: bool, int, uint, skutečný, imag
  • (viz doc / TechNotes / README.volatile)
  • Podpora externími consts a tříd (ukazatele-to-structs)
  • (viz doc / TechNotes / README.extern)
  • Vylepšená podpora pro datový paralelismus na Cray XMT
  • rozsáhlá zlepšení ukázkových kódů v příkladech / adresáři
  • (viz "Příklad kódy" níže a příklady / README)
  • přidané Nejvíce příklady kódu z spec do nové příklady / adresář
  • (viz příklady / Spec / *)
  • přidána technická poznámka popisující uživatelem definované mapy doména rozhraní
  • (viz doc / TechNotes / README.dsi)
  • rozsáhlá aktualizace na specifikaci jazyka
  • (viz "Dokumentace" níže)
  • několik vylepšení na runtime tasking a komunikační vrstvy
  • (viz & quot; Runtime Library změny & quot; níže)
  • Syntactic / Pojmenování Změny
  • Split "def" klíčového slova do "proc" (postupy) a "ITER" (pro iterátorů)
  • (viz '$ CHPL_HOME / util / convert-defs --help' pro pomoc aktualizuje stávající kodexy)
  • přejmenované "aritmetické" domény / pole, aby "obdélníkové" domény / pole
  • přidána podpora pro plovoucí desetinnou čárkou literály formuláře "1.E ..."
  • (dříve, jen '1E ... "a" 1.0e ...' byly podporovány)
  • Sémantické Změny / Změny Chapel jazyk
  • několik vylepšení do řad (viz "rozsahy" kapitola v jazykové spec):
  • přidal koncept vyrovnání k označení zarovnání modulo | krok |
  • přidal "align" provozovatelem a dotaz na rozsahy specifikovat / zarovnání dotazu
  • (např, "1..10 o 3 align 2 '= & gt;" 2, 5, 8' od 2. == 5 == 8, mod 3)
  • definovány == na rozsazích, pokud jde o celočíselných sekvencí, které generují
  • definováno ident (R1, R2), říci, zda R1 a R2 jsou identické sémanticky
  • definován "# K 'pro k & lt; 0 v tom smyslu, & quot; počítat od konce rozsahu & quot;
  • dodal "první", "poslední", "alignedLow," alignedHigh 'metod k rozsahy
  • (např, "1..10 od -2" = & gt; první == 10, poslední == 2, alignedLow = 2, alignedHigh = 10)
  • přidána podpora pro celou řadu nových funkcí dotazu rozsah
  • (např alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • přidána podpora pro volatile bool, int, uint, skutečný, a typy IMAG
  • (viz doc / TechNotes / README.volatile)
  • přidal end-of-file šek na typu souboru
  • (např., "Zatímco! Infile.eof ...")
  • odebrána podpora pro léčbu "návratem" do iterátoru jako "výnos"
  • (např změna "iter foo () {return x;} 'na' iter foo () {výtěžek x; return;} ')
  • přidal podporu pro odkazování modulů, aniž by první "use'-ing je
  • (např modul M1 {var x ...} modul M2 {... M1.x ...}, je nyní legální)
  • přidal dotaz callStackSize typu locale
  • (např, "here.callStackSize" vrací velikost zásobníku volání na aktuální locale)
  • odstranili dříve požadovaný středník od konce výčtu prohlášení
  • (např, "ENUM barvy {červená, modrá, zelená} 'je nyní legální; dříve zapotřebí"; ")
  • přidána podpora pro jednu koncovou čárku na konci seznamů výčtu
  • (např, "ENUM barvy {červená, modrá, zelená,}", je nyní legální)
  • odebrána podpora pro +/- subjektům na pravoúhlých domén; použití Přeložit ()
  • nově implementované Vlastnosti
  • implementován == /! = Pro obdélníkové, asociativní a řídké domén
  • Standardní Distribuce
  • přidal první návrh "replikovány" rozložení pro ukládání dat redundantně
  • (viz příklady / primery / distributions.chpl)
  • zlepšený "Block-cyklického ', dostatečné, aby správně provádět HPCC PTRANS a HPL
  • (viz příklady / HPCC / ptrans.chpl, hpl.chpl, příklady / primery / distributions.chpl)
  • odstraní nadbytečnost ve specifikaci vůdce iterátorů mezi doménami / polí
  • standardní moduly
  • přidal INFINITY a nan konstanty modulu Math.chpl
  • (viz "Math", pod & quot; standardních modulů & quot; v jazyce spec)
  • přidal isinf () a isfinite () zkušební rutiny modulu Math.chpl
  • (viz "Math", pod & quot; standardních modulů & quot; v jazyce spec)
  • přidal půl tuctu dalších rutiny modulu GMP.chpl
  • Documentation
  • přidal novou technickou poznámku popisující uživatelem definované mapy doména rozhraní
  • (viz doc / TechNotes / README.dsi)
  • udělal mnoho vylepšení pro specifikace jazyka
  • hlavní revize v kapitole domény s cílem zlepšit srozumitelnost / přesnost
  • zlepšila a jednotná struktura rekordů a tříd kapitol
  • hlavní revize v kapitole Domain Mapy zlepšit srozumitelnost / přesnost
  • s názvem příklad kódy poskytovat křížový odkaz na příkladech / Spec / programy
  • vyjasnit zákonnost etiketě / přerušení / pokračování v paralelních smyčkách
  • aktualizované popisy čtení [ln] / zápisu [ln]
  • opraveny některé problémy v oblastech souborových objednávání
  • přeformátován specifikaci jako "kniha", v LaTeXu
  • různé drobné opravy překlepů / chyb
  • zlepšené definice / popisy několika termínů
  • přidal dokumentaci locale.name
  • a mnoho dalších změn ...
  • aktualizováno rychlá odkaz na dokument, aby zahrnovala vymezením & gt; proc / ITER změna, zarovnat op
  • .
  • předělal / reorganizována README.extern objasnit vysvětlení a přinést up-to-date
  • přidal README popisující "místní" prohlášení (doc / TechNotes / README.local)
  • přidal README popisující těkavé typy (doc / TechNotes / README.volatile)
  • aktualizované README.comm diagnostika zmínit rychlé vidlice statistiky
  • aktualizované různé soubory README
  • Příklad Kódy
  • umístil většinu příklady kódu z jazyka spec. do nového spec / podadresáři
  • zlepšila primery / adresář:
  • přidal nový nátěr pro použití postupů (primery / procedures.chpl)
  • přidal základní nátěr pro domény (primery / domains.chpl)
  • přejmenoval locales Primer locales.chpl a zdokonalil
  • zlepšila distribucí primer a dodal Block-Cyklické a Replikované použití
  • aktualizováno rozsah primer (primery / range.chpl)
  • zlepšila iterátorů primer (primery / iterators.chpl)
  • zlepšila její snížení primer (primery / reductions.chpl)
  • přidané getCurrentTime () do časovače primer (primery / timers.chpl)
  • přidal popisy typu aliasů a typů config proměnných primeru
  • (viz primery / variables.chpl)
  • zlepšila adresář HPCC / benchmarky
  • přidal první verze HPCC PTRANS na HPCC / adresáře (ptrans.chpl)
  • přidal čistší verzi HPCC HPL na HPCC / adresáře (hpl.chpl)
  • přidal varianty / podadresář příkladů / HPCC vystavovat jiné přístupy
  • přidal proudu-promoted.chpl ukázat využití podpory v globálním STREAM Triad
  • přidal RA-cleanloop.chpl ukázat čistič (ale v současné době pomalejší) RA kernel
  • zlepšené příklady na nejvyšší úrovni:
  • přejmenován existující & quot; ahoj, svět & quot; příklady navrhnout logické pořadí čtení
  • (viz příklady / ahoj * .chpl)
  • přidal údaje paralelní a distribuované data paralelního ahoj, příklady svět
  • (viz příklady / hello3-datapar.chpl, příklady / hello4-datapar-dist.chpl)
  • přidal připomínky různé ahoj, příklady svět (příklady / ahoj * .chpl)
  • aktualizovány všechny příklady současných jazykových sémantice
  • Používejte 'proc' / 'ITER "spíše než" def "
  • aktualizace tak, aby odrážely novou řadu sémantiku
  • Plošina specifické Notes
  • pro Cray XT / Cray XE, vylepšené jsou aprun a PBS-aprun odpalovací
  • (viz & quot; Launcher specifické poznámky & quot; níže)
  • na Cray XMT, přidána podpora pro paralelní smyčky přes rozsahy
  • na Cray XMT, dodal generaci noalias pragmas na forall proměnných smyčky
  • přidána podpora pro BSC Marenostrum včetně Docs a speciální raketomet
  • (viz doc / platformy / README.marenostrum)
  • Launcher specifické poznámky
  • přidal možnosti odpalovací specifické pro --help schopnosti
  • zlepšila šíření stavových exit kódů přes odpalovacích
  • změnil odpalovací zařízení pro podporu exec-based (spíše než systém založený na) příkazy
  • udělal odpalovací zařízení používat 'unlink' spíše než systém ("rm") pro odstranění dočasných souborů
  • přidal launcher pro BSC Marenostrum
  • snížený počet dočasných souborů používaných k zachycení výstupu "systému" Příkazy
  • aprun vylepšení launcher:
  • přidal --cc vlajku určit zadání CPU w / v uzlu
  • přidal -q spustit spouštěč v tichém režimu
  • přidal možnost ladění pomocí CHPL_LAUNCHER_DEBUG udržet tmp soubory kolem
  • PBS-aprun vylepšení launcher:
  • přidal --cc vlajku určit zadání CPU w / v uzlu
  • přidal možnost ladění pomocí CHPL_LAUNCHER_DEBUG udržet tmp soubory kolem
  • vyčistit výstup, jak se zbavit nějakého cizího tisku
  • vyrobena podpora launcher náš testovací systém
  • přidal --walltime a --queue vlajky na launcher jako alternativy k env. Vars.
  • Compiler změny
  • udělal kompilátoru tisk "pravda" / "false" v podpisech typu spíše než 1/0
  • přidal config param "noRefCount" vypnout počítání referencí (vyzradit paměti)
  • Compiler Flags
  • přidali vlajku --print-callstack-on-error ukázat, co vedlo ke špatnému hovoru
  • přidal --no-CODEGEN vlajku přeskočit kód generace a propojení fáze
  • Interoperability změny
  • přidal podporu pro extern C & quot; kurzy & quot; (Ukazatel-to-struct typy)
  • přidána podpora pro externími consts (viz README.extern)
  • Zlepšení Chybové hlášení
  • přidal varování osiřelé "použití" prohlášení mimo deklarovaných modulů
  • (např, "použijte M1; modul M2 {} 'by měla být typicky" modul M2 {využití M1;}')
  • vyrobena Parse-time chybová zpráva použít standardní 'název souboru: lineno: "formátu
  • generována chybová zpráva pro odkazuje na název třídy v primární metoda
  • (např, "třída C {def Cm () {...}} 'nyní generuje chybovou zprávu)
  • Opravy chyb / Nové Sémantické Kontroly (pro staré sémantiky)
  • zabráněno typy konfiguračních před nastavit pomocí doby provedení příkazového řádku vlajky
  • pevné schopnost kompilátoru zvládnout odbory bez poli
  • stanovil snížení minloc / maxloc zvládnout prázdné rozsahy / podrozsahy hodnot
  • opravena chyba, ve kterém byl tento argument "cesta" do souborů konstruktorům ignorována
  • vyrobena prázdné odbory pracovat správně
  • Opraven problém přetečení v Chunking až rozsahy pro distribuci / paralelizace
  • opravena chyba zahrnující podporu pro prázdných externími typy záznamů
  • opravena chyba zahrnující Externí funkce, které vracejí záznamy
  • opravena chyba týkající se kopírování externí záznamy
  • pevná realizace +/- subjektů na asociativní / řídké domény
  • opravena chyba týkající se jména modulu filename bázi, které obsahují více "je.
  • přidal chybové zprávy pro rozbalení / Exteriér / Interiér na nepravidelné domén
  • přidal chybu pro konstruktéry / destruktory s uvedeným návratový typ
  • opravena pár chyb týkajících se "rychle na" optimalizaci
  • přidal kontrolu proti stavbě třídy bez uvedení generických pole
  • Obalové změny
  • přidal syntax zvýrazňovač kód pro GNU zdroj-zvýraznění
  • (viz etc / source-zvýrazněný / README)
  • zlepšené emacs Barvení podporu pro verze 22.x
  • (viz etc / emacs / README)
  • aktualizace vim syntaxe zbarvení, aby odrážely novou "proc" / "ITER" klíčová slova
  • (viz etc / vim / README)
  • přidal skript pro převod "využití" existující kódy DEF "na" iter '/' proc '
  • (viz $ CHPL_HOME / util / convert-defs)
  • odstraněny multirealm příklady a dokumentaci pro bytí času
  • Third-Party Software změny
  • aktualizován na verzi 1.16.1 GasNet
  • přidal kopie BSC Nanos ++ a Sandia je Qthreads
  • (viz třetí strany / README)
  • dělal po instalaci krok pro GasNet, že mění absolutní cesty k relativnímu
  • odstraněna PVM v současné době vzhledem k nestabilitě
  • Runtime Library změny
  • přidal single-národní prostředí úloh Layers pro Nanos ++ (BSC) a Qthreads (Sandia)
  • několik vylepšení na runtime tasking vrstvy:
  • přidal nové rozhraní pro mít tasking vrstva volání chpl_main ()
  • změnil tasking funkcí init, aby maxThreadsPerLocale / callStackSize args
  • přidal schopnost mez úkol rozhraní tasking vrstvy
  • zlepšila runtime kód, aby se zabránilo používání synchronizaci vars před inicializace tasking
  • odstranit makro-jící s forma tasking rozhraní; místo toho používat standardní názvy
  • sjednocený pojmenování všech rutin úkolem vrstvy do chpl_sync _ * () a chpl_task _ * ()
  • odstraněn požadavek na zavedení jednotného rozhraní proměnnou
  • přestěhoval ukončení nití z FIFO tasking vrstvy do pthreads řezání závitů
  • zjednodušené implementace synchronizace proměnných v pthread závitů vrstvy
  • přestěhoval zodpovědnost za závitu se počítá z fifo tasking do pthread threading
  • několik vylepšení na runtime komunikační vrstvy:
  • restrukturalizaci komunikační rozhraní pro podporu délka / typu argumenty
  • přidal rozhraní pro non-blokování dostat operace do komunikátoru. interface
  • sjednotil všechny dálkové dostat operace používat CHPL_COMM_GET () makro
  • refactored / přejmenovány záhlaví komunikačního rozhraní
  • Testing System
  • obrovsky testování výkonu a schopností grafů zlepšila
  • (viz komentář na přední start_test pro dokumentaci)
  • zlepšil podporu testovací systém pro úklid po sobě
  • přidal schopnost, aby se zabránilo používání jakéhokoli indirection standardního vstupu
  • přidal možnost poskytnout prediff volbu v celém systému
  • přidána možnost používat nativní funkce časového limitu raketomet spíše než Python
  • zlepšila jak testovací systém zabíjí test, který vyprší
  • opravena chyba, ve kterém .preexec soubory pracoval pouze v případě, '.' Byl ve vaší cestě
  • Vnitřní
  • přidal --break-on-id kompilátor příznak pro vývojáře lokalizovat AST uzel vytváří
  • lepší organizaci obsahu util / adresáře
  • změnil způsob, jakým čísla verzí jsou počítány / zobrazí pro uživatele, SVN-založené
  • přidána podpora pro úkoly dobrovolníka / závit pro konkrétní kód modulu
  • přidal schopnost tisknout AST počty přidělených mezi každým průchodem
  • přidal novou gdb alias kompilátoru --gdb: "loc" tiskne AST uzlu umístění
  • výrazně zlepšila realizace pragmas / příznaků, aby se zabránilo chybové případy,
  • odstraněno několik instancí zbytečných porovnávání řetězců v kompilátoru
  • odstraněny náchylné k chybám využití CHPL_TASKS a CHPL_THREADS jako preprocesoru symboly
  • přidal bestPractices dokumentace pro vývojáře (není součástí vydání)
  • změnila vnitřní munging z '=' a '==' to 'ASSIGN "a" se rovná ", respektive
  • přidal --print-id-on-error vývojářský vlajku tisknout AST ID o chybách
  • zlepšila přísnost C ++ prototypu kontrolu
  • přidal externí smlouvy přispěvatelem ke SVN stromu (ne ve verzi)
  • přidal pojem vnitřních typů používaných kompilátorem, ale není uživatelem

Podobný software

Ctalk
Ctalk

20 Feb 15

SMOP
SMOP

11 May 15

FFC
FFC

17 Feb 15

Komentáře k Chapel

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!