verifica 4 luglio 2003 diego puppin isti-cnr task 2 diego puppin
TRANSCRIPT
![Page 1: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/1.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Task 2Task 2
Diego Puppin
![Page 2: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/2.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
AgendaAgenda
● Prima parte– Rivisti le forze e gli obiettivi
– Nuovi traguardi per fine estate
● Seconda parte– Il modello di componenti CCA
– Babel
– CCAffeine
– Prime misure
– Primi commenti
![Page 3: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/3.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
PersonePersone
● Prima (aprile)● Coordinatamento: Puppin
● Dip. Pisa: Vitale, Ravazzolo, Petrocelli
● CNR Pisa: Laforenza, Fagni, Tonellotto
● Palermo: Machi
● Genova: Clematis, D'agostino, De Marco, Giannuzzi
● Roma: Vitale
![Page 4: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/4.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
PersonePersone
● Dopo (luglio)● Coordinatamento: Puppin (CCA, XCAT)
● Dip. Pisa: (nuove forze?)
● CNR Pisa: Fagni (XCAT)
● Palermo: Machi, Lombardo (porting applicazioni)
● Genova: Moscati (porting applicazioni)
● Roma:
Se prima eravamo in 10 a ballare l'hully-gully... adesso siamo in 5 a ballare l'hully-gully
![Page 5: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/5.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
ObiettiviObiettivi
● Prima (aprile)● Analisi di ambienti a componenti:
– CCA (CNR)
– XCAT (CNR)
– WebService (CNR)
– CCM (Dip. Pisa)
– JavaBeans (Vitale)
– Librerie Parallele (Genova, Palermo)● Considerando sicurezza e applicazioni
![Page 6: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/6.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
ObiettiviObiettivi
● Dopo (luglio)– Analisi (e sviluppo) di CCAffeine
– XCAT inutilizzabile al momento● Globus 2.2.4 usato (non supportato al CNR)● Non c'e' supporto per GTK 2.4
– CCM e WebServices dati per dispersi
– Nessuna notizia su JavaBeans
– A Genova, porting dell'applicazione su CCA
– Qualcuno deve andare a Palermo per far partire il porting
![Page 7: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/7.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
MoraleMorale
● Per l'estate avremo, probabilmente, solo dati su CCAffeine
● Ci sara' un lavoro iniziale di porting delle applicazioni di Genova e Palermo
● Genova: 3000 linee, buon benchmark
![Page 8: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/8.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Problemi di comunicazioneProblemi di comunicazione
● Mailing list: FWDed to /dev/null● Richiesta di un responsabile locale in ogni gruppo
(Pisa, Roma....)● Richiesta di un account su ogni macchina per
prove● Feedback su metodologia d'analisi (solo marcod)● Con Task 1: debole coordinazione sugli scopi
![Page 9: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/9.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Prossimi passiProssimi passi
– Due gruppi completano in parallelo il porting, su due tecnologie diverse:
– CCA/Globus/Web Service– Assist– Confronto prestazioni e caratteristiche– Position paper su ambienti componenti
esistenti– Risultati sperimentali sull'applicazione di
Ge/Pa
![Page 10: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/10.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
CCACCA
Puppin Diego
![Page 11: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/11.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Standard CCACommon Component Architecture
Standard CCACommon Component Architecture
● Promuove uno standard per lo sviluppo di applicazioni eterogenee. Vari ambienti:– Orientati alle applicazioni distribuite– Orientati alle applicazioni SPMD (SCMD)– Interfaccia con Globus– Supporto per MPI/PVM ecc.
● Defisce una serie di servizi minimi per una componente– Port, getPort, setServices
![Page 12: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/12.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Varie piattaforme CCAVarie piattaforme CCA
● Ccaffeine
– SPMD/SCMD parallel
– Direct connection
● CCAT / XCAT– Distributed
– Network connection
● SCIRun– Parallel, multithreaded
– Direct connection
● Decaf– Language interoperability via Babel
![Page 13: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/13.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Perche' una componentePerche' una componente
● Permette che diversi languaggi, diverse piattaforme co-operino
● Permette l'evoluzione a moduli del software (utile con librerie e servizi esterni)
![Page 14: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/14.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Cos'e' una componenteCos'e' una componente
● E' un'unita' di sviluppo:– Componibile
– Con chiara definizione di cio' che usa e fornisce
– Con una chiara interfaccia all'esterno
– Non ha stato interno, non ci sono dati globali
● Simile ai package di Java– Separata dalle altre componenti
– Sviluppata autonomamente
● In soldoni, si possono creare componenti a partire da classi
● MA una componente esiste solo col supporto di un ambiente
![Page 15: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/15.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Warning (dal sito)Warning (dal sito)
● Can I use CCA today for scientific applications?– yes, but it is a research project
![Page 16: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/16.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
BabelBabel● Supporto all'uso di linguaggi di programmazione diversi
● Offre un'interfaccia simile a CORBA, ma orientata al calcolo scientifico– Dynamic multi-dimensional arrays
– Complex numbers (e.g. 2 + 3i)
– In-process optimizations
– Special directives for large-scale parallel distributed programming (future)
– Syntax for specifying interface behavior (future)
● C, C++, F77, Java, Python, F90
![Page 17: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/17.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
BabelBabel
● Per ogni classe, file IOR, skel, impl, stubs
● IOR: descrive l'Internal Object Representation di babel
● Skel fa la conversione ai dati nativi
● Impl fa scritta in qualunque linguaggio supportato
● Stubs chiamano il supporto di Babel
● Crea una tonnellata di file
– Permette di chiamare i metodi della componente da un qualunque linguaggio supportato
![Page 18: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/18.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Babel e CCAffeineBabel e CCAffeine
● Le porte di CCAffeine e le componenti vengono definite con Babel per maggior flessibilita'
● Facilita il riuso in ambienti diversi ● Il processo di wrapping e' lento, costoso,
introduce errori
![Page 19: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/19.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Esempio di wrappingEsempio di wrapping
● Crea l'interfaccia SIDL (Babel)● Inserisci l'implementazione in IMPL.c● Inserisci nell'impl i dettagli delle port CCA
(noioso!)● Creare i file wrapper e cca (perche'?)● Aggiustare i makefile● Incrociare le dita
![Page 20: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/20.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Problemi di software eng.Problemi di software eng.
● Babel e' un generatore di codice, dal SIDL● Fissa dei punti per inserire l'implementazione● MA altri file vanno creati a mano● Manca una chiara documentazione● Occorre seguire gli esempi del tutorial● Possibili errori “stupidi”, segnalati male● Verranno corretti nella prossima versione...
![Page 21: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/21.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Se tutto va bene...Se tutto va bene...
● Il framework lancia un'applicazione SPMD
● Ogni componente e' responsabile delle sue comunicazioni: MPI, PVM, Morse...
● La comunicazione all'interno di una macchina e' gestita dall'ambiente (che NON riconosce scorciatoie...)
● GUI rudimentale per creare e connettere componenti
● L'ambiente replica i comandi di creazione e connessione su tutte le macchine (uso interno di MPI)
● In via di sviluppo: componenti con parametri visibili dall'utente
![Page 22: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/22.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
![Page 23: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/23.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Creare nuove applicazioniCreare nuove applicazioni
FunctionPort
MidpointIntegrator
IntegratorPort
FunctionPort
MonteCarloIntegrator
IntegratorPort
RandomGeneratorPort
IntegratorPort
Driver
GoPort
NonlinearFunction
FunctionPort
LinearFunction
FunctionPort
RandomGenerator
RandomGeneratorPort
PiFunction
FunctionPort
Dashed lines indicate alternate
connections
Create different applications in "plug-and-play" fashion
![Page 24: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/24.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Insomma...Insomma...
● Fornisce un wrapping di MPI● Supporto allo sviluppo di ambiente eterogenei● NESSUNA funzionalita' di Grid● Tutte le interfacce devono essere in locale a
tempo di compilazione ● E' possibile comporre librerie .so (wrapping di
altre funzioni, possibilmente)● Non permette di importare servizi (GRIDLE)
![Page 25: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/25.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
In particolare, ogni componenteIn particolare, ogni componente
● Offre una o piu' porte di ingresso e uscita
● Identificate dal tipo
● Ereditarieta' e specializzazione delle porte
● Porte multiple per lo stesso servizio
● Una componente astrae una procedura: chiamata ricorsiva!!
![Page 26: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/26.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
![Page 27: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/27.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Flusso e comunicazioneFlusso e comunicazione
● Un solo flusso di controllo per processore
● Un solo comunicatore MPI
● Il programmatore deve gestire synch e comm
● Il programmatore deve gestire dati e codice condivisi
● La creazione e la connessione non e' disponibile a programma
● Una volta costruita l'applicazione e lanciata, non si possono cambiare le connessioni
![Page 28: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/28.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Problemi con la distribuzioneProblemi con la distribuzione
● Momento di transizione verso Babel● Supporto “studentesco” informale● Installazione estremamente complessa!
![Page 29: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/29.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
InstallazioneInstallazione
● Inizialmente rilasciato come tarball
● A fine maggio, rilascio segreto di RPM per RH7.3 e RH8 (io ho RH9 ☺)
● Richiede molto software: Python, Java, Ruby, Blas, Lapack, Babel, Boost, MPI
● Problemi con versioni e makefile
● Puo' richiedere una settimana per essere messo a punto!
● Per chi ci vuole giocare: disponibile su cavit.isti.cnr.it e cannonau.isti.cnr.it (Giancarlo permettendo)
![Page 30: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/30.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
High Performance?High Performance?
● Ne' piu' ne' meno di MPI● In mano al programmatore● Nel manuale: ottimizzazione dello scambio dati
tra componenti (eterogenee)● Se omogenee, forse non peggiora● NON riconosce scorciatoie in componenti omog.● Prime prove: grosso overhead!
![Page 31: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/31.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
![Page 32: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/32.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Test: Integrazione MPITest: Integrazione MPI
● Con componenti CCA● Sviluppo monolitico● CCA, con funzione inline● Monolite, inline
0
2.5
5
7.5
10
12.5
15
17.5
20
22.5
25
27.5
30
32.5
Confronto tempi
CCA
MONOLITE
CCA – senza func
MONOLITE -senza funcS
econ
di
![Page 33: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/33.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
● #0 functions::PiFunction_impl::evaluate() at functions_PiFunction_Impl.cc:47● #1 skel_functions_PiFunction_evaluate () at functions_PiFunction_Skel.cc:32● #2 functions::Function::evaluate() at functions_Function.cc:236● #3 integrators::MonteCarloIntegrator_impl::integrate() at
integrators_MonteCarloIntegrator_Impl.cc:134● #4 skel_integrators_MonteCarloIntegrator_integrate () at
integrators_MonteCarloIntegrator_Skel.cc:48● #5 integrators::Integrator::integrate() at integrators_Integrator.cc:237● #6 tutorial::Driver_impl::go() at tutorial_Driver_Impl.cc:100● #7 skel_tutorial_Driver_go () at tutorial_Driver_Skel.cc:45● #8 gov::cca::ports::GoPort::go() at gov_cca_ports_GoPort.cc:244● #9 BabelOpaqueGoPort::go() at BabelOpaqueGoPort.cc:28● #10 ConnectionFramework::goOne() at ConnectionFramework.cxx:1139● #11 DefaultBuilderModel::goOne() at DefaultBuilderModel.cxx:222● #12 CmdActionCCAGo::doIt() at CmdActionCCAGo.cxx:55● #13 CmdParse::parse() at CmdParse.cxx:564● #14 CmdLineBuilderController2::parse() at
CmdLineBuilderController2.cxx:118● #15 CmdLineClient::main() at CmdLineClient.cxx:861● #16 main () at CmdLineClientMain.cxx:318● #17 __libc_start_main () from /lib/tls/libc.so.6
![Page 34: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/34.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Matrix MultiplyMatrix Multiply
16 32 64 128 256 5120
1
2
3
4
5
6
7
8
9
10
11
12
13
Matrix Multiply
C++
CCA
Matrix size (NxN)
Sec
onds
![Page 35: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/35.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Matrix MultiplyMatrix Multiply
C++ CCA Diff Ratio16 3.33E-04 0.06 0.06184.1432 4.28E-04 0.08 0.08178.8964 2.68E-03 0.12 0.12 46.51
128 0.03 0.37 0.35 13.78256 0.33 1.62 1.29 4.94512 8.12 12.11 3.99 1.49
![Page 36: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/36.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Row-major vs. Colum-majorRow-major vs. Colum-major
RCR CRR CRC Transp.16 0.06 0.02 0.02 0.0032 0.08 0.03 0.03 0.0064 0.12 0.1 0.09 0.10
128 0.37 0.31 0.29 0.31256 1.62 2.99 2.65 2.30512 12.11 54.95 54.13 62.32
AxB=C R=row-major C=column-major(stride N,1) (stride 1,N)
![Page 37: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/37.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Component Overhead Component Overhead • Negligible overhead for component
implementation and abstract interfaces when using appropriate levels of abstraction
• Linear solver component currently supports any methods available via the ESI interfaces to PETSc and Trilinos; plan to support additional interfaces the future, e.g., those under development within the TOPS center
• Here: Use the conjugate gradient method with no-fill incomplete factorization preconditioning
• DA: tutorial CCA, 15 jan 2003• E: “A Component Architecture for
High-Performance Computing”, Bernholdt, Elwasif, Kohl, EpperlyAggregate time for linear solver component in
unconstrained minimization problem.
![Page 38: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/38.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Overhead from Component Invocation
Overhead from Component Invocation
● Invoke a component with different arguments
● Array● Complex● Double Complex
● Compare with f77 method invocation
● Environment– 500 MHz Pentium III– Linux 2.4.18– GCC 2.95.4-15
● Components took 3X longer● Ensure granularity is appropriate!● Paper by Bernholdt, Elwasif, Kohl
and Epperly 241ns86nsDouble complex
209ns75nsComplex
224ns80 nsArray
Componentf77Function arg type
![Page 39: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/39.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Scalability on a Linux ClusterScalability on a Linux Cluster
• Newton method with line search
• Solve linear systems with the conjugate gradient method and block Jacobi preconditioning (with no-fill incomplete factorization as each block’s solver, and 1 block per process)
• Negligible component overhead; good scalability
Total execution time for the minimum surface minimization problem using a fixed-sized 250x250 mesh.
![Page 40: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/40.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
ConclusioniConclusioni
● CCA + Babel: aumentano riuso e interoperabilita'● No caratteristiche GRID● High Perf in mano al programmatore● Comunicazioni in mano al programmatore
![Page 41: Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Task 2 Diego Puppin](https://reader035.vdocuments.pub/reader035/viewer/2022062702/5542eb6b497959361e8d8479/html5/thumbnails/41.jpg)
Verifica 4 luglio 2003Verifica 4 luglio 2003 Diego Puppin ISTI-CNR Diego Puppin ISTI-CNR
Questo talk in tourQuesto talk in tour
● Date richieste– Pisa, appena disponibili al dipartimento– Genova, nei prossimi giorni– Palermo, appena c'e' un minuto libero (dopo Vico)– Londra– New York– Rio de Janeiro