La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

1 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

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

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

4 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

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

6 [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

7 [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

8 [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

9 [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

10 [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

11 [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

12 [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

13 [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

14 [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

15 [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

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

17 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

18 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

19 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 20 - 10 Il programma non termina a causa di unDEADLOCK Tre possibili INTERLEAVING MPICH2OpenMPI Microsoft MPI 12/18 Gestione delle MPI Collective Routine

20 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 10 - 20 13/18 Gestione delle MPI Collective Routine ISP genera un solo INTERLEAVING

21 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 10 - 20 Esplora i 3 possibili interleaving del programma

22 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 20 - 10 Dopo la Modifica - ISP gestisce la Reduce come chiamata non BLOCCANTE - ROOT 2° INTERLEAVING

23 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

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

25 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

26 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

27 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


Scaricare ppt "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."

Presentazioni simili


Annunci Google