• Non ci sono risultati.

Limiti e difficolt` a del GPGPU

La pura potenza di calcolo, pur essendo un buon viatico verso un sostanzia- le incremento delle prestazioni, da sola non garantisce un aumento effettivo della performance di una applicazione. Come gi`a visto pi`u volte in questo capitolo, le comunicazioni e, in misura minore, lo stesso accesso in memoria, rappresentano in molti casi vincoli che limitano pesantemente il pieno sfrut- tamento delle risorse di calcolo del moderno hardware. La GPU, sebbene presenti un fascino oggettivo derivatole principalmente dal numero enorme di operazioni al secondo che riesce a sostenere, non pu`o rappresentare la pa- nacea di tutti i mali. Esiste una amplissima classe di problemi che non pu`o ricevere, stante l’architettura attuale dei device grafici, alcun beneficio dalla potenza di calcolo insita negli stream processor. A titolo di esempio si consi- deri il tentativo di implementare in GPU la moltiplicazione tra matrici dense N x N, con N sufficientemente grande. Sebbene primo acchito tale problema sembrasse un candidato naturale a beneficiare delle caratteristiche compu- tazionali offerte dalle schede grafiche di ultima generazione, l’esperimento si `

e, invece, dimostrato fallimentare [FSH04]. I vari livelli di cache della CPU, infatti, permettono un riutilizzo dei dati tale da colmare e ribaltare l’enorme vantaggio che la GPU offre dal punto di vista del calcolo puro10.

Una buona misura per comprendere a priori se una computazione general

10E bene notare come invece nella moltiplicazione delle matrici sparse il vantaggio di` performance della GPU sulla CPU `e sostanziale.

CAPITOLO 2. GPGPU 60 purpose possa ricevere un effetivo beneficio in termini di performance da una implementazione sulla GPU `e data dalla formula seguente:

ia = ]op/]wt (2.2) Nell’equazione si stima l’intensit`a aritmetica (ia) come rapporto tra nu- mero di operazioni matematiche effettuate (op) ed il numero di parole di memoria trasferite (wt). Ovviamente tanto pi`u alto sar`a tale rapporto tan- to pi`u grande sar`a il beneficio, in termini di performance, ricevuto da una trasizione del problema sulla GPU.

`

E doveroso, infine, precisare che la tecnologia che si tenta di usare `e molto giovane e presenta, quindi, forti limiti sia strutturali sia di stabilit`a. Svilup- pare una applicazione, anche banale, che sfrutti la capacit`a di calcolo della GPU pu`o essere una operazione lunga e complessa. Una parte non irrilevan- te del tempo speso per lo svolgimento del lavoro in esame `e stato devoluto ad aggirare i problemi introdotti da bachi nei driver della scheda grafica. L’appendice B ne `e una testimonianza. La cosa non deve n`e sorprendere n`e scoraggiare ed anzi `e da considerarsi assolutamente fisiologica visto che la funzione originaria per cui l’hardware grafico `e stato disegnato `e completa- mente estranea al calcolo general purpose. In molti casi i vantaggi promessi dall’uso della GPU valgono il rischio di una piccola battaglia con il device grafico.

Capitolo 3

Elementi di fisica e di

integrazione numerica

Ogni modello per una simulazione del comportamento fisico di un oggetto si basa sulla seconda legge del moto di Newton:

m¨x + γ ˙x + ∂Erg(x)

∂u = f (3.1)

dove x indica la posizione del punto di massa m e γ il damping factor, ov- vero la resistenza al movimento dovuta all’attrito. Il termine ∂Erg(x)∂u indica la derivata dell’energia potenziale rispetto alla posizione del punto, infine f `e la forza esterna esercitata sulla massa. Se, ad esempio, il punto fosse legato all’origine del sistema di coordinate da una molla di coefficiente k e si stesse muovendo lungo l’asse x, allora E(x) = R0xkudu = 12ku2 e quindi

∂Erg(x)

∂u = kx. Si supponga che un oggetto sia rappresentato da un numero di

punti x0, . . . , xn di massa m0, . . . , mn, distribuiti in uno spazio continuo. Se

si riuscisse a trovare l’equazione dell’energia associata alla posizione di cia- scuno di questi punti si potrebbe predire e quindi calcolare il comportamento dell’oggetto risolvendo le equazioni differenziali risultanti.

CAPITOLO 3. ELEMENTI DI FISICA E DI INTEGRAZIONE NUMERICA62 Modelli discreti e modelli continui Anche se si fosse in grado di descri- vere il comportamento di questo oggetto per ogni punto attraverso l’equazio- ne 3.1, sarebbe necessario stabilire quale sia l’insieme di punti scelto in modo tale da descrivere il comportamento del modello in maniera adeguata. Le strategie di rappresentazione di un modello possono essere raggruppate in due grandi classi: I modelli discreti ed i modelli continui. Nei modelli discreti la rappresentazione del modello viene ridotta ad un sottoinsieme dei suoi punti tali da caratterizzare in modo pi`u realistico possibile le propriet`a meccaniche dell’oggetto. La complessit`a fisica dell’oggetto richieder`a una distribuzione di punti adeguata: se ad esempio l’oggetto da rappresentare avesse la forma di una barra di gomma, il sistema potrebbe essere formato da un insieme di punti uniformemente distribuiti lungo l’estensione della bar- ra stessa; ognuno di essi sarebbe legato agli adiacenti tramite una molla. Pi`u complesso `e l’elemento da descrivere e pi`u complessa sar`a la definizione dell’e- nergia. I modelli continui si basano invece su una rappresentazione continua dell’oggetto formata da infiniti punti distribuiti nello spazio del modello. In questo caso l’equazione del moto dovr`a essere riscritta come :

µ(u)¨x + λ(u) ˙x + ∂Erg(x)

∂u = f (x) (3.2) dove x = x(u, t) `e la posizione del punto u al tempo t. Siccome questa equazione `e risolvibile per via analitica solo in casi ideali, il problema verr`a discretizzato attraverso l’analisi ad elementi finiti.

3.1

Mass spring

I modelli discreti rappresentano il comportamento di un materiale attraverso un insieme di parti meccaniche elementari e un insieme di relazioni tra essi. In questo tipo si modelli i pi`u utilizzati sono quelli che si basano su una

CAPITOLO 3. ELEMENTI DI FISICA E DI INTEGRAZIONE NUMERICA63 struttura di tipo particle system; la loro popolarit`a `e dovuta soprattutto alla semplicit`a di realizzazione oltre che alla loro versatilit`a.

Una particolare istanza del Particle system per la descrizione degli ogget- ti deformabili `e il modello Mass spring. In esso le particle che costituiscono il sistema sono interconnesse tra di loro tramite molle. Le connessioni tra particle possono seguire ad esempio una rete spigoli di celle tetraedrali che de- scrivano l’intero volume dell’oggetto deformabile. Il valore della forza interna agente sulla particella Pi assume la forma:

Fi = X j∈N (Pi) kij(kPiPjk − l0ij) PiPj kPiPjk (3.3) Dove N (Pi) `e l’insieme dei vertici Pj adiacenti a Pi, kij `e il coefficiente di

rigidit`a tra i vertici Pi e Pj, l0ij `e la lunghezza iniziale della molla tra Pi e Pj.

Il modello Mass spring costituisce nel complesso un metodo abbastanza sem- plice da implementare; purtroppo la resa dal punto di vista del realismo fisico `

e pi`u scarsa rispetto ai metodi continui come il FEM. Nel FEM la variazio- ne di energia interna dell’oggetto viene calcolata basandosi sul volume del dominio di integrazione prescelto all’interno del quale la massa `e distribuita in maniera uniforme. Questo tipo di modello fisico costituisce una rappre- sentazione pi`u accurata della realt`a; le differenze col modello Mass Spring si notano poi in termini di realismo durante la simulazione.

Documenti correlati