Dapper (Distributed e programma parallelo Execution Runtime) è uno strumento per domare la complessità di sviluppo per il cloud su larga scala e il grid computing, che permette all'utente di creare calcoli distribuiti da l'essenziale - il codice che execut
Perché Dapper?
Viviamo in tempi interessanti, in cui scoperte nel campo delle scienze sempre dipendono dalla crescente disponibilità e l'abbondanza di commodity, risorse di calcolo in rete. Con l'aiuto della nube o griglia, calcoli che altrimenti funzionare per giorni su una singola macchina desktop ora sono distribuiti e / o formulazioni parallele che può sfornare attraverso, in poche ore, ingresso imposta dieci volte più grande su un centinaio di macchine . Per quanto seducente come l'idea di forza nei numeri può essere, avendo appena hardware fisico non è sufficiente - un programmatore deve imbarcazioni il calcolo effettivo che verrà eseguito su di esso. Di conseguenza, l'elevato valore immesso sul sforzo umano e la creatività richiede un ambiente di programmazione che permette, e perfino incoraggia, espressione succinta calcoli distribuiti, e allo stesso tempo non sacrifica generalità.
Dapper, in piedi per distribuita e Parallel Program Execution Runtime, è uno di questi strumenti per colmare le specifiche di livello alto lo scienziato / del programmatore che catturano l'essenza di un programma, con i meccanismi di basso livello che riflettono le realtà sgradevoli di calcolo distribuito e parallelo. Sotto il suo approccio orientato al flusso di dati, Dapper consente agli utenti di codificare a livello locale in Java ed eseguire a livello globale sulla nuvola o griglia. L'utente scrive prima codelets, o piccoli frammenti di codice che svolgono compiti semplici e non lo fanno, di per sé, costituiscono un programma completo. In seguito, lui o lei indica come quei codelets, visti come i vertici del flusso di dati, trasmettono i dati tra loro tramite relazioni di bordo. Il grafico a flusso di dati aciclico risultante è un programma completo interpretabile dal server Dapper, che, dopo essere stato contattato da clienti lavoratori longevi, in grado di coordinare l'esecuzione distribuita.
In base al modello di Dapper, l'utente non deve più preoccuparsi di aspetti tradizionalmente ad hoc di gestione del Cloud o Grid, che includono la gestione di interconnessione di dati e le dipendenze, recupero da errori, distribuire il codice, e posti di lavoro a partire. Forse ancora più importante, fornisce un intero toolchain e runtime basato su Java per inquadrare quasi tutte le computazioni distribuite a grana grossa in un formato coerente che permette una rapida implementazione e di facile trasporto ad altri ricercatori.
Caratteristiche
- Un sistema di distribuzione del codice che consente al server Dapper per trasmettere il codice del programma richiesto attraverso la rete e avere clienti caricare dinamicamente esso. Una conseguenza di questo è che, salvo eseguibili esterni, aggiornamenti di Dapper programmi devono avvenire solo sul lato server.
- Un potente metodo di inserimento subflow per modificare dinamicamente il flusso di dati del grafico in fase di esecuzione.
- A runtime Java di vaniglia, una lingua che molti sono senza dubbio a conoscenza. A parte la necessità di una recente JVM e facoltativamente Graphviz Dot, Dapper è auto-contenuto.
- Un protocollo di controllo robusto. Il server Dapper prevede un qualsiasi numero di clienti a fallire, in qualsiasi momento, e ha politiche ri-esecuzione e timeout personalizzabili per far fronte. Di conseguenza, si può avviare e fermare (a lunga durata) clienti senza paura di mettere l'intero sistema in uno stato incoerente.
- semantica flessibili che permettono il trasferimento di dati tramite file o flussi TCP.
- L'interoperabilità con i firewall. Dal momento che la tua nuvola locale o griglia siede probabilmente dietro un firewall, abbiamo elaborato la semantica speciali per lo streaming di trasferimento dei dati.
- termini di licenza Liberal. Dapper è rilasciato sotto licenza LGPL per prevenire la contaminazione della vostra codebase.
- Operazione come applicazione incorporata. Un manuale descrive l'API di programmazione che gli utenti possono seguire per eseguire il server Dapper all'interno di un'applicazione come Apache Tomcat.
- Funzionamento come interfaccia utente autonoma. Con esso, si può eseguire dimostrazioni off-the-shelf e imparare concetti fondamentali da esempi visivi. Seguendo un insieme minimo di convenzioni, si può poi impacchettare i propri programmi Dapper come archivi di esecuzione, e quindi ottenere lo status flusso di dati in tempo reale e il feedback di debugging.
Cosa c'è di nuovo in questa versione:
- Il metodo ServerLogic # closeIdleClients è stato modificato in modo che corrisponda meglio la nozione intuitiva dell'utente di pigrizia.
- È stata aggiunta una opzione di utente per specificare il nome host del server.
- interni di rete sono stati rielaborati a utilizzare le nuove API.
- Il processo di creazione è stato aggiornato per supportare sia a 32 e 64 bit di Windows cross-compilazione.
- Il azzimato. * Gerarchia è stato rinominato org.dapper. *.
Cosa c'è di nuovo nella versione 0.96:
- Aggiunta l'astrazione FlowListener, in modo che gli utenti possono ora metadati associato con i flussi di dati ei loro nodi.
- Risolto un problema di memoria nel server Dapper.
- Aggiunto tag apiviz doclet in modo che i rapporti tra le classi possono essere meglio visualizzati.
- apiviz aggiunto per la visualizzazione delle dipendenze in Javadoc.
- Corretto un piccolo bug nella BuildAndTest eseguibile.
- Il processo di creazione è ora completamente integrato con Apache Ivy. La distribuzione dei sorgenti di navi ora più lunghi con la SST. Invece, le dipendenze vengono scaricati automaticamente; in mancanza di questa, si può scaricare il codice sorgente SST, compilarlo, e pubblicare in un repository locale. Vedere il manuale utente per maggiori dettagli.
- Aggiornamento processo di costruzione e passaggi ridondanti rimossi.
- copyright normalizzato e licenze comunicazioni di tutti i file.
- Java 1.6 è ora richiesto per costruire ed eseguire.
- Cambia processo di utilizzare Apache Ivy, il che significa che le dipendenze esterne non devono più essere confezionato con la distribuzione principale SST build.
- Aggiunto 'doxygen' obiettivo di costruire processo in modo che i componenti nativi può essere documentato.
Cosa c'è di nuovo nella versione 0.95:
- è stato aggiunto
Una nuova infrastruttura di registrazione flessibile
- Initializers per le strutture di registrazione sono stati spostati fuori delle classi server e client e nei driver.
- macchine a stati finiti sono stati aggiornati alla nuova API di annotazione-driven.
- Il codice sorgente è stato normalizzato per avere 8 spazi invece di tabulazioni.
Cosa c'è di nuovo nella versione 0.94:
- opzioni della riga di comando per il client e il server sono ora disponibili, per gentile concessione della biblioteca Apache Commons CLI.
- Il ciclo di vita processo client è ora definita come termina quando una disconnessione dal server avviene.
- Stem funzionalità generazione si è spostato dall'essere un metodo membro di OutputHandleResource ad essere un metodo statico di CodeletUtilities.
- La classe FlowNodeFactory è utilizzato a favore di esemplificazione diretta di FlowNodes.
- Costruzione di componenti nativi ha migrato alla CMake.
- registrazione è migrato a SLF4J.
- Un README è stato aggiunto a tutte le distribuzioni.
Cosa c'è di nuovo nella versione 0.93:.
- notevolmente migliorato esempi pedagogici
- manuale aggiornato.
- Aggiunta di convenienza routine in dapper.codelet.CodeletUtilities per risorsa interrogazione.
- Generator Rimosso, FileEdge, FileBatchGenerator, FileBatchEdge, FileResource e FileBatchResource. Essi sono stati sostituiti con il concetto di manici di dati astratti in forma di HandleEdge, InputHandleResource, OutputHandleResource. Per le modifiche, consultare il manuale.
- dapper.codelet.Resource aggiornato per esportare i flussi di input e output.
Requisiti
- Java 2 Standard Edition Runtime Environment
I commenti non trovato