UNIVERSITA DEGLI STUDI DI ROMA La Sapienza F ACOLTÀ DI S CIENZE M ATEMATICHE, F ISICHE E N ATURALI C ORSO DI L AUREA S PECIALISTICA IN I NFORMATICA F ORMAL.

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
Comitato di Studio B3 - Substation Latina, 24 novembre Cigré Session 2010 Daris Falorni Membro italiano SC B3 43 ma Sessione Generale Cigré Parigi,
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Il filmato digitale Lidia Falomo. Video Filmato: successione di frame.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Relatore:Candidato:
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
Metodi Quantitativi per Economia, Finanza e Management Lezione n°7.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
Sviluppo di Software Sicuro - S 3 Condizioni di verifica in pratica Corso di Laurea Magistrale in Sicurezza Informatica: Infrastrutture e Applicazioni.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Teoria a molti-corpi della materia nucleare. Testi di riferimento Nuclear methods and the nuclear Equation of State, International review of Nuclear Physics,
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Introduzione Grid1 Introduzione ai Sistemi Grid. Introduzione Grid2 Generalità Un sistema Grid permette allutente di richiedere lesecuzione di un servizio.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Compito desame del Svolgimento della Sezione 5: CONTROLLORI Esempio preparato da Michele MICCIO.
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
Milano, 10 Novembre 2010 Accreditamento JACIE: è utile per i pazienti?
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
University of Pisa Computer Science Department System Administration Processi, task periodici, stampa Stefano Bistarelli University of Pisa Computer Science.
MIC 2008, Roma Antonio Pistoia Università Politecnica delle Marche MOODLELab Uno strumento per MOODLE per la gestione dei telelaboratori durante i corsi.
Calcolo di Modelli Stabili Attraverso la Semplificazione di Programmi Logici Fabrizio Magni Relatore: Prof.ssa Stefania Costantini Corelatore: Dott. Alessandro.
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Un esempio: Registrazione e lettura di dati in un file
1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab Nanodesktop Software development kit per sistemi.
Muoversi tra le finestre
RIQUALIFICAZIONE ENERGETICA DI UN RUSTICO SITO A VORNO (LU)
Corso di Elementi di Informatica
Costruzione e analisi degli interventi
Introduzione al linguaggio C++ Costruzione di tipi di dati del programmatore.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
L’azienda prima dell’intervento:
corso di public speaking
Piano di Comunicazione PROGRAMMA OPERATIVO NAZIONALE PER LE REGIONI DELLOBIETTIVO 1 Campania, Puglia, Basilicata, Calabria, Sicilia,
Perché insegnare statistica a scuola Utilità della Statistica 1.è a fondamento della crescita democratica di un nazione moderna 2.è essenziale per monitorare.
OR4 (MODELLI) NOV- FEB.
GLI STUDI DI SETTORE: UN PROCESSO GRADUALE DI EMERSIONE IN UN CONTESTO DI COMPLIANCE 1.
AgentGroup MEnSA Project - Future work Agent and Pervasive Computing Group Dipartimento di Ingegneria dellInformazione Università degli Studi di Modena.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
Università degli Studi di Palermo Associazione SINTESI - SINergie TEcnologiche in SIcilia CRES - Centro per la Ricerca Elettronica in Sicilia Automatizzazione.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
IV Congresso Nazionale SISMES
(1) Sistemi Operativi Prof. P. Cattaneo ufficio: L Ricevimento: Martedì14.00 –
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Struttura elettronica e spettri di eccitazione di cluster finiti S.Coriani,P. Decleva, G. Fronzoni, M. Stener, R. De Francesco, D. Di Tommaso, D. Toffoli.
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
BACKGROUND. Double-blinded, randomized, 6-days, crossover study Patients were admitted to the Department of Pediatric Federico II University, Naples.
20 maggio 2002 NETCODE Set up a thematic network for development of competence within the Information Society.
Pippo.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
Collection & Generics in Java
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Italian 1 -- Capitolo 2 -- Strutture
1 How to generate testing models into MDA approach to software development. A beginner’s point of view. Università degli Studi dell’Aquila Facoltà di Scienze.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
1 Acceleratori e Reattori Nucleari Saverio Altieri Dipartimento di Fisica Università degli Studi - Pavia
Transcript della presentazione:

UNIVERSITA DEGLI STUDI DI ROMA La Sapienza F ACOLTÀ DI S CIENZE M ATEMATICHE, F ISICHE E N ATURALI C ORSO DI L AUREA S PECIALISTICA IN I NFORMATICA F ORMAL V ERIFICATION OF P ARALLEL C OMPUTING : ISP – I N -S ITU M ODEL C HECKER Anno Accademico 2008/2009 R ELATORE Prof. Enrico Tronci Prof. Ganesh Gopalakrishnan C ANDIDATO Simone Atzeni

Introduzione ISP – In-Situ Model Checker Gestione delle MPI Collective Routine Conclusioni

Introduzione ISP – In-Situ Model Checker Gestione delle MPI Collective Routine Conclusioni

Introduzione MPI – Message Passing Interface standard de-facto per programmi paralleli impiego su cluster, supercomputer, etc. API per C/C++/Fortran semantica complessa delle funzioni Model Checking verifica di sistemi concorrenti a stati finiti riduzione dello spazio degli stati deadlock assertion violation resource leak 1/18

[ISP – In-Situ Model Checker] Introduzione ISP – In-Situ Model Checker Gestione delle MPI Collective Routine Conclusioni

[ISP – In-Situ Model Checker] ISP - In-Situ Model Checker - Verifica di programmi MPI Two-Sided Communication Cattura 45 chiamate MPI differenti Individua deadlock, resource leak, assertion violation Esplora tutti e solo gli interleavings rilevanti 2/18

[ISP – In-Situ Model Checker] ISP - In-Situ Model Checker - Verifica di programmi MPI Two-Sided Communication Cattura 45 chiamate MPI differenti Individua deadlock, resource leak, assertion violation Esplora tutti e solo gli interleavings rilevanti 2/18

[ISP – In-Situ Model Checker] ISP - In-Situ Model Checker - Verifica di programmi MPI Two-Sided Communication Cattura 45 chiamate MPI differenti Individua deadlock, resource leak, assertion violation Esplora tutti e solo gli interleavings rilevanti 2/18

[ISP – In-Situ Model Checker] Programmi MPI Una fence è una funzione MPI bloccante, deve essere quindi completata prima che lo stesso processo effettui una qualsiasi altra chiamata MPI. Esempi di fence sono MPI_Barrier, MPI_Wait, MPI_Recv, ecc.. Fence 3/18 1° Passo - Profiler intercetta le MPI_f fino al raggiungimento di una FENCE per ogni processo 2° Passo - Scheduler esegue lalgoritmo POE - se trova un match-set per ogni MPI_f intercettata riprende dal passo 1 POE - Partial Order reduction avoiding Elusive interleavings - - altrimenti termina lesecuzione e segnala il DEADLOCK Due passi di verifica

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime Isend(1,req) sendNext Barrier NO FENCE 4/18

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime Irecv(*,req) sendNext NO FENCE Barrier Isend(1,req) Barrier 5/18

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime Barrier FENCE Irecv(*,req) Barrier Isend(1,req) Barrier 6/18

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime Barrier Isend(1,req) Barrier Irecv(*,req) Barrier MATCH-SET 7/18

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime sendNext Barrier Isend(1,req) Barrier Irecv(*,req) Barrier Wait(req) Recv(2) Isend(1,req) Wait(req) FENCE NO FENCE 8/18

[ISP – In-Situ Model Checker] POE at work Process 0 Scheduler Isend(1,req ) Process 1 Process 2 Barrier Wait(req) Irecv(*,req) Barrier Recv(2) Wait(req) Barrier Isend(1,req ) Wait(req) MPI Runtime Barrier Isend(1,req) Barrier Irecv(*,req) Barrier Wait(req) Recv(2) MATCH-SET NO MATCH- SET DEADLOCK Isend(1,req) Wait(req) 9/18

Gestione delle MPI Collective Routine Introduzione ISP – In-Situ Model Checker Gestione delle MPI Collective Routine Conclusioni

Gestione delle MPI Collective Routine Collective Routines Behavior Una Collective Communication è una comunicazione che coinvolge tutti i processi in un comunicatore. MPI BcastMPI ReduceMPI ScatterMPI GatherMPI Barrier LMPI Standard definisce le Collective Routine come funzioni bloccanti. 10/18 MPI Bcast e MPI Reduce, sono bloccanti solo per il processo root. Risultati sperimentali MPI Forum

Collective Routines Behavior ISP gestisce ogni Collective Routine come se fosse bloccante per ogni processo Modifica dellalgoritmo POE process ID == root 11/18 Gestione delle MPI Collective Routine Problema int MPI_Bcast(void* message, …, int root, …); int MPI_Reduce(void* message, …, int root, …, MPI_Op operator, …); MPI_f è bloccante MPI_f è non-bloccante process ID <> root Non rileva alcuni DEADLOCK nei programmi che utilizzano MPI Bcast e MPI Reduce

Esempio P0: MPI_Recv(DATA1, from *,...); MPI_Reduce(..., ROOT = 0,...); MPI_Recv(DATA2, from *,...); printf(..., DATA1, DATA2); P1: MPI_Send(DATA1 = 10,..., to P0,...); MPI_Reduce(..., ROOT = 0,...); P2: MPI_Reduce(..., ROOT = 0,...); MPI_Send(DATA2 = 20,..., to P0,...); Librerie MPI Il programma termina correttamente stampando 10 – 20 Il programma termina correttamente stampando Il programma non termina a causa di unDEADLOCK Tre possibili INTERLEAVING MPICH2OpenMPI Microsoft MPI 12/18 Gestione delle MPI Collective Routine

Prima della Modifica - ISP gestisce la Reduce come chiamata BLOCCANTE - Fence 1: match tra la prima Receive del Processo 0 e la Send del Processo 1. Fence 2: match tra le Reduce dei tre processi. Fence 3: match tra la seconda Receive del Processo 0 e la Send del Processo 2. Il programma termina correttamente e stampa /18 Gestione delle MPI Collective Routine ISP genera un solo INTERLEAVING

Fence 1: match tra la prima Receive del Processo 0 e la Send del Processo 1. Fence 2: match tra le Reduce dei tre processi. Fence 3: match tra la seconda Receive del Processo 0 e la Send del Processo 2. ROOT 14/18 Gestione delle MPI Collective Routine Dopo la Modifica - ISP gestisce la Reduce come chiamata non BLOCCANTE - 1° INTERLEAVING Il programma termina correttamente e stampa Esplora i 3 possibili interleaving del programma

Fence 1: match tra la prima Receive del Processo 0 e la Send del Processo 2. Fence 2: match tra le Reduce dei tre processi. Fence 3: match tra la seconda Receive del Processo 0 e la Send del Processo 1. 15/18 Gestione delle MPI Collective Routine Il programma termina correttamente e stampa Dopo la Modifica - ISP gestisce la Reduce come chiamata non BLOCCANTE - ROOT 2° INTERLEAVING

Fence 1: match tra la prima Receive del Processo 0 e la Send del Processo 2. Fence 2: il Processo 2 termina, il Processo 0 è bloccato in attesa di un match con gli altri processi per la Reduce, il Processo 1 è bloccato in attesa di un match per la sua Send. 16/18 Gestione delle MPI Collective Routine Dopo la Modifica - ISP gestisce la Reduce come chiamata non BLOCCANTE - Il programma non termina e ISP segnala il DEADLOCK ROOT 3° INTERLEAVING

Introduzione ISP – In-Situ Model Checker Gestione delle MPI Collective Routine Conclusioni

Sviluppi Futuri Conclusioni Estendere il numero di chiamate MPI gestite Sviluppo di ISP Plug-in (Visual Studio e Eclipse) 17/18 Verifica di programmi caratterizzati da un paradigma di comunicazione One-Sided

Conclusioni ISP rappresenta una realizzazione pratica dellobiettivo della Verifica Formale nel contesto del calcolo parallelo Garantisce Portabilità (Mac OS, Linux, Windows) Garantisce Correttezza (no falsi positivi) Garantisce Completezza (non tralascia interleaving rilevanti) 18/18 Conclusioni

UNIVERSITA DEGLI STUDI DI ROMA La Sapienza F ACOLTÀ DI S CIENZE M ATEMATICHE, F ISICHE E N ATURALI C ORSO DI L AUREA S PECIALISTICA IN I NFORMATICA F ORMAL V ERIFICATION OF P ARALLEL C OMPUTING : ISP – I N -S ITU M ODEL C HECKER Anno Accademico 2008/2009 GRAZIE