Piattaforme abilitanti per griglie computazionali ad alte prestazioni orientate a organizzazioni virtuali scalabili Rimodulazione WP8 High-performance Component-based Programming Environment Obiettivo WP8 • definizione, progettazione ed implementazione di un prototipo di ambiente di programmazione – – – – ad alte prestazioni per ambiente GRID basato su componenti per sviluppo di applicazioni complesse di carattere interdisciplinare Gruppi coinvolti • • • • • • • UNIPI (coordinamento workpackage) ISTI (CNR PI) ICAR (CNR NA-PA-CS) UNICAL CEDRM (CNR Roma) IMATI (CNR Ge) UNIMIB Ambiente di programmazione • ambiente classico – editore, strumenti di compilazione, framework di esecuzione • ambiente PSE – PSE toolkit – accesso più user friendly alle caratteristiche dell’ambiente classico + tecniche classiche PSE Tecnologia a componenti • utilizzata a diversi livelli – utente (programmazione di applicazioni) – progettista dell’ambiente (programmazione di strumenti) – di sistema (programmazione di macchina astratta portabile) • con diritti diversi per utenti diversi Punto di partenza • risultati di progetti precedenti – PQE2000 e ASI-PQE2000 • risultati di progetti congiunti – Agenzia2000, 5% 1999 e 5%2000 • risultati in letteratura su ambienti di programmazione strutturati e componenti (algorithmical skeleton, design pattern, coordination, components, ...) Attività del WP Riduzione delle attività : 2 attività principali 1. Sviluppo ambiente di programmazione • sottoattività relative a • • librerie e PSE 2. Resource management • supporto per ambiente di programmazione Attività 1: ambiente di programmazione • studio modello componenti • progettazione ambiente programmazione ad alte prestazioni • applicazioni testbed • integrazione di librerie • sviluppo PSE toolkit per ambiente di programmazione Attività 2: resource management • studio di strategie per scelta ottimale di risorse • sviluppo di strumenti/infrastrutture di supporto alle strategie di scelta • sviluppo di algoritmi/strategie di allocazione e coallocazione di risorse Applicazioni & librerie • non sovrapposizione con WPappl e WP9 • Applicazioni – test bed per generare feedbacks verso attività di progettazione dell’ambiente – gruppi in strettissimo contatto con sviluppatori ambiente • Librerie – integrazione completa (definizione meccanismi) – gruppi in strettissimo contatto con sviluppatori ambiente Esempi • interrogazione, semplificazione e compressione parallela di dati volumetrici (IMATI) • sviluppo di software per analisi di librerie molecolari virtuali (approcci con reti bayesiane e metodi Monte Carlo) • integrazione di librerie scientifiche sfruttando modello a componenti Attività: scheduling • Primo anno – fattibilità, letteratura, progettazione di massima (attualmenti in pieno svolgimento) • Secondo anno – progetto architetturale – inizio della fase di prototipazione • Terzo anno – trasferimento WP applicativi – versione (beta?) del software Primo anno (dettaglio) • studio/individuazione del modello a componenti da adottare: - Coinvolti tutti i gruppi, in particolare UNIPI, ISTI, CEDRM, UNICAL e ICAR • inizio della progettazione dello schema architetturale di massima dell'ambiente - UNIPI, ISTI • individuazione delle applicazioni e delle librerie da utilizzare come testbed - IMATI, ICAR, UNIMB • studio di strategie di allocazione delle risorse in grado di supportare il modello di programmazione dell'ambiente - UNIPI, ISTI • studio delle caratteristiche di un PSE toolkit da sviluppare sopra all'ambiente di programmazione - UNICAL, ICAR Secondo anno (dettaglio) • completamento della progettazione dello schema di realizzazione dell'ambiente e inizio della fase di codifica - DIPISA, ISTI, ICAR, CEDRM • sviluppo di applicazioni/librerie con la metodologia definita dall'ambiente e con le parti dell'ambiente via via disponibili con feedback sull'attivita' di progettazione e realizzazione dell'ambiente - IMATI, UNIMIB, ICAR • completamento della progettazione del PSE toolkit ed inzio della fase di codifica - UNICAL, ICAR • sviluppo strumenti/infrastrutture di supporto alle strategia di scelta delle risorse - ISTI • sviluppo di algoritmi/strategie di allocazione e coallocazione di risorse - ISTI Terzo anno (dettaglio) • completamento dell'ambiente di programmazione (versione alfa/1) - DIPISA, ISTI, ICAR, CEDRM • porting delle applicazioni/librerie sull'ambiente - ICAR, IMATI, UNIMIB • consolidamento delle strategie di resource management per l'ambiente - ISTI • realizzazione di prototipi di PSE sull'ambiente di programmazione o che comunque sfruttino la metodologia di progetto e implementazione dell'ambiente - UNICAL, ICAR Sinergie con altri WP • WP1&WP2 – modello di utilizzo di rete • WP3/5 – deployment di griglia & meccanismi • WP4 – meccanismi di sicurezza per ambiente Sinergie con altri WP (2) • WP6 – knowledge discovery per resource management • WP7 – portali ed ambienti di programmazione • WP9 – integrazione di librerie • WP appl – metodologie, strumenti e case studies Sinergie (assessed) • WP1&2 – riunioni per definire coordinamento (fatte) • WP3&5 – incontri per discussione caratteristiche (progettati) • WP6 – riunioni per definire coordinamento (fatte) • WPappl – cooperazione “metodologica” prima dei tools (progettata) Deliverable (primo anno) • Sostanzialmente – rassegne (critiche) – studi di fattibilità – progetti di massima • frutto dell’attività di studio – delle varie componenti WP8 • base per l’attività di codifica & sperimentazione del 2o anno Deliverable (dettaglio) • Descrizione del modello di componenti da adottare all'interno del progetto/workpackage (WP8 component model) Responsabilità UNIPI Previsto per Dicembre 2003 • Progetto architetturale di massima dell'ambiente di programmazione a componenti, per griglia e alte prestazioni (WP8 programming environment architectural design 0.1) Responsabilità UNIPI Previsto per Marzo 2004 • Caratteristiche di un PSE toolkit per alte prestazioni, a componenti, sviluppato in sinergia con l'ambiente di programmazione WP8 (PSE toolkit) Responsabilità UNICAL Previsto per Dicembre 2003 Deliverable (dettaglio (2)) • Strategie di allocazione delle risorse per il supporto dell'ambiente di programmazione e PSE toolkit (Resource policy and tools) Responsabilità ISTI Previsto per Dicembre 2003 • Strategie per l'integrazione di librerie in ambienti a componenti (Component based library intergration/interoperability) Responsabilità ICAR (+IMATI) Previsto per Dicembre 2003 • Strategie per lo sviluppo in ambienti a componenti di applicazioni parallele complesse con struttura irregolare e requisiti di alte prestazioni rispetto a diversi parametri architetturali (CPU, memoria, I/O). (Component based development of irregular applications) Responsabilità IMATI Previsto per Dicembre 2003 Attività in corso • Divisione del lavoro in 4 task principali • divisione “logica” ( amministrativa) • ogni task: – 1 coordinatore/responsabile • attività di collegamento – personale di gruppi diversi • interfaccia elettronica (mailing list, etc.) – al lavoro da aprile/maggio – assessment dei goal e avvio del lavoro già fatta Task • Task 1 – analisi dei requisiti di ambiente a componenti per ambiente di programmazione • Task 2 – analisi delle proposte di componenti esistenti • Task 3 – resource management per ambienti avanzati di programmazione • Task 4 – supporti di ambienti avanzati di programmazione strutturati a componenti Task: obiettivi • estate – checkpoint • autunno – task 1 2 e 4 convergono al modello di componenti WP8 – task 3 contribuisce principalemente alla parte supporto • contributo essenziale ai deliverable del primo anno Finanziamenti & contratti • Finanziamenti – rimodulati in base alle riduzioni di budget – e in base alla ristrutturazione degli obiettivi • Contratti – giovani ricercatori (main resources) – contratti & Co.co.co (risorse addizionali) ICAR CS NA PA CEDR M ISTI UNIPI IMA UNIMI Totale Keuro 246 108 81 51 459 301 181 40 1o anno 82 36 27 17 153 100 63 14 2o anno 82 36 27 17 153 100 63 13 3o anno 82 36 27 17 153 100 63 13 PSE Toolkit Integr. librerie Impl. Ambiente + librerie Sviluppo modello componenti Res. manag. + ambiente Sviluppo ambiente Integr. librerie Integr. Librerie 1467 Keuro Task principale Tipo contratto Giovani ricercatori No 1 2 1 1 1 Assegni di ricerca Co.co.co Unità Durata Stato ISTI 3 anni Partiti 1 maggio 2003 UNIPI 3 anni Partiti 1 maggio 2003 ICAR-PA 3 anni 6 m.u. Nel primo anno ICAR-NA 3 anni 6 m.u. Nel primo anno UNIMIB 2 ISTI 2 IMA 1 ICAR-NA 1 ICAR-CS 1 ICAR-PA 1 CEDRM Da assegnare 1 anno Partiti 1/05/03 e 1/06/03 3 anni Da assegnare 3 m.u. nel primo anno 6 m.u. nel primo anno 4. m.u. nel primo anno 2 m.u. nel primo anno Ambiente di programmazione Parallel appl. programmer Parallel component repository PSE toolkit Appl. component repository Parallel component framework Basic component repository Scripting framework Standard GRID services (abstract machine) Ambiente di programmazione (2) • programmatore sceglie componenti – per strutturare comportamento concorrente della propria applicazione • framework a componenti – implementa scelte concorrenti in parallelo O distribuito a seconda della disponibilità di risorse – anche dinamicamente Componente parallela Pipeline a due stadi in out stadio1 stadio2 istanziazione ma anche compilazione (tecniche statiche o dinamiche) f°g f g Componente parallela (2) f°g • esecuzione sulla griglia – acquisizione risorse, scheduling attività • ottimizzazione tipiche della forma parallela – bilanciamento (statico/dinamico) sugli stadi Componente // (hint opt.) Pipeline a due stadi in out stadio1 stadio2 • parametri “funzionali” (concorrenza!) – codice/componente stadio, canali I/O • parametri “di ottimizzazione” (opzionali) – requisiti stadio, politiche di bilanciamento (farm lento, raggruppa, ...), ... Basic component (es.1) allocazione iniziale (o di default) politiche di caching Gestione dati condivisi fra processi distribuiti XDR (marshalling& unmarshalling) dimensione dei dati tipo dei dati Basic component (es. 2) Politiche di bufferizzazione Protocollo di trasporto Politiche di combining Canale di comunicazione Mittente Destinatario Sincronia Capacità Scripting di componenti • modo effettivo per la combinazione di componenti implementativi – facility per il programmatore – target degli strumenti di compilazione &/o implementazione dei livelli superiori • in parte sostituisce ed in parte integra il framework dove vivono i componenti • livelli scriptability diversi per utenti diversi Ambiente di programmazione PSE toolkit Ambiente programmazione (editing di componenti + comandi di esecuzione) GRID (tutto quanto fa griglia, hw, sw, mw ...)