SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Acceleratori hardware del calcolo ad
          alte prestazioni

        Comparazione della performance
 di un algoritmo di ottimizzazione matematica
     su piattaforme FPGA, GPGPU e x86_64

                                          Antonio.Maria.Cristini@crs4.it
           Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

           Perché hpc e architetture complesse?
Il calcolo deve rispondere ad esigenze sempre più ardue …
Un esempio:
• Un tipico dato di input della sismica a riflessione
          Anni ’90
 2D
 100 MB


            Oggi
 3D                                  1km


 Quasi un TB                            3 km



 6 ordini di grandezza in più!             Top salt surface, color map is related to the depth


                                 Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

       Perché hpc e architetture complesse?
Un altro esempio:




                    Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

                  Di cosa NON parleremo
• Quale architettura è meglio delle altre in termini di
    possibili prestazioni medie o di picco a seconda del campo
    di applicazione oppure in termini di consumo a parità di
    velocità di calcolo per operazioni più o meno complesse
•   Di calcolo numerico e metodi più rapidi per trovare i
    minimi o i massimi di una funzione pluridimensionale,
    non lineare, non regolare ecc.
•   Di linguaggi di programmazione che siano per la
    programmazione strutturata o orientata agli oggetti
    oppure linguaggi specifici quali
    Cuda o OpenCL, VHDL o Verilog
                        Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

    I due concetti che vorremmo sottolineare …
Rispettare la legge di Moore è sempre più difficile
      • «Le prestazioni dei processori, e il numero di transistor ad esso relativo,
        raddoppiano ogni 18 mesi».
      • Ma il raggiungimento dei limiti fisici per la riduzione delle dimensioni dei
        transistor è ormai raggiunto
Le esigenze di calcolo crescono
      • la soluzione non può essere più computer o computer più grandi
      • Si richiede troppo in termini di consumi e infrastrutture



               La soluzione è tornare al semplice


                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

I due concetti che vorremmo sottolineare …




      La soluzione è tornare al semplice


               Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

I due concetti che vorremmo sottolineare …




               Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

I due concetti che vorremmo sottolineare …



 Computation



                                                    Computation




                                                    MaxelerOs




               Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

    I due concetti che vorremmo sottolineare …
• Spostare la gestione del dato dall’hardware al software
   • Ad esempio:
      • avvicinare il dato all’unità di calcolo
      • decidere la sequenza delle operazioni
   • L’infrastruttura è a carico del programmatore
• FPGA o le GPGPU sono coprocessori
   • Necessitano di essere inseriti in una macchina completa
   • Non possono sostituire le CPU
   • Elevate prestazioni di picco con minori consumi e costi
               La soluzione è farsi aiutare da
               hardware semplice ma efficiente

                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa

       I due concetti che vorremmo sottolineare …
Non c’è un’infrastruttura per l’HPC migliore delle altre, ma è
  necessaria una valutazione globale del problema:
   •   Costi dell’hardware, Consumi e spese di mantenimento
   •   Possibilità di portare il problema nell’architettura specifica
   •   Complessità del problema da affrontare e costi di sviluppo
   •   Quantità di dati da elaborare
   •   Precisione necessaria per risolvere il problema
   •   Velocità d’elaborazione
   •   Mantenimento dell’applicazione nel tempo
   •   Frequenza dei possibili crash del sistema nel suo complesso

  Valutare il problema globalmente, hardware compreso
                            Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Premessa
          tre
      I due concetti che vorremmo sottolineare …
•   Cercare di avere una visione globale dei problemi
•   Non si può essere specializzati in tutto (ma in qualcosa si!)
•    Sapere chi può affrontare e risolvere argomenti specifici
•   Lavoro d’equipe (che non vuol dire nessuna responsabilità …)
    • Facilità nell’inserire nuove persone, conoscenze
• Cercare le collaborazioni necessarie
    • sapere cosa cercare e cosa offrire




                           Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Chi siamo

             Imaging and Numerical Geophysics
• Gruppo di ricerca di 8 persone con differente back-ground
        • 4 fisici: Ernesto Bonomi, Antonio Cristini, Guido Satta e Zeno Heilmann (geofisico)
        • 4 ingegneri: Claudio Gallo, Giuliana Siddi, Daniela Theis, Gianluigi Caddeo
        • 1 informatico: Omar Shiaratura
• Lavora nel campo della sismica a riflessione in collaborazione con
    l’industria petrolifera da circa 17 anni
•   Capacità di autofinanziamento di più del 120%
•   Inserito nel settore: Energy and Environment diretto da
     Ernesto Bonomi con diversi interscambi interni
•   Diverse le collaborazioni ancora attive con:
        • Importanti società di hardware e software
             – Nvidia             – AMD                    – Maxeler                       – …
        • I più importanti dipartimenti universitari di geofisica
             – Karlsruhe          – Imperial College London             – Università di Pisa

                                   Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Acceleratori hardware del calcolo ad alte prestazioni

                      Sommario
Contesto: cos’è la sismica a riflessione
Common Reflection Surface Stack o CRS-stack
CRS: metodo Data-Driven
Parallelizzazione
L’applicazione CRS in tre diverse architetture
Una slide sui progetti futuri


                    Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

          Cosa è un giacimento di gas e petrolio
• Non è un lago di petrolio e gas.
• È una formazione porosa (rocce) che li racchiude;
• Una depressione della crosta terrestre che sprofondando
     ha accumulato sedimenti e materiale organico
•   La varietà è pressoché infinita:
    • Strati piatti di roccia;
    • Strati curvi verso il basso;
    • Strati fratturati, dislocati e inclinati.




                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

                    Alla ricerca del giacimento
• Finché non è trivellato un pozzo, è difficile confermare la presenza
    di risorse utilizzabili …
•   Il costo di una trivellazione è stimato a:
    • 0,5-8 M$ per depositi “onshore”;
    • 10-30 M$ per depositi in acque poco profonde;
    • Oltre 100 M$ per depositi in acque profonde;
• Necessità di metodi per la previsione della presenza di giacimenti


• Tre fasi:
    • Studio della superficie terrestre per costruire un primo modello di sottosuolo
    • Sondaggio del sottosuolo, principalmente con metodi acustici
    • Misure da pozzo
                               Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

           Che cosa è la sismica a riflessione …
• Il principale strumento di prospezione dell’industria
    petrolifera;
•   È utile anche in campo civile, ambientale e della ricerca
    geologica di base;
•   Usa molti concetti matematici sia originali sia mutuati da
    altre branche della matematica applicata;
•   L’elaborazione sismica richiede ingenti risorse di calcolo e
    di archiviazione dati;
•   È un’attività che vale oltre 4 miliardi di dollari all’anno.


                         Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

         La sismica o ecografia del sottosuolo
È il metodo di esplorazione che utilizza i principi della
   sismologia per stimare le proprietà del sottosuolo a
   partire da onde sonore indotte, in seguito riflesse.




Registrando il tempo di volo dell’eco e la sua intensità, è
  possibile stimare la profondità della superficie riflettente;

                        Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

                     I dati sismici
                 • Una traccia sismica è la registrazione degli
                      echi retro-propagati dalle discontinuità
                      del sottosuolo
                 •    Le esplorazioni sismiche producono
                      enormi quantità di dati:
                        • Ciascuna esplorazione prevede 103 / 105 shots
                        • Ogni shot comporta circa 100-200 ricevitori
                        • Ciascun ricevitore registra circa 1500 campioni

Si sfiora facilmente un TB di dato a singola precisione




                     Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Sismica a riflessione

                  Processing dei dati sismici


• Correzione
    dell’ampiezza
•   Operazioni di
    Filtraggio
•   Deconvoluzione

• Analisi di velocità
• Stacking
• Migrazione

                         Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Common Reflection Surface Stack
                            2
                    2 T  2t0 T
t   2
    hyp      =  t0 + w m  +
                    v0    v               (
                                m Hzy K N HT m + hTH zy K NIPHT h
                                           zy                 zy                                                  )
m                           0
                                 S    S=G     G
     0


 -500         V0=1400 m/s

-1000


-1500


-2000         V1=2000 m/s
-2500


-3000


-3500

              V2=3400 m/s
-4000


-4500


-5000
         0           2000       4000                 6000               8000               10000              12000

                                       Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Common Reflection Surface Stack
                             2
                 2 T  2t0 T
t   2
    hyp   =  t0 + w m  +
                 v0    v            (
                             m Hzy K N HT m + hTH zy K NIPHT h
                                        zy                 zy                                               )
m                        0
                              S    S=G     G
     0


 -500       V0=1400 m/s

-1000


-1500


-2000       V1=2000 m/s

• È un esperimento virtuale nel quale
-2500


-3000    sorgente e ricevitore coincidono (tracce zero-offset)
•
-3500    È una raccolta del segnale riflesso nello stesso punto
             V =3400 m/s
         (o in2un intorno molto vicino) del segnale zero-offset
-4000

•
-4500
         Come realizzarla?
        • Ipotizzando un modello di volo del segnale nel terreno
-5000
      0 • Raccogliendo il segnale al tempo ipotizzato
                  2000         4000          6000         8000                       10000              12000

                                 Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Common Reflection Surface Stack

                    La formula del TravelTime
                        2
                 2 T  2t0 T
t   2
    hyp   =  t0 + w m  +
                 v0    v       (
                             m Hzy K N HT m + hTH zy K NIPHT h
                                        zy                 zy                                         )
                         0
                                                  G −S      G +S
                                               h=      ; m=      − x0
                                                    2         2
                                 Bortfeld R., (1989). Geometrical ray theory: Ray and
                                     traveltimes in seismic systems (second-order
                                     approximations of the traveltimes): Geophysics, 54, no.
                                     3, 342–349.

                                 Cervený V. (2001). Seismic ray theory. Cambridge University
                                     Press.

                                 Höcht, de Bazelaire E., Majer P., Hubral P. (1999). Seismics
                                    and optics: hyperbolae and curvatures: J. of Applied
                                    Geophysics no. 42, 261–281.

                                 Höcht G., (2002). Traveltime approximations for 2D and 3D
                                    media and kinematic wavefield attributes,
                                    doctors’thesis. Universität Karlsruhe.
                            Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Common Reflection Surface Stack

                    La formula del TravelTime
                        2
                 2 T  2t0 T
t   2
    hyp   =  t0 + w m  +
                 v0    v       (
                             m Hzy K N HT m + hTH zy K NIPHT h
                                        zy                 zy                                         )
                         0



• 2 parameters ( emergence angle & azimuth )
• 3 Normal Wavefront parameters ( RNx; RNy ; αN )
• 3 NIP Wavefront parameters ( RNIPx; RNIPy ; αNIP )

    8 parametri attraverso I quali possiamo ricuperare i segnali
          della traccia e ricostruire quello della traccia ZO

                            Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Common Reflection Surface Stack

                    La formula del TravelTime
                        2
                 2 T  2t0 T
t   2
    hyp   =  t0 + w m  +
                 v0    v       (
                             m Hzy K N HT m + hTH zy K NIPHT h
                                        zy                 zy                                         )
                         0



 Quali parametri utilizzare per identificare i tempi di volo?
Possiamo chiederlo ai dati …
                           Come?

    8 parametri attraverso I quali possiamo ricuperare i segnali
          della traccia e ricostruire quello della traccia ZO

                            Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
CRS: metodo Data-Driven

     Semblance
                       2
            2 T  2t0 T
thyp =  t0 + w m  +
 2
            v0    v           (
                        m Hzy K N HT m + hTHzyK NIPHT h
                                   zy               zy                            )
                    0



                                         N                                    2
                                             2         M

                                        ∑ ∑a                  i,t i + k
        r           1                 k= − N          i= 1
    S ( x 0, t0 ) =                    N
                                                 2
                    M                      2         M

                                       ∑ ∑a
                                                                          2
                                                             i,t i + k
     0≤S≤1                          k= − N
                                                 2
                                                     i= 1


• Costituisce la funzione costo per una
  procedura di ottimizzazione sugli 8 parametri

    Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
CRS: metodo Data-Driven

                       Piccola digressione …
Perché considerare tanti problemi distinti?
Potremo ad esempio riformulare il problema
   •   considerando il legame dei punti spazialmente vicini
   •   Risolvendo un sistema algebrico …


                                 Ma
Parcellizzando riusciamo ad definire due livelli di parallelizzazione
   1. Lungo gli assi spaziali
   2. Lungo l’asse temporale


    Formulare il problema considerando l’hardware sottostante


                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
CRS: metodo Data-Driven

                        In un applicazione seriale
 • Un ciclo esterno sulle tracce di output
   I N P U T visto dall’alto                                          OUTPUT


                                                   y
                                                       x
                                              t




Forte sovrapposizione del dato di input

                                    Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
CRS: metodo Data-Driven

                In un applicazione seriale
• Un ciclo esterno sulle tracce di output
• Per ogni traccia un ciclo sui campioni temporali
• Per ogni campione (t0): ottimizzazione sugli attributi

                                                                                ottimizzazione


                                                                                 N                                      2
                                                                                     2       M

                                                                                ∑ ∑a                    i,t i + k
                                                              r           1    k= − N        i= 1
                                                          S ( x 0, t0 ) =       N
                                                                                         2
                                                                          M         2        M

                                                                               ∑ ∑
                                                                                                                    2
                                                                                                    a i,t i + k
                                                                              k = − N 2 i= 1
                           Ciclo sui campioni

 Ciclo sulle tracce
                       Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Parallelizzazione

                  L’applicazione parallela


                                                                                               ottimizzazione
                                                                                      ottimizzazione
                                                                                ottimizzazione
                                                                                         N                                       2
                                                                                                  2      M

                                                                   ∑ ∑a                N
                                                                                           2      M
                                                                                                                         2
                                                                                                                   i,t i + k

                                                    S( x ,t ) = ∑ ∑
                                                                                                                   2
                                                       r        1    a           N
                                                                                    2     kM − N 2 i= 1
                                                                                            =
                                                                                                           i,t i + k
                                                    r         1∑ ∑a
                                                                M
                                                                     0   0
                                                                                    k = − N N 2 i= 1 M
                                                 S( x ,t ) =                                 2      i,t i + k
                                                                  ∑ ∑a
                                                                                                                             2
                                                                 0   0
                                                 r         1 M                      NN i= 1M
                                                                              k = − 22
                                              S( x ,t ) =                                                         i,t i2+ k
                                                           M
                                                             0
                                                                 ∑ ∑a
                                                                 0              N
                                                                                   2     k= − N
                                                                                          M       2
                                                                                                      i= 1
                                                                                                                +
                                                                                                          i,t i 2 k
                             Ciclo sui campioni                ∑ ∑a               k=−    N
                                                                                           2
                                                                                               i= 1
                                                                                                   i,t i + k
                          Ciclo sui campioni                                 k= −  N
                                                                                      2
                                                                                         i= 1
                         Ciclo sui campioni


• Tante istanze dello stesso codice seriale che elaborano
    tracce differenti sono un’applicazione parallela
•   Il calcolo procede in modo asincrono sul ciclo delle tracce
                         Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Parallelizzazione

              Secondo livello di parallelizzazione

                                                             N                              2
                                                                 2       M

                                                          ∑ ∑a       N
                                                                         2   Mi,t + k
                                                                                                  2


                                                              ∑ ottimizzazione
                                                                   ∑a
                                                                                 i
                                                                                                         2
                                        r            1                 N
                                                          k = − N 2 i= 1 2
                                     S( x ,t ) =                                Mi,t + k

                                                                 ∑ ∑a
                                                                                        i
                                         0   0                                                                  2
                                            r           1   N k= − N        N
                                        S( x ,t ) M
                                                                   M 2 i= 1 2
                                                     =         2                       2 i,t i + k
                                                                                          M
                                             0
                                                r0
                                            S( x ,t ) M =
                                                         ∑ ∑ a∑ ∑ a
                                                           1     N k= − N         N
                                                                   2 NM i,t i i=k 2
                                                                            2 +
                                                                                    1                     2
                                                                                                2 i,t i + k
                                                                                                 M
                                                                                                                     2


                                                             ∑ ∑ a∑
                                                S( x ,t ) M ∑ ∑ a ∑
                                                                          2      M
                                                 0   0
                                                    r    k= − N1   i=N k = − M
                                                                      1        Na       i= 1
                                                           =     2      2         i,t i + k
                                                                                   2                     i,t i + k

                                                r S ( x , t 1) M∑ ∑ a
                                                     0   0 k= − N                           i,t i + k2
                                                       r          1      i=N k = − M
                                                                           1           N        i= 1
                                             S( x ,t ) =       =    k 2 − N 2 i= 1 i,t i + k
                                                                      =                    2

                                                           M M∑ ∑
                                                                                                             2
                                                         0 0 k = − N 2i=N
                                                 0   0                N 2     a  1
                                                                               M 2
                                                                                              M i,t + k

                                                                 ∑ ∑ a∑ a
                                                                       ∑
                                                                         2                           i             2
                                                                                                       2
                                                                        k = − N 2 i= 1
                                        ottimizzazione                                                  i,t i + k
                                                                                           i,t i + k

• Eliminando il ciclo sui campioni (t0)                            k= − N
                                                                            2
                                                                                =−
                                                                              ki= 1 N 2 i= 1



   • Creando una routine che calcoli contemporaneamente molte funzioni costo
          Ciclo sui campioni
• La Multi-Semblance costituisce il nuovo kernel del calcolo
   • L’ottimizzazione procede in modo sincrono sui t0
   • È più facile renderla più efficiente rispetto a tante Semblance distinte
   • È più facile realizzare un paradigma SIMD (Single Instruction, Multiple Data) a basso livello
• La logica dell’ottimizzazione sui parametri non viene toccata
                                    Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Parallelizzazione

                                Multi-Semblance
• L’applicazione costituisce un’infrastruttura attorno al nucleo
                           TravelTime e Multi-Semblance
   • Chiamato molteplici volte dall’ottimizzazione
• 95% del tempo di calcolo è usato dalle due routine
• Scrittura modulare: facile sostituzione con altre implementazioni
• Versioni attuali sono:
                             (SpeedUp rispetto a un singolo core Intel Westmere a 2.66 GHz)
          Piattaforma                  Linguaggi                      Collaborazione           SpeedUp

    Core Intel           Fortran e C                            (Maxeler)                    2x

    Maxeler FPGA         Java (Maxeler compiler) e C++          Maxeler                      110 x

    AMD FireStream       OpenCL                                 AMD e committente            60 x

    Nvidia Tesla/Fermi   Cuda                                   Nvidia e committente         100 x

                                       Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Parallelizzazione

                          Multi-Semblance
• L’applicazione costituisce un’infrastruttura attorno al nucleo
                        TravelTime e Multi-Semblance
   • Chiamate molteplici volte dall’ottimizzazione
• 95% del tempo di calcolo è usato dalle due routine
• Scrittura modulare: facile sostituzione con altre implementazioni
                                                                                                         (


                Cosa rende speciale calcolare tante
             Semblance assieme rispetto a una per volta?




                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Parallelizzazione

      Utilizzo dei dati nella Multi-Semblance
Utilizzo dei dati con 1 campione                        Utilizzo dei dati con 4 campioni




Utilizzo dei dati con 16 campioni                      Utilizzo dei dati con 64 campioni




                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
CPU e Multi-Semblance

            Sfruttamento della cache della CPU
• Non calcola una Semblance alla volta
• Calcolanum = ...i termini parziali relativi alla singola traccia
                (1 )
          assieme
                −N
                          num        = num    −N
                                                   +a
                                              ( nsemb )           ( nsemb )
                                                                  −N
                                                                                      i , t i( nsemb ) −
                                                                                                           N
                 2                             2                   2                                       2
             i=1
              ...                                              ...

          num   (1 )
                 k
                        = ...          num    ( nsemb )
                                              k
                                                          = num   ( nsemb )
                                                                  k
                                                                              + a i , t ( nsemb ) + k
                                                                                          i


                ...                                            ...



         denom       (1 )
                            = ...   denom   ( nsemb )
                                                        = denom       ( nsemb )
                                                                                  +   ∑a           2
                                                                                                  i , t i( nsemb ) + k

                                                                                                               N                              2
                                                                                                                   2     M

                                                                                                               ∑ ∑a           i,t i + k
                                                                          r           1                    k = − N 2 i= 1
                                                                      S ( x 0, t0 ) =                        N
                                                                                      M                         2   M

                                                                                                               ∑ ∑a
                                                                                                                                          2
                                                                                                                             i,t i + k
                                       Collana di seminari per la valorizzazione dei Risultati − N 2 Ricerca del CRS4
                                                                                           k = della i= 1
CPU e Multi-Semblance

             Sfruttamento della cache della CPU
• Non calcola una Semblance alla volta
• Calcola assieme i termini parziali relativi alla singola traccia

• Una traccia occupa circa 12 KB e può risiedere per intero dentro la
    cache di primo livello delle moderne CPU
•   Ciò permette di aumentare il rapporto tra “Cache hit e Cache miss ”
    fino a 100 volte
•   Il meccanismo di caricamento del dato in cache è automatico

• Riduzione del tempo globale del calcolo del 50%:
    • Da 3 a 1,5 mesi il tempo di elaborazione di un dataset con 1.000 core


                               Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Field Programmable Gate Array e Multi-Semblance

            Meccanismo di calcolo nel FPGA
• Algoritmo del calcolo uguale a quello visto per la CPU
• Non c’è un meccanismo di cache nel FPGA
• C’è un flusso continuo delle tracce nel FPGA
   • calcola e conserva in memoria quanto serve
• Per ogni FPGA si hanno fino a:
   • 6 pipe ovvero 6 flussi continui del dato a 180 MHz
   • Le pipe lavorano in modo SIMD
• Tuning specifico per il codice
   • Utilizzo della rappresentazione in virgola fissa
   • Si ha una maggior precisione solo dove richiesto

                          Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Field Programmable Gate Array e Multi-Semblance

                       Meccanismo di calcolo nel FPGA
    DRAM of PCI card                                              PCIe
                                                   Parametri
                                                   Coord. delle tracce
                                                                                         FPGA

Riduzione del tempo globale e TraveTime Kernelnecessarie
Riduzione del tempo globale edelle risorse necessarie
                               delle risorse
   Da 3 mesi a 6 giornitt da 1.000 core in 167 nodi a 128 FPGA su 32 nodi
                       ,
   Da 3 mesi a 6 giorni, da 1.000 core in 167 nodi a 128 FPGA su 32 nodi




                                                                                              Ris. parziali
                                                                                              Ris. parziali
                                                   Multi-Semblance Kernel




                                Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Field Programmable Gate Array e Multi-Semblance

   Un risultato con FPGA
CPU Coherency                    MAX2 Coherency




          Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
GPGPU e Multi-Semblance

             Meccanismo di calcolo nella GPGPU
• Algoritmo di calcolo “naturale”
   • Ogni Semblance è assegnata a un Thread
• Il calcolo della funzione costo procede in modo asincrono
   • L’hardware gestisce la schedulazione dei thread ai core “liberi”
   • Si realizza un modello SIMD sui parametri del TravelTime
   • (L’ottimizzazione procede in modo sincrono)
• Il calcolo viene velocizzato dai numerosi core
   • fino a 512 sulle schede Nvidia Fermi
• Importanti differenze tra le due implementazioni in test:
   AMD FireStream       OpenCL                            AMD e committente            60 x

   Nvidia Tesla/Fermi   Cuda                              Nvidia e committente         100 x

                                 Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
GPGPU e Multi-Semblance

         Confronto tra versione AMD e Nvidia
Versione AMD:
   • Scritta in OpenCL
      • C’è un tempo di latenza iniziale dovuto alla compilazione del kernel
   • Il TravelTime è calcolato “al volo” all’interno della Semblance
      • Coprire la lettura del dato con il tempo di calcolo
Versione Nvidia:
   • Scritta in Cuda
      • Linguaggio, fino ad oggi, un po’ più maturo per HPC
   • TravelTime vengono calcolati preventivamente
   • Uso della memoria Texture per le interpolazioni
      • Interpolazioni hardware molto veloci, ma meno precise
      • Dobbiamo ancora verificare se la precisione è sufficiente

                              Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
GPGPU e Multi-Semblance

           Confronto tra versione AMD e Nvidia
Versione AMD:
    • Scritta tempo globale e delle risorse necessarie
Riduzione delin OpenCL
Riduzione deltempo globale e delle risorse necessarie
   Da 3 •mesiun47 giorni,latenza iniziale dovuto alla compilazione delFireStream
   Da 3
          C’è   tempo di                                               kernel
        mesi a 47 giorni,da 1.000 core in 167 nodi a 32 schede FireStream
              a            da 1.000 core in 167 nodi a 32 schede
    • Il TravelTime è calcolato “al volo” all’interno della Semblance
        • Coprire la lettura del dato con il tempo di calcolo
Versione Nvidia:
    • Scritta tempo
Riduzione delin Cuda globale e delle risorse necessarie
Riduzione deltempo globale e delle risorse necessarie
   Da 3 •mesia 28 giorni,ad oggi, uncore in maturo pera32 schede Fermi
   Da 3 mesi a 28 giorni,da 1.000 po’ più 167 nodi aHPC schede Fermi
          Linguaggio, fino
                           da 1.000 core in 167 nodi 32
    • TravelTime vengono calcolati preventivamente
    • Uso della memoria Texture per le interpolazioni
        • Interpolazioni hardware molto veloci, ma meno precise
        • Dobbiamo ancora verificare se la precisione è sufficiente

                                Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Acceleratori hardware del calcolo ad alte prestazioni

                        Progetti futuri
• Continuare a seguire lo sviluppo dell’hardware

• Modifica dell’ottimizzazione
   • Meno performace, ma con una convergenza uniforme per ogni t0


• Estendere il porting su FPGA e GPGPU
   • Altri modelli data-driven con più parametri da cercare
   • Altri progetti




                          Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
Acceleratori hardware del calcolo ad alte prestazioni

        Domande?




       Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4

Weitere ähnliche Inhalte

Ähnlich wie Acceleratori hardware del calcolo ad alte prestazioni

Technical Communication Common Ground
Technical Communication Common GroundTechnical Communication Common Ground
Technical Communication Common GroundKEA s.r.l.
 
IBM FlashSystem soluzioni storage già pronte per il futuro
IBM FlashSystem soluzioni storage già pronte per il futuroIBM FlashSystem soluzioni storage già pronte per il futuro
IBM FlashSystem soluzioni storage già pronte per il futuroPRAGMA PROGETTI
 
Ideaazione e progettazione multimediale 4a parte
Ideaazione e progettazione multimediale 4a parteIdeaazione e progettazione multimediale 4a parte
Ideaazione e progettazione multimediale 4a parteValerio Eletti
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft, solutions to collaborate
 
Agile High Tech Hardware Development - A case Study - Agile Venture - Torino
Agile High Tech Hardware Development - A case Study - Agile Venture - TorinoAgile High Tech Hardware Development - A case Study - Agile Venture - Torino
Agile High Tech Hardware Development - A case Study - Agile Venture - TorinoClaudio Saurin
 
Agile@scale, second chance
Agile@scale, second chanceAgile@scale, second chance
Agile@scale, second chanceFelice Pescatore
 
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...ICTeam S.p.A.
 
Introduzione ai Design Patterns nella Programmazione a Oggetti
Introduzione ai Design Patterns nella Programmazione a OggettiIntroduzione ai Design Patterns nella Programmazione a Oggetti
Introduzione ai Design Patterns nella Programmazione a OggettiDavide Carboni
 
Business continuity nella PMI e negli studi professionali
Business continuity nella PMI e negli studi professionaliBusiness continuity nella PMI e negli studi professionali
Business continuity nella PMI e negli studi professionaliNadir Milani
 
2019-06-14:2 - Perchè comprimere una rete neurale?
2019-06-14:2 - Perchè comprimere una rete neurale?2019-06-14:2 - Perchè comprimere una rete neurale?
2019-06-14:2 - Perchè comprimere una rete neurale?uninfoit
 
Presentazione tesi commenti
Presentazione tesi commentiPresentazione tesi commenti
Presentazione tesi commentiGabriele Paesani
 
Ottimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloudOttimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloudNicolò Carandini
 
2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrumEmiliano Soldi
 
Project management elementi base
Project management elementi baseProject management elementi base
Project management elementi baseClarissa Retrosi
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileSteve Maraspin
 

Ähnlich wie Acceleratori hardware del calcolo ad alte prestazioni (20)

Technical Communication Common Ground
Technical Communication Common GroundTechnical Communication Common Ground
Technical Communication Common Ground
 
IBM FlashSystem soluzioni storage già pronte per il futuro
IBM FlashSystem soluzioni storage già pronte per il futuroIBM FlashSystem soluzioni storage già pronte per il futuro
IBM FlashSystem soluzioni storage già pronte per il futuro
 
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
Ideaazione e progettazione multimediale 4a parte
Ideaazione e progettazione multimediale 4a parteIdeaazione e progettazione multimediale 4a parte
Ideaazione e progettazione multimediale 4a parte
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
 
Tesi8
Tesi8Tesi8
Tesi8
 
Agile High Tech Hardware Development - A case Study - Agile Venture - Torino
Agile High Tech Hardware Development - A case Study - Agile Venture - TorinoAgile High Tech Hardware Development - A case Study - Agile Venture - Torino
Agile High Tech Hardware Development - A case Study - Agile Venture - Torino
 
Agile@scale, second chance
Agile@scale, second chanceAgile@scale, second chance
Agile@scale, second chance
 
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
 
Seminario Marco Moro, 8-11-2012
Seminario Marco Moro, 8-11-2012Seminario Marco Moro, 8-11-2012
Seminario Marco Moro, 8-11-2012
 
Introduzione ai Design Patterns nella Programmazione a Oggetti
Introduzione ai Design Patterns nella Programmazione a OggettiIntroduzione ai Design Patterns nella Programmazione a Oggetti
Introduzione ai Design Patterns nella Programmazione a Oggetti
 
Business continuity nella PMI e negli studi professionali
Business continuity nella PMI e negli studi professionaliBusiness continuity nella PMI e negli studi professionali
Business continuity nella PMI e negli studi professionali
 
2019-06-14:2 - Perchè comprimere una rete neurale?
2019-06-14:2 - Perchè comprimere una rete neurale?2019-06-14:2 - Perchè comprimere una rete neurale?
2019-06-14:2 - Perchè comprimere una rete neurale?
 
Presentazione tesi commenti
Presentazione tesi commentiPresentazione tesi commenti
Presentazione tesi commenti
 
Ottimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloudOttimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloud
 
2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum
 
Kotlin hexagonal-architecture
Kotlin hexagonal-architectureKotlin hexagonal-architecture
Kotlin hexagonal-architecture
 
Project management elementi base
Project management elementi baseProject management elementi base
Project management elementi base
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
 

Mehr von CRS4 Research Center in Sardinia

Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015
Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015
Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015CRS4 Research Center in Sardinia
 
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...CRS4 Research Center in Sardinia
 
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...CRS4 Research Center in Sardinia
 
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid Alfonso Damiano (Università di Cagliari) ICT per Smart Grid
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid CRS4 Research Center in Sardinia
 
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...CRS4 Research Center in Sardinia
 
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015CRS4 Research Center in Sardinia
 
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...CRS4 Research Center in Sardinia
 
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)CRS4 Research Center in Sardinia
 
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...CRS4 Research Center in Sardinia
 
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...CRS4 Research Center in Sardinia
 

Mehr von CRS4 Research Center in Sardinia (20)

The future is close
The future is closeThe future is close
The future is close
 
The future is close
The future is closeThe future is close
The future is close
 
Presentazione Linea B2 progetto Tutti a Iscol@ 2017
Presentazione Linea B2 progetto Tutti a Iscol@ 2017Presentazione Linea B2 progetto Tutti a Iscol@ 2017
Presentazione Linea B2 progetto Tutti a Iscol@ 2017
 
Iscola linea B 2016
Iscola linea B 2016Iscola linea B 2016
Iscola linea B 2016
 
Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015
Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015
Sequenziamento Esomico. Maria Valentini (CRS4), Cagliari, 18 Novembre 2015
 
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...
Near Surface Geoscience Conference 2015, Turin - A Spatial Velocity Analysis ...
 
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...
GIS partecipativo. Laura Muscas e Valentina Spanu (CRS4), Cagliari, 21 Ottobr...
 
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid Alfonso Damiano (Università di Cagliari) ICT per Smart Grid
Alfonso Damiano (Università di Cagliari) ICT per Smart Grid
 
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
Big Data Infrastructures - Hadoop ecosystem, M. E. PirasBig Data Infrastructures - Hadoop ecosystem, M. E. Piras
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
 
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
 Big Data Analytics, Giovanni Delussu e Marco Enrico Piras  Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
 
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...
Dinamica Molecolare e Modellistica dell'interazione di lipidi col recettore P...
 
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
 
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...
Sistemi No-Sql e Object-Relational nella gestione dei dati geografici 30 Sett...
 
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)
Elementi di sismica a riflessione e Georadar (Gian Piero Deidda, UNICA)
 
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...
Near Surface Geoscience Conference 2014, Athens - Real-­time or full­‐precisi...
 
SmartGeo/Eiagrid portal (Guido Satta, CRS4)
SmartGeo/Eiagrid portal (Guido Satta, CRS4)SmartGeo/Eiagrid portal (Guido Satta, CRS4)
SmartGeo/Eiagrid portal (Guido Satta, CRS4)
 
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...
Luigi Atzori Metabolomica: Introduzione e review di alcune applicazioni in am...
 
Mobile Graphics (part2)
Mobile Graphics (part2)Mobile Graphics (part2)
Mobile Graphics (part2)
 
Mobile Graphics (part1)
Mobile Graphics (part1)Mobile Graphics (part1)
Mobile Graphics (part1)
 
2015 crs4-seminar-massive-models-full
2015 crs4-seminar-massive-models-full2015 crs4-seminar-massive-models-full
2015 crs4-seminar-massive-models-full
 

Acceleratori hardware del calcolo ad alte prestazioni

  • 1. Acceleratori hardware del calcolo ad alte prestazioni Comparazione della performance di un algoritmo di ottimizzazione matematica su piattaforme FPGA, GPGPU e x86_64 Antonio.Maria.Cristini@crs4.it Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 2. Premessa Perché hpc e architetture complesse? Il calcolo deve rispondere ad esigenze sempre più ardue … Un esempio: • Un tipico dato di input della sismica a riflessione Anni ’90 2D 100 MB Oggi 3D 1km Quasi un TB 3 km 6 ordini di grandezza in più! Top salt surface, color map is related to the depth Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 3. Premessa Perché hpc e architetture complesse? Un altro esempio: Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 4. Premessa Di cosa NON parleremo • Quale architettura è meglio delle altre in termini di possibili prestazioni medie o di picco a seconda del campo di applicazione oppure in termini di consumo a parità di velocità di calcolo per operazioni più o meno complesse • Di calcolo numerico e metodi più rapidi per trovare i minimi o i massimi di una funzione pluridimensionale, non lineare, non regolare ecc. • Di linguaggi di programmazione che siano per la programmazione strutturata o orientata agli oggetti oppure linguaggi specifici quali Cuda o OpenCL, VHDL o Verilog Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 5. Premessa I due concetti che vorremmo sottolineare … Rispettare la legge di Moore è sempre più difficile • «Le prestazioni dei processori, e il numero di transistor ad esso relativo, raddoppiano ogni 18 mesi». • Ma il raggiungimento dei limiti fisici per la riduzione delle dimensioni dei transistor è ormai raggiunto Le esigenze di calcolo crescono • la soluzione non può essere più computer o computer più grandi • Si richiede troppo in termini di consumi e infrastrutture La soluzione è tornare al semplice Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 6. Premessa I due concetti che vorremmo sottolineare … La soluzione è tornare al semplice Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 7. Premessa I due concetti che vorremmo sottolineare … Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 8. Premessa I due concetti che vorremmo sottolineare … Computation Computation MaxelerOs Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 9. Premessa I due concetti che vorremmo sottolineare … • Spostare la gestione del dato dall’hardware al software • Ad esempio: • avvicinare il dato all’unità di calcolo • decidere la sequenza delle operazioni • L’infrastruttura è a carico del programmatore • FPGA o le GPGPU sono coprocessori • Necessitano di essere inseriti in una macchina completa • Non possono sostituire le CPU • Elevate prestazioni di picco con minori consumi e costi La soluzione è farsi aiutare da hardware semplice ma efficiente Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 10. Premessa I due concetti che vorremmo sottolineare … Non c’è un’infrastruttura per l’HPC migliore delle altre, ma è necessaria una valutazione globale del problema: • Costi dell’hardware, Consumi e spese di mantenimento • Possibilità di portare il problema nell’architettura specifica • Complessità del problema da affrontare e costi di sviluppo • Quantità di dati da elaborare • Precisione necessaria per risolvere il problema • Velocità d’elaborazione • Mantenimento dell’applicazione nel tempo • Frequenza dei possibili crash del sistema nel suo complesso Valutare il problema globalmente, hardware compreso Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 11. Premessa tre I due concetti che vorremmo sottolineare … • Cercare di avere una visione globale dei problemi • Non si può essere specializzati in tutto (ma in qualcosa si!) • Sapere chi può affrontare e risolvere argomenti specifici • Lavoro d’equipe (che non vuol dire nessuna responsabilità …) • Facilità nell’inserire nuove persone, conoscenze • Cercare le collaborazioni necessarie • sapere cosa cercare e cosa offrire Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 12. Chi siamo Imaging and Numerical Geophysics • Gruppo di ricerca di 8 persone con differente back-ground • 4 fisici: Ernesto Bonomi, Antonio Cristini, Guido Satta e Zeno Heilmann (geofisico) • 4 ingegneri: Claudio Gallo, Giuliana Siddi, Daniela Theis, Gianluigi Caddeo • 1 informatico: Omar Shiaratura • Lavora nel campo della sismica a riflessione in collaborazione con l’industria petrolifera da circa 17 anni • Capacità di autofinanziamento di più del 120% • Inserito nel settore: Energy and Environment diretto da Ernesto Bonomi con diversi interscambi interni • Diverse le collaborazioni ancora attive con: • Importanti società di hardware e software – Nvidia – AMD – Maxeler – … • I più importanti dipartimenti universitari di geofisica – Karlsruhe – Imperial College London – Università di Pisa Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 13. Acceleratori hardware del calcolo ad alte prestazioni Sommario Contesto: cos’è la sismica a riflessione Common Reflection Surface Stack o CRS-stack CRS: metodo Data-Driven Parallelizzazione L’applicazione CRS in tre diverse architetture Una slide sui progetti futuri Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 14. Sismica a riflessione Cosa è un giacimento di gas e petrolio • Non è un lago di petrolio e gas. • È una formazione porosa (rocce) che li racchiude; • Una depressione della crosta terrestre che sprofondando ha accumulato sedimenti e materiale organico • La varietà è pressoché infinita: • Strati piatti di roccia; • Strati curvi verso il basso; • Strati fratturati, dislocati e inclinati. Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 15. Sismica a riflessione Alla ricerca del giacimento • Finché non è trivellato un pozzo, è difficile confermare la presenza di risorse utilizzabili … • Il costo di una trivellazione è stimato a: • 0,5-8 M$ per depositi “onshore”; • 10-30 M$ per depositi in acque poco profonde; • Oltre 100 M$ per depositi in acque profonde; • Necessità di metodi per la previsione della presenza di giacimenti • Tre fasi: • Studio della superficie terrestre per costruire un primo modello di sottosuolo • Sondaggio del sottosuolo, principalmente con metodi acustici • Misure da pozzo Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 16. Sismica a riflessione Che cosa è la sismica a riflessione … • Il principale strumento di prospezione dell’industria petrolifera; • È utile anche in campo civile, ambientale e della ricerca geologica di base; • Usa molti concetti matematici sia originali sia mutuati da altre branche della matematica applicata; • L’elaborazione sismica richiede ingenti risorse di calcolo e di archiviazione dati; • È un’attività che vale oltre 4 miliardi di dollari all’anno. Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 17. Sismica a riflessione La sismica o ecografia del sottosuolo È il metodo di esplorazione che utilizza i principi della sismologia per stimare le proprietà del sottosuolo a partire da onde sonore indotte, in seguito riflesse. Registrando il tempo di volo dell’eco e la sua intensità, è possibile stimare la profondità della superficie riflettente; Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 18. Sismica a riflessione I dati sismici • Una traccia sismica è la registrazione degli echi retro-propagati dalle discontinuità del sottosuolo • Le esplorazioni sismiche producono enormi quantità di dati: • Ciascuna esplorazione prevede 103 / 105 shots • Ogni shot comporta circa 100-200 ricevitori • Ciascun ricevitore registra circa 1500 campioni Si sfiora facilmente un TB di dato a singola precisione Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 19. Sismica a riflessione Processing dei dati sismici • Correzione dell’ampiezza • Operazioni di Filtraggio • Deconvoluzione • Analisi di velocità • Stacking • Migrazione Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 20. Common Reflection Surface Stack 2  2 T  2t0 T t 2 hyp =  t0 + w m  +  v0  v ( m Hzy K N HT m + hTH zy K NIPHT h zy zy ) m   0 S S=G G 0 -500 V0=1400 m/s -1000 -1500 -2000 V1=2000 m/s -2500 -3000 -3500 V2=3400 m/s -4000 -4500 -5000 0 2000 4000 6000 8000 10000 12000 Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 21. Common Reflection Surface Stack 2  2 T  2t0 T t 2 hyp =  t0 + w m  +  v0  v ( m Hzy K N HT m + hTH zy K NIPHT h zy zy ) m   0 S S=G G 0 -500 V0=1400 m/s -1000 -1500 -2000 V1=2000 m/s • È un esperimento virtuale nel quale -2500 -3000 sorgente e ricevitore coincidono (tracce zero-offset) • -3500 È una raccolta del segnale riflesso nello stesso punto V =3400 m/s (o in2un intorno molto vicino) del segnale zero-offset -4000 • -4500 Come realizzarla? • Ipotizzando un modello di volo del segnale nel terreno -5000 0 • Raccogliendo il segnale al tempo ipotizzato 2000 4000 6000 8000 10000 12000 Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 22. Common Reflection Surface Stack La formula del TravelTime 2  2 T  2t0 T t 2 hyp =  t0 + w m  +  v0  v ( m Hzy K N HT m + hTH zy K NIPHT h zy zy )   0 G −S G +S h= ; m= − x0 2 2 Bortfeld R., (1989). Geometrical ray theory: Ray and traveltimes in seismic systems (second-order approximations of the traveltimes): Geophysics, 54, no. 3, 342–349. Cervený V. (2001). Seismic ray theory. Cambridge University Press. Höcht, de Bazelaire E., Majer P., Hubral P. (1999). Seismics and optics: hyperbolae and curvatures: J. of Applied Geophysics no. 42, 261–281. Höcht G., (2002). Traveltime approximations for 2D and 3D media and kinematic wavefield attributes, doctors’thesis. Universität Karlsruhe. Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 23. Common Reflection Surface Stack La formula del TravelTime 2  2 T  2t0 T t 2 hyp =  t0 + w m  +  v0  v ( m Hzy K N HT m + hTH zy K NIPHT h zy zy )   0 • 2 parameters ( emergence angle & azimuth ) • 3 Normal Wavefront parameters ( RNx; RNy ; αN ) • 3 NIP Wavefront parameters ( RNIPx; RNIPy ; αNIP ) 8 parametri attraverso I quali possiamo ricuperare i segnali della traccia e ricostruire quello della traccia ZO Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 24. Common Reflection Surface Stack La formula del TravelTime 2  2 T  2t0 T t 2 hyp =  t0 + w m  +  v0  v ( m Hzy K N HT m + hTH zy K NIPHT h zy zy )   0 Quali parametri utilizzare per identificare i tempi di volo? Possiamo chiederlo ai dati … Come? 8 parametri attraverso I quali possiamo ricuperare i segnali della traccia e ricostruire quello della traccia ZO Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 25. CRS: metodo Data-Driven Semblance 2  2 T  2t0 T thyp =  t0 + w m  + 2  v0  v ( m Hzy K N HT m + hTHzyK NIPHT h zy zy )   0 N 2 2 M ∑ ∑a i,t i + k r 1 k= − N i= 1 S ( x 0, t0 ) = N 2 M 2 M ∑ ∑a 2 i,t i + k 0≤S≤1 k= − N 2 i= 1 • Costituisce la funzione costo per una procedura di ottimizzazione sugli 8 parametri Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 26. CRS: metodo Data-Driven Piccola digressione … Perché considerare tanti problemi distinti? Potremo ad esempio riformulare il problema • considerando il legame dei punti spazialmente vicini • Risolvendo un sistema algebrico … Ma Parcellizzando riusciamo ad definire due livelli di parallelizzazione 1. Lungo gli assi spaziali 2. Lungo l’asse temporale Formulare il problema considerando l’hardware sottostante Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 27. CRS: metodo Data-Driven In un applicazione seriale • Un ciclo esterno sulle tracce di output I N P U T visto dall’alto OUTPUT y x t Forte sovrapposizione del dato di input Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 28. CRS: metodo Data-Driven In un applicazione seriale • Un ciclo esterno sulle tracce di output • Per ogni traccia un ciclo sui campioni temporali • Per ogni campione (t0): ottimizzazione sugli attributi ottimizzazione N 2 2 M ∑ ∑a i,t i + k r 1 k= − N i= 1 S ( x 0, t0 ) = N 2 M 2 M ∑ ∑ 2 a i,t i + k k = − N 2 i= 1 Ciclo sui campioni Ciclo sulle tracce Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 29. Parallelizzazione L’applicazione parallela ottimizzazione ottimizzazione ottimizzazione N 2 2 M ∑ ∑a N 2 M 2 i,t i + k S( x ,t ) = ∑ ∑ 2 r 1 a N 2 kM − N 2 i= 1 = i,t i + k r 1∑ ∑a M 0 0 k = − N N 2 i= 1 M S( x ,t ) = 2 i,t i + k ∑ ∑a 2 0 0 r 1 M NN i= 1M k = − 22 S( x ,t ) = i,t i2+ k M 0 ∑ ∑a 0 N 2 k= − N M 2 i= 1 + i,t i 2 k Ciclo sui campioni ∑ ∑a k=− N 2 i= 1 i,t i + k Ciclo sui campioni k= − N 2 i= 1 Ciclo sui campioni • Tante istanze dello stesso codice seriale che elaborano tracce differenti sono un’applicazione parallela • Il calcolo procede in modo asincrono sul ciclo delle tracce Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 30. Parallelizzazione Secondo livello di parallelizzazione N 2 2 M ∑ ∑a N 2 Mi,t + k 2 ∑ ottimizzazione ∑a i 2 r 1 N k = − N 2 i= 1 2 S( x ,t ) = Mi,t + k ∑ ∑a i 0 0 2 r 1 N k= − N N S( x ,t ) M M 2 i= 1 2 = 2 2 i,t i + k M 0 r0 S( x ,t ) M = ∑ ∑ a∑ ∑ a 1 N k= − N N 2 NM i,t i i=k 2 2 + 1 2 2 i,t i + k M 2 ∑ ∑ a∑ S( x ,t ) M ∑ ∑ a ∑ 2 M 0 0 r k= − N1 i=N k = − M 1 Na i= 1 = 2 2 i,t i + k 2 i,t i + k r S ( x , t 1) M∑ ∑ a 0 0 k= − N i,t i + k2 r 1 i=N k = − M 1 N i= 1 S( x ,t ) = = k 2 − N 2 i= 1 i,t i + k = 2 M M∑ ∑ 2 0 0 k = − N 2i=N 0 0 N 2 a 1 M 2 M i,t + k ∑ ∑ a∑ a ∑ 2 i 2 2 k = − N 2 i= 1 ottimizzazione i,t i + k i,t i + k • Eliminando il ciclo sui campioni (t0) k= − N 2 =− ki= 1 N 2 i= 1 • Creando una routine che calcoli contemporaneamente molte funzioni costo Ciclo sui campioni • La Multi-Semblance costituisce il nuovo kernel del calcolo • L’ottimizzazione procede in modo sincrono sui t0 • È più facile renderla più efficiente rispetto a tante Semblance distinte • È più facile realizzare un paradigma SIMD (Single Instruction, Multiple Data) a basso livello • La logica dell’ottimizzazione sui parametri non viene toccata Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 31. Parallelizzazione Multi-Semblance • L’applicazione costituisce un’infrastruttura attorno al nucleo TravelTime e Multi-Semblance • Chiamato molteplici volte dall’ottimizzazione • 95% del tempo di calcolo è usato dalle due routine • Scrittura modulare: facile sostituzione con altre implementazioni • Versioni attuali sono: (SpeedUp rispetto a un singolo core Intel Westmere a 2.66 GHz) Piattaforma Linguaggi Collaborazione SpeedUp Core Intel Fortran e C (Maxeler) 2x Maxeler FPGA Java (Maxeler compiler) e C++ Maxeler 110 x AMD FireStream OpenCL AMD e committente 60 x Nvidia Tesla/Fermi Cuda Nvidia e committente 100 x Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 32. Parallelizzazione Multi-Semblance • L’applicazione costituisce un’infrastruttura attorno al nucleo TravelTime e Multi-Semblance • Chiamate molteplici volte dall’ottimizzazione • 95% del tempo di calcolo è usato dalle due routine • Scrittura modulare: facile sostituzione con altre implementazioni ( Cosa rende speciale calcolare tante Semblance assieme rispetto a una per volta? Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 33. Parallelizzazione Utilizzo dei dati nella Multi-Semblance Utilizzo dei dati con 1 campione Utilizzo dei dati con 4 campioni Utilizzo dei dati con 16 campioni Utilizzo dei dati con 64 campioni Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 34. CPU e Multi-Semblance Sfruttamento della cache della CPU • Non calcola una Semblance alla volta • Calcolanum = ...i termini parziali relativi alla singola traccia (1 ) assieme −N num = num −N +a ( nsemb ) ( nsemb ) −N i , t i( nsemb ) − N 2 2 2 2 i=1 ... ... num (1 ) k = ... num ( nsemb ) k = num ( nsemb ) k + a i , t ( nsemb ) + k i ... ... denom (1 ) = ... denom ( nsemb ) = denom ( nsemb ) + ∑a 2 i , t i( nsemb ) + k N 2 2 M ∑ ∑a i,t i + k r 1 k = − N 2 i= 1 S ( x 0, t0 ) = N M 2 M ∑ ∑a 2 i,t i + k Collana di seminari per la valorizzazione dei Risultati − N 2 Ricerca del CRS4 k = della i= 1
  • 35. CPU e Multi-Semblance Sfruttamento della cache della CPU • Non calcola una Semblance alla volta • Calcola assieme i termini parziali relativi alla singola traccia • Una traccia occupa circa 12 KB e può risiedere per intero dentro la cache di primo livello delle moderne CPU • Ciò permette di aumentare il rapporto tra “Cache hit e Cache miss ” fino a 100 volte • Il meccanismo di caricamento del dato in cache è automatico • Riduzione del tempo globale del calcolo del 50%: • Da 3 a 1,5 mesi il tempo di elaborazione di un dataset con 1.000 core Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 36. Field Programmable Gate Array e Multi-Semblance Meccanismo di calcolo nel FPGA • Algoritmo del calcolo uguale a quello visto per la CPU • Non c’è un meccanismo di cache nel FPGA • C’è un flusso continuo delle tracce nel FPGA • calcola e conserva in memoria quanto serve • Per ogni FPGA si hanno fino a: • 6 pipe ovvero 6 flussi continui del dato a 180 MHz • Le pipe lavorano in modo SIMD • Tuning specifico per il codice • Utilizzo della rappresentazione in virgola fissa • Si ha una maggior precisione solo dove richiesto Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 37. Field Programmable Gate Array e Multi-Semblance Meccanismo di calcolo nel FPGA DRAM of PCI card PCIe Parametri Coord. delle tracce FPGA Riduzione del tempo globale e TraveTime Kernelnecessarie Riduzione del tempo globale edelle risorse necessarie delle risorse Da 3 mesi a 6 giornitt da 1.000 core in 167 nodi a 128 FPGA su 32 nodi , Da 3 mesi a 6 giorni, da 1.000 core in 167 nodi a 128 FPGA su 32 nodi Ris. parziali Ris. parziali Multi-Semblance Kernel Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 38. Field Programmable Gate Array e Multi-Semblance Un risultato con FPGA CPU Coherency MAX2 Coherency Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 39. GPGPU e Multi-Semblance Meccanismo di calcolo nella GPGPU • Algoritmo di calcolo “naturale” • Ogni Semblance è assegnata a un Thread • Il calcolo della funzione costo procede in modo asincrono • L’hardware gestisce la schedulazione dei thread ai core “liberi” • Si realizza un modello SIMD sui parametri del TravelTime • (L’ottimizzazione procede in modo sincrono) • Il calcolo viene velocizzato dai numerosi core • fino a 512 sulle schede Nvidia Fermi • Importanti differenze tra le due implementazioni in test: AMD FireStream OpenCL AMD e committente 60 x Nvidia Tesla/Fermi Cuda Nvidia e committente 100 x Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 40. GPGPU e Multi-Semblance Confronto tra versione AMD e Nvidia Versione AMD: • Scritta in OpenCL • C’è un tempo di latenza iniziale dovuto alla compilazione del kernel • Il TravelTime è calcolato “al volo” all’interno della Semblance • Coprire la lettura del dato con il tempo di calcolo Versione Nvidia: • Scritta in Cuda • Linguaggio, fino ad oggi, un po’ più maturo per HPC • TravelTime vengono calcolati preventivamente • Uso della memoria Texture per le interpolazioni • Interpolazioni hardware molto veloci, ma meno precise • Dobbiamo ancora verificare se la precisione è sufficiente Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 41. GPGPU e Multi-Semblance Confronto tra versione AMD e Nvidia Versione AMD: • Scritta tempo globale e delle risorse necessarie Riduzione delin OpenCL Riduzione deltempo globale e delle risorse necessarie Da 3 •mesiun47 giorni,latenza iniziale dovuto alla compilazione delFireStream Da 3 C’è tempo di kernel mesi a 47 giorni,da 1.000 core in 167 nodi a 32 schede FireStream a da 1.000 core in 167 nodi a 32 schede • Il TravelTime è calcolato “al volo” all’interno della Semblance • Coprire la lettura del dato con il tempo di calcolo Versione Nvidia: • Scritta tempo Riduzione delin Cuda globale e delle risorse necessarie Riduzione deltempo globale e delle risorse necessarie Da 3 •mesia 28 giorni,ad oggi, uncore in maturo pera32 schede Fermi Da 3 mesi a 28 giorni,da 1.000 po’ più 167 nodi aHPC schede Fermi Linguaggio, fino da 1.000 core in 167 nodi 32 • TravelTime vengono calcolati preventivamente • Uso della memoria Texture per le interpolazioni • Interpolazioni hardware molto veloci, ma meno precise • Dobbiamo ancora verificare se la precisione è sufficiente Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 42. Acceleratori hardware del calcolo ad alte prestazioni Progetti futuri • Continuare a seguire lo sviluppo dell’hardware • Modifica dell’ottimizzazione • Meno performace, ma con una convergenza uniforme per ogni t0 • Estendere il porting su FPGA e GPGPU • Altri modelli data-driven con più parametri da cercare • Altri progetti Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4
  • 43. Acceleratori hardware del calcolo ad alte prestazioni Domande? Collana di seminari per la valorizzazione dei Risultati della Ricerca del CRS4