Chapel

Software screenshot:
Chapel
Dettagli del software:
Versione: 1.3.0 Pre-Alpha
Data di caricamento: 11 May 15
Sviluppatore: Cray Inc.
Licenza: Libero
Popolarità: 12

Rating: nan/5 (Total Votes: 0)

Cappella è un nuovo linguaggio di programmazione parallela in fase di sviluppo da Cray Inc., come parte del programma di elevata produttività Computing Systems DARPA-led (HPC). Cappella è stato progettato per migliorare la produttività degli utenti di computer di fascia alta ma anche di servire come un modello di programmazione parallela portatile che può essere utilizzato su cluster di materie prime o di sistemi desktop di multicore. Cappella si sforza di migliorare notevolmente la programmabilità di grandi computer paralleli mentre si abbina o battere le prestazioni e la portabilità di modelli di programmazione attuali come MPI.
L'applicazione Cappella supporta un modello di esecuzione multithread via astrazioni di alto livello per il parallelismo dei dati, compito il parallelismo, la concorrenza, e il parallelismo annidato. & Nbsp; di tipo locale Cappella consente agli utenti di specificare e ragionare sul posizionamento dei dati e le attività su un'architettura target per sintonizzare per località. Cappella supporta aggregati di dati globale vista con le implementazioni definite dall'utente, interventi sulle strutture dati distribuite permettendo di esprimersi in modo naturale. A differenza di molti di più alto livello linguaggi paralleli precedenti, Cappella è stato progettato intorno una filosofia multirisoluzione, permettendo agli utenti di scrivere codice, inizialmente molto astratto e quindi in modo incrementale aggiungere ulteriori dettagli, fino a quando sono più vicino alla macchina come le loro esigenze richiedono. Cappella supporta il riutilizzo del codice e la prototipazione rapida via di progettazione orientata agli oggetti, inferenza di tipo, e le caratteristiche per la programmazione generica.
Cappella è stata progettata dai primi principi, piuttosto che estendendo una lingua esistente. Si tratta di un linguaggio strutturato a blocchi imperativo, progettato per essere facile da imparare per gli utenti di C, C ++, Fortran, Java, Perl, Matlab, e altre lingue popolari. Mentre Cappella si basa su concetti e la sintassi di molti linguaggi precedenti, le sue caratteristiche parallele sono più direttamente influenzati da ZPL, High-Performance Fortran (HPF), e il Cray MTA & trade; / Cray XMT & trade; estensioni a C e Fortran

Cosa c'è di nuovo in questa versione:.

  • Highlights (vedi sotto per i dettagli)
  • split 'def' parola chiave in 'proc' (per le procedure) e 'iter' (per iteratori)
  • (vedi '$ CHPL_HOME / util / convertire-defs --help' per un aiuto l'aggiornamento codici esistenti)
  • Added Distribution 'replicato' e una migliore distribuzione 'Block-ciclico'
  • (vedi & quot; & quot Distribuzioni standard, nelle specifiche e gli esempi / primer / distributions.chpl)
  • aggiunto strati compito unico della locale per Nanos ++ (BSC) e qthreads (Sandia)
  • (vedi doc / README.tasks)
  • importante rielaborazione semantica range e implementazione
  • (vedi & quot; I cambiamenti semantici / Modifiche alla Cappella Lingua & quot; sotto per i dettagli)
  • supporto iniziale per i tipi di volatili: bool, int, uint, real, imag
  • (vedi doc / note tecniche / README.volatile)
  • Supporto per const extern e le classi (i puntatori-a-struct)
  • (vedi doc / note tecniche / README.extern)
  • supporto migliorato per il parallelismo dei dati sul Cray TX
  • ampi miglioramenti ai codici di esempio nella directory / examples
  • (vedi "Codici Esempio" di seguito e esempi / README)
  • aggiunto maggior parte degli esempi di codice dalla specifica di una nuova directory examples /
  • (vedi esempi / spec / *)
  • ha aggiunto una nota tecnica che descrive il dominio mappa interfaccia user-definito
  • (vedi doc / note tecniche / README.dsi)
  • estesi aggiornamenti la specifica del linguaggio
  • (vedi 'Documentazione' di seguito)
  • diversi miglioramenti al tasking runtime e gli strati di comunicazione
  • (vedi & quot; Runtime Library modifiche & quot; sotto)
  • sintattica / denominazione modifiche
  • split 'def' parola chiave in 'proc' (per le procedure) e 'iter' (per iteratori)
  • (vedi '$ CHPL_HOME / util / convertire-defs --help' per un aiuto l'aggiornamento codici esistenti)
  • domini rinominati 'aritmetica' / matrici per i domini '' rettangolari / array
  • ha aggiunto il supporto per la virgola mobile letterali della forma '1.e ...'
  • (in precedenza, solo '1e ...' e '1.0e ...' sono stati sostenuti)
  • Modifiche semantiche / Modifiche alla Cappella Lingua
  • diversi miglioramenti a intervalli (vedere 'Ranges' capitolo nella specifica lingua):
  • ha aggiunto il concetto di allineamento per indicare un modulo di allineamento | stride |
  • aggiunge un operatore 'align' e query per le gamme di specificare / allineamento di query
  • (per esempio, '1..10 da 3 align 2' = & gt; '2, 5, 8' dal 2 == 5 == 8, mod 3)
  • == definiti su intervalli in termini di sequenze di interi che generano
  • ident definiti (R1, R2) per dire se r1 e r2 sono semanticamente identico
  • definito '# k' per k & lt; 0 nel senso & quot; contare dalla fine del campo & quot;
  • aggiunto 'prima', 'ultima', metodi alignedHigh 'a intervalli' alignedLow, '
  • (per esempio, '1..10 da -2' = & gt; prima == 10, ultima == 2, alignedLow = 2, alignedHigh = 10)
  • aggiunto il supporto per una varietà di nuove funzioni di query gamma
  • (ad esempio, alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • ha aggiunto il supporto per bool volatili, int, uint, vero, e tipi imag
  • (vedi doc / note tecniche / README.volatile)
  • aggiunto un controllo end-of-file per il tipo di file
  • (Per es., 'Mentre! Infile.eof ...')
  • rimosso il supporto per il trattamento di 'ritorno' in iteratore come una 'resa'
  • (ad esempio, il cambiamento 'foo iter () {return x;}' a 'foo iter () {resa x; ritorno;}')
  • ha aggiunto il supporto per i moduli che fanno riferimento senza prima 'li-ing use'
  • (ad esempio, il modulo M1 {var x ...} modulo M2 {... M1.x ...} è ora legale)
  • ha aggiunto una query callStackSize al tipo di locale
  • (per esempio, 'here.callStackSize' restituisce la dimensione dello stack delle chiamate sul locale corrente)
  • rimosso il punto e virgola in precedenza richiesto dalla fine delle dichiarazioni enum
  • (per esempio, 'colori enum {rosso, blu, verde}' è ora legale; precedentemente necessarie ';')
  • aggiunto il supporto per una singola virgola finale alla fine di liste enum
  • (per esempio, 'colori enum {rosso, blu, verde,}' è ora legale)
  • rimosso il supporto per +/- operatori su domini rettangolari; utilizzare translate ()
  • Caratteristiche introdotta di recente
  • == implementato /! = Per rettangolari, associative, e domini sparse
  • Distribuzioni standard
  • aggiunto un primo progetto di distribuzione 'replicato' per memorizzare i dati in modo ridondante
  • (vedi esempi / primer / distributions.chpl)
  • migliore 'Block-ciclico', sufficiente per attuare correttamente HPCC PTRANS e HPL
  • (vedi esempi / HPCC / ptrans.chpl, hpl.chpl; examples / primer / distributions.chpl)
  • ridondanza rimosso nella specifica di iteratori capo tra i settori / array
  • I moduli standard
  • aggiunto INFINITY e NAN costanti al modulo Math.chpl
  • (vedi 'Math' in & quot; & quot moduli standard, in lingua spec)
  • isinf () e isFinite () routine di test al modulo Math.chpl aggiunto
  • (vedi 'Math' in & quot; & quot moduli standard, in lingua spec)
  • ha aggiunto una mezza dozzina di routine al modulo GMP.chpl
  • Documentazione
  • ha aggiunto una nuova nota tecnica che descrive il dominio mappa interfaccia user-definito
  • (vedi doc / note tecniche / README.dsi)
  • ha fatto molti miglioramenti per le specifiche del linguaggio
  • maggiori revisioni al capitolo Domini per maggiore chiarezza / precisione
  • migliorata e struttura unificata dei primati e Classi capitoli
  • maggiori revisioni al capitolo Maps dominio per migliorare la chiarezza / precisione
  • Codici nome di esempio per fornire riferimenti incrociati esempi / spec / programmi
  • chiarito la legittimità di etichette / pausa / continuare a cicli paralleli
  • aggiornato le descrizioni di leggere [ln] / scrittura [ln]
  • risolti alcuni problemi nei campi del file ordinano
  • riformattato la specifica come un 'libro' in LaTeX
  • varie correzioni minori di battitura / errori
  • Definizioni miglioramento / descrizioni di diversi termini
  • aggiunto documentazione locale.name
  • e molti altri cambiamenti ...
  • aggiornato documento di riferimento rapido per includere DEF & gt; proc / cambio iter, allineare op
  • .
  • riscritto / riorganizzato README.extern per chiarire spiegazioni e portare up-to-date
  • ha aggiunto un README che descrive l'affermazione 'locale' (doc / note tecniche / README.local)
  • ha aggiunto un README che descrive i tipi di volatili (doc / note tecniche / README.volatile)
  • aggiornati README.comm-diagnostica per citare statistiche veloci forcella
  • vari file README aggiornati
  • Codici Esempio
  • collocato maggior parte degli esempi di codice dalla specifica lingua. di una nuova specifica / sottodirectory
  • migliorato la directory / primer:
  • ha aggiunto un nuovo fondo per l'utilizzo di procedure (primer / procedures.chpl)
  • ha aggiunto un fondo di base per i domini (primer / domains.chpl)
  • rinominato i locali primer locales.chpl e migliorò
  • migliorato la distribuzioni di fondo e ha aggiunto usi Block-ciclici e replicate
  • aggiornato la gamma di primer (primer / range.chpl)
  • migliorato la iteratori fondo (primer / iterators.chpl)
  • migliorato la riduzioni fondo (primer / reductions.chpl)
  • aggiunto GetCurrentTime () per il timer di fondo (primer / timers.chpl)
  • aggiunto descrizioni di tipo alias e tipi di configurazione a variabili di fondo
  • (vedi primer / variables.chpl)
  • migliorato elenco HPCC / benchmark
  • aggiunto prima versione di HPCC PTRANS nella directory / HPCC (ptrans.chpl)
  • aggiunge la versione più pulita di HPCC HPL nella directory / HPCC (hpl.chpl)
  • ha aggiunto una varianti / sottodirectory examples / HPCC ad esporre altri approcci
  • aggiunto stream-promoted.chpl per dimostrare l'uso di promozione globale STREAM Triad
  • aggiunto ra-cleanloop.chpl mostrare più pulita (ma attualmente più lento) kernel RA
  • migliorati esempi di primo livello:
  • rinominato esistente & quot; ciao, mondo & quot; esempi per suggerire un ordine di lettura logico
  • (vedi esempi / ciao * .chpl)
  • Dati dati paralleli e distribuiti parallele ciao, esempi del mondo ha aggiunto
  • (vedi esempi / hello3-datapar.chpl, esempi / hello4-datapar-dist.chpl)
  • aggiunto commenti ai vari ciao, esempi del mondo (esempi / ciao * .chpl)
  • aggiornati tutti esempi di semantica del linguaggio corrente
  • usare 'proc' / 'iter' piuttosto che 'def'
  • Aggiornamento per riflettere nuova semantica gamma
  • Note specifici della piattaforma
  • per Cray XT / Cray XE, migliorate le aprun e pbs-aprun lanciatori
  • (vedi & quot; note & quot Launcher-specifico sotto)
  • per Cray XMT, aggiunto il supporto per cicli paralleli su intervalli
  • per Cray XMT, ha aggiunto generazione di noalias pragma a forall variabili di ciclo
  • ha aggiunto il supporto per MareNostrum del BSC tra cui documenti e un lanciatore speciale
  • (vedi doc / piattaforme / README.marenostrum)
  • specifica Launcher-note
  • aggiunto opzioni specifiche di lancio per --help capacità
  • migliore propagazione di codici di stato uscita attraverso lanciatori
  • cambiato lanciatori per sostenere exec-based (e non al sistema basato) Comandi
  • fatto lanciatori usano 'unlink' piuttosto che del sistema ('rm') per rimuovere i file temporanei
  • aggiunto un lanciatore per di BSC MareNostrum
  • ridotto numero di file temporanei utilizzati per catturare l'uscita di 'sistema' i comandi
  • miglioramenti launcher aprun:
  • aggiunto un flag --cc per specificare assegnazione CPU w / in un nodo
  • aggiunto un flag -q per eseguire il programma di avvio in modalità silenziosa
  • ha aggiunto funzionalità di debug via CHPL_LAUNCHER_DEBUG per mantenere i file tmp intorno
  • miglioramenti launcher pbs-aprun:
  • aggiunto un flag --cc per specificare assegnazione CPU w / in un nodo
  • ha aggiunto funzionalità di debug via CHPL_LAUNCHER_DEBUG per mantenere i file tmp intorno
  • uscita ripulito per liberarsi di qualche stampa estranea
  • Supporto launcher fatto il nostro sistema di prova
  • --walltime e bandiere --queue aggiunto al launcher come alternative a Env. vars.
  • Compiler modifiche
  • ha fatto la stampa compilatore 'vero' / 'false' nel tipo di firme anziché 1/0
  • aggiunto config param 'noRefCount' per disabilitare il conteggio dei riferimenti (può perdere la memoria)
  • Compiler Bandiere
  • aggiunto un flag --print-stack-on-error per mostrare ciò che ha portato a una cattiva chiamata
  • aggiunto un flag --no-codegen per saltare la generazione del codice e la fase di collegamento
  • Interoperabilità modifiche
  • ha aggiunto il supporto per extern C & quot; & quot classi; (Tipi pointer-to-struct)
  • ha aggiunto il supporto per const extern (vedi README.extern)
  • I miglioramenti Messaggio di errore
  • ha aggiunto un avvertimento orfano 'uso' le dichiarazioni al di fuori di moduli dichiarati
  • (per esempio, 'utilizzare M1; modulo M2 {}' dovrebbe essere tipicamente 'modulo M2 {uso M1;}')
  • made messaggio di errore di analisi in tempo utilizzare il 'nome del file: lineno:' standard di formato
  • ha generato un messaggio di errore per riferimento a un nome di classe in un metodo primario
  • (per esempio, 'class C {def Cm () {...}}' ora genera un messaggio di errore)
  • Bug Fixes / nuovi controlli semantici (per le vecchie semantica)
  • impedito tipi di configurazione di essere impostato con flag da riga di comando tempo di esecuzione
  • fissato la capacità del compilatore di gestire i sindacati senza campi
  • fissa le riduzioni minloc / maxLoc per gestire vuoti campi / sottocampi di valori
  • corretto un bug in cui l'argomento 'percorso' per i costruttori di file è stato ignorato
  • fatta sindacati vuote funzionano correttamente
  • fissato un problema di overflow di suddivisione in blocchi fino gamme per la distribuzione / parallelizzazione
  • risolto un bug che coinvolge il supporto per i tipi di record vuoti extern
  • risolto un bug che coinvolge le funzioni extern che restituiscono record
  • corretto un bug relativo a copiare dischi esterni
  • attuazione fissato di +/- operatori associativa / domini sparse
  • corretto un bug relativo ai nomi dei moduli a base di nome di file contenenti più 'di.
  • messaggi di errore aggiunto per espandere / esterno / interno su domini irregolari
  • aggiunto un errore per i costruttori / distruttori con un tipo di ritorno specificato
  • fissato un paio di bug relativi alla 'veloce su' ottimizzazione
  • aggiunto un controllo contro la costruzione di classi senza doverne specificare campi generici
  • Modifiche ai pacchetti
  • aggiunto sintassi del codice evidenziatore per GNU source-highlight
  • (vedi etc / fonte-luce / README)
  • migliorati emacs colorare il supporto per la versione 22.x
  • (vedi etc / emacs / README)
  • aggiornamenti colorazione della sintassi vim per riflettere nuovo '' proc / keywords 'iter'
  • (vedi etc / vim / README)
  • aggiunto uno script per convertire 'uso di' codici esistenti def 'a' iter '/' proc '
  • (vedi $ CHPL_HOME / util / convertire-defs)
  • Rimosso esempi e documentazione multirealm per il momento
  • Software di terze parti modifiche
  • aggiornato alla versione 1.16.1 GASNET
  • copie del Nanos del BSC ++ e di Sandia qthreads
  • aggiunto
  • (vedi terzi / README)
  • ha fatto un passo post-installazione per GASNET che cambia i percorsi assoluti di relativa
  • PVM rimosso per il momento, a causa dell'instabilità
  • Runtime Library modifiche
  • aggiunto strati compito unico della locale per Nanos ++ (BSC) e qthreads (Sandia)
  • diversi miglioramenti al livello di runtime tasking:
  • ha aggiunto una nuova interfaccia per avere il chpl_main chiamata strato tasking ()
  • cambiato tasking funzione init prendere args maxThreadsPerLocale / callStackSize
  • ha aggiunto una capacità resa compito all'interfaccia strato tasking
  • migliorato codice runtime per evitare l'uso di sync vars prima di inizializzare tasking
  • rimosso forma macro-ized di tasking interfaccia; usando nomi standard invece
  • denominazione unificata di tutte le routine di livello compito di chpl_sync _ * () e chpl_task _ * ()
  • requisito rimosso per implementare l'interfaccia singola variabile
  • cessazione spostato di fili di strato tasking FIFO per pthreads filettatura
  • implementazione semplificata delle variabili di sincronizzazione nello strato pthread threading
  • spostato la responsabilità di titoli di filato da tasking FIFO a pthread threading
  • diversi miglioramenti al livello di comunicazione runtime:
  • ristrutturato l'interfaccia di comunicazione per sostenere argomenti di lunghezza / tipo
  • aggiunto un'interfaccia per non-blocking arrivare operazioni al comm. Interfaccia
  • unificato tutti arrivare a distanza le operazioni di utilizzare CHPL_COMM_GET () macro
  • refactoring / rinominate le intestazioni di interfaccia di comunicazione
  • Testing System
  • notevolmente migliorato il test delle prestazioni e funzionalità grafiche
  • (vedi commenti sul davanti start_test per documentazione)
  • ha migliorato il supporto del sistema di prova per la pulizia dopo si
  • aggiunta la possibilità di evitare l'uso di qualsiasi indirezione di stdin
  • aggiunto la possibilità di fornire un'opzione prediff livello di sistema
  • Aggiunta la possibilità di utilizzare la funzione di timeout nativa di un lanciatore piuttosto che di Python
  • migliorato come il sistema di test uccide un test che scade
  • corretto un bug in cui i file .preexec funzionavano solo se '.' era nel percorso
  • interno
  • aggiunto un flag compilatore --break-on-id per gli sviluppatori di individuare nodo AST crea
  • una migliore organizzazione dei contenuti della directory / util
  • ha cambiato il modo in cui i numeri di versione sono calcolati / visualizzato per gli utenti basati su SVN
  • ha aggiunto il supporto per task- / code modulo specifico thread
  • ha aggiunto una capacità di stampare i conteggi AST assegnati tra ciascun passaggio
  • ha aggiunto un nuovo alias gdb a compilatore --gdb: 'loc' stampa di un nodo AST posizione
  • notevolmente migliore attuazione della pragma / bandiere per evitare casi di errore
  • rimosso diversi casi di confronti tra stringhe inutili compilatore
  • rimosso uso soggetto a errori di CHPL_TASKS e CHPL_THREADS come simboli del preprocessore
  • aggiunto documentazione BestPractices per gli sviluppatori (non incluso nel rilascio)
  • cambiato munging interno di '=' e '==' a 'ASSIGN' e 'uguale a' rispettivamente
  • aggiunto un flag --print-id-on-error sviluppatore per stampare ID AST sugli errori
  • migliorato la severità di C ++ prototipo controllo
  • aggiunto accordi collaboratore esterno alla struttura SVN (non nella versione)
  • ha aggiunto una nozione di tipi interni utilizzati dal compilatore, ma non l'utente

Programmi simili

Jess
Jess

3 Jun 15

KBasic
KBasic

2 Jun 15

Erlang
Erlang

18 Feb 15

bf
bf

2 Jun 15

Commenti a Chapel

I commenti non trovato
Aggiungi commento
Accendere le immagini!