il calcolo parallelo ad alte prestazioni: applicazioni di

Transcript

il calcolo parallelo ad alte prestazioni: applicazioni di
UNIVERSITA DEGLI STUDI DI TRIESTE
FACOLTA DI INGEGNERIA
Dipartimento di Elettrotecnica, Elettronica e Informatica
TESI DI LAUREA
IN
FONDAMENTI DI TEORIA
DEI SISTEMI
IL CALCOLO PARALLELO
AD ALTE PRESTAZIONI:
APPLICAZIONI DI
TERMOFLUIDODINAMICA
COMPUTAZIONALE SUL
CRAY-T3D
Laureando
:
Luka ONESTI
Relatore
Chiar:mo Prof: Mario POLICASTRO
:
Correlatore
Dott: Ing: Enrico NOBILE
:
Anno Accademico 1993-94
Indice
1 Introduzione ai sistemi paralleli
3
1.1
1.2
1.3
1.4
1.5
Perche parallelo? . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Un po' di storia . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
In difesa del parallelismo . . . . . . . . . . . . . . . . . . . . . . 6
Classicazione di Flynn . . . . . . . . . . . . . . . . . . . . . . 8
Sistemi Multiprocessore . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Sistemi a memoria distribuita - Shared Memory Systems 9
1.5.2 Sistemi a memoria locale - Private Memory Systems . . 10
1.6 Campi di applicazione . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 Il Supercalcolo in Fluidodinamica Computazionale . . . . . . . 12
2 Il sistema Parallelo CRAY T3D
2.1 Introduzione alla famiglia T3D . . . . . . . . . . . .
2.2 Il nodo di calcolo . . . . . . . . . . . . . . . . . . . .
2.2.1 Topologia del nodo . . . . . . . . . . . . . . .
2.2.2 Architettura del processore . . . . . . . . . .
2.3 Rete di interconnessione . . . . . . . . . . . . . . . .
2.3.1 Connessione a topologia toroidale . . . . . . .
2.3.2 I/O Gateways . . . . . . . . . . . . . . . . . .
2.4 Ambiente di programmazione del T3D . . . . . . . .
2.4.1 Paradigma Message Passing . . . . . . . . . .
2.4.2 Modelli impliciti di programmazione parallela
2.4.3 Paradigma Data Parallel . . . . . . . . . . . .
2.4.4 Paradigma Work Sharing . . . . . . . . . . .
2.5 Osservazioni . . . . . . . . . . . . . . . . . . . . . . .
I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
17
17
17
20
23
27
28
29
33
33
36
42
II
INDICE
3 Il fenomeno della convezione
3.1
3.2
3.3
3.4
3.5
Introduzione . . . . . . . . . . . . . . . . . . . . . .
Formulazione matematica . . . . . . . . . . . . . .
Determinazione delle equazioni adimensionali . . .
Determinazione delle equazioni discrete nel tempo
Sistema risolvente . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
48
51
54
56
4 Utilizzo del metodo dei Volumi Finiti
57
5 Risoluzione dell'equazione di Navier Stokes
70
4.1 Il metodo dei Residui Pesati . . . . . . . . . . . . . . . . . . . .
4.2 Il metodo dei Volumi Finiti . . . . . . . . . . . . . . . . . . . .
4.3 Equazione discretizzata dell'energia . . . . . . . . . . . . . . . .
5.1 Formulazione tradizionale delle equazioni di Navier-Stokes .
5.2 Equazioni di Navier-Stokes viste come proiezioni . . . . . .
5.2.1 Denizione dell'operatore di proiezione . . . . . . . .
5.3 Algoritmi di proiezione nel continuo . . . . . . . . . . . . .
5.3.1 Metodo Optimal Projection2 per un sistema chiuso .
5.3.2 Metodo Projection2 semplicato per sistemi chiusi .
5.3.3 Metodo Projection2 per un sistema continuo aperto
5.3.4 Metodo Projection2 per un sistema discreto aperto .
6 Soluzione numerica dell'equazione di Poisson
6.1
6.2
6.3
6.4
6.5
Introduzione . . . . . . . . . . .
Formulazione matematica . . .
Matrix Decomposition . . . . .
Implementazione dell'algoritmo
Risultati e prestazioni . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Implementazione del codice sul T3D
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7.1 Esempi di applicazione del modello CRAFT
7.2 Risultati e prestazioni . . . . . . . . . . . .
7.2.1 Poisson Solver . . . . . . . . . . . .
7.2.2 Codice NUSUMIC . . . . . . . . . .
7.3 Osservazioni conclusive . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
59
60
70
73
75
77
77
79
79
81
84
84
85
88
92
95
98
99
103
104
109
114
INDICE
8 Risultati
8.1 Convezione naturale . . . . . . . . . . . . . . . . . . . .
8.1.1 Confronto con altri autori . . . . . . . . . . . . .
8.2 Convezione mista . . . . . . . . . . . . . . . . . . . . . .
8.2.1 Condizioni al contorno sulla supercie d'ingresso
8.2.2 Condizioni al contorno sulla supercie in uscita .
8.2.3 Confronto con prove sperimentali . . . . . . . . .
8.2.4 Simulazione di diversi regimi di moto . . . . . . .
9 Conclusioni
A Fast Poisson Solver in 3D
III
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
117
117
117
120
121
122
123
129
143
146
Introduzione
Il primo luglio 1994 e entrato in servizio presso il CINECA (Centro di Calcolo Elettronico dell'Italia Nord Orientale) il primo esemplare di Cray T3D
disponibile in Italia. Si tratta del nuovo Supercalcolatore Parallelo, della Cray
Research Inc., capace di 9.6 Gop/s e con una memoria totale di 4Gbyte.
Contemporaneamente il CINECA ha selezionato alcune proposte di ricerca,
fra quelle inviategli, meritevoli di possedere tutte le caratteristiche per poter
sfruttare al meglio questa nuova architettura. Una di queste e risultata essere
quella presentata dalla sezione di Fisica Tecnica del Dipartimento di Ingegneria Navale, del Mare e per l'Ambiente-DINMA dell'Universita di Trieste. Il
progetto proposto riguarda la simulazione numerica parallela di fenomeni di
tipo convettivo non stazionario in canali rettangolari. In questa tesi verra presentato il lavoro che e stato richiesto per la realizzazione di questo progetto ed
i risultati ottenuti.
Verranno mostrate le motivazioni che si trovano alla base della scelta di utilizzare un Supercalcolatore, come il Cray T3D, per la risoluzione di un problema
come quello che ci siamo pressati. L'utilizzo di questa macchina non e da
considerarsi quindi come un semplice esercizio di calcolo parallelo ma un applicazione pratica nalizzata alla soddisfazione di una ben precisa richiesta.
Data la grande eterogeneita di contenuti, che vanno a comporre il progetto
che abbiamo realizzato, la tesi puo considerarsi suddivisa principalmente in
due parti:
Nella prima parte verra descritto il nuovo sistema di calcolo parallelo
Cray T3D, proponendo una visione sia dell'archittetura nel suo insieme
che dei nuovi paradigmi di programmazione disponibili per esso. In par1
2
INDICE
ticolare mostreremo come si puo passare dalle tecniche tradizionali di
programmazione sequenziale a quelle emergenti, costituite da primitive
per l'elaborazione parallela.
La seconda parte illustra l'analisi del problema termouidodinamico della
convezione. Vista la vastita di tale problema non ci soermeremo molto
sul problema sico, peraltro gia esaurientemente descritto da altri autori,
bens sulle tecniche di discrettizzazione delle equazioni che lo regolano e
sugli algoritmi che ne permettono la soluzione numerica.
Una consistente parte del lavoro svolto e rappresentata dalle simulazioni eseguite e dai dati raccolti. Abbiamo suddiviso i risultati per dare rilievo a tutte e
due le parti sopra citate. Presenteremo quindi un insieme di dati che riassume
le prestazioni ottenute sul T3D, anche in relazione a sistemi piu tradizionali ed
un insieme di risultati, di valenza prettamente termouidodinamica, comprendenti confronti con altri autori e soluzioni innovative.
Capitolo 1
Introduzione ai sistemi
paralleli
1.1 Perche parallelo?
Per uno studente d'ingegneria elettronica l'approccio alla programmazione e
un fatto automatico, si comincia dai primi anni di corso, con i primi algoritmi,
proseguendo la carriera universitaria, queste conoscenze vengono consolidate ed
ampliate no a costituire quel bagaglio di conoscenze informatiche che sono fondamentali per il giusto svolgimento del proprio mestiere. Nella maggior parte
dei casi il modello di programmazione che si apprende e di tipo tradizionale,
cioe Sequenziale, contrapposto al modello Parallelo che viene generalamente
presentato come un esempio e quasi mai come un'eciente alternativa nelle
applicazioni pratiche.
Perche programmare in parallelo? Sembra essere la domanda piu comune
di chi si avvicina per la prima volta a questo nuovo mondo, a cui non si puo che
consigliare l'osservazione dell'ambiente in cui si muove. Il mondo, la societa in
cui siamo immersi e in cui operiamo, presenta diversi aspetti in cui possiamo
identicare entrambe le tipologie di evoluzione. Quindi esistono eventi che non
si succedono secondo una scaletta ma sono in concorrenza tra loro ed insieme
raggiungono l'obiettivo pressato.
L'evolvere in parallelo e quindi un avvenimento del tutto naturale, si muovono
all'unisono le note di un accordo musicale come gli impulsi elettrochimici alla
3
4
1. Introduzione ai sistemi paralleli
base del pensiero umano e l'uomo ha fatto inconsciamente proprio questo principio riproponendolo nelle sue creazioni. Sono esempi di parallelismo le macro
strutture sociali dove le azioni uiscono parallelamente, attraverso le istituzioni
locali, verso il singolo utente, i sistemi di comunicazione dove migliaia di canali
viaggiano contemporaneamente sullo stesso mezzo di trasmissione ed ancora i
sistemi produttivi dove una molteplicita di componenti viene realizzata concorrentemente per poi conuire nel prodotto nale.
Ora non resterebbe che applicare questi concetti nello sviluppo e implementazione dei programmi che, in sostanza, ci servono a capire e gestire in
modo migliore l'ambiente che ci ospita. In realta, no ad ora, quest'operazione
e stata ostacolata da alcuni fattori che hanno frenato lo sviluppo del Calcolo
Parallelo, favorendo invece metodologie piu tradizionali, come ad esempio la
mancanza di macchine parallele di larga diusione e l'oggettiva dicolta che
si incontra arontando la maggior parte dei paradigmi di programmazione no
ad ora disponibili. Come mostreremo nell'ambito di questa tesi, queste difcolta si stanno progressivamente attenuando grazie all'uscita sul mercato di
nuovi sistemi paralleli, apristrada dei Super Calcolatori Paralleli della prossima
generazione. Inoltre l'introduzione, come supporto alla programmazione parallela, di sistemi molto piu essibili e orientati verso l'utilizzatore, come ad
esempio l'ambiente CRAFT della Cray, sta richiamando un sempre maggior
numero di persone disposte ad apprendere ed utilizzare questo che sembra
essere l'approccio al calcolo automatico, ed in particolare di quello ad alte
prestazioni del futuro (HPC - High Performance Computing).
1.2 Un po' di storia
Il primo calcolatore elettronico digitale venne sviluppato nel 1946 dall'universita
della Pennsylvania, si trattava dell'ENIAC, primo esempio di macchina calcolatrice programmabile1. Il primo calcolatore programmabile con istruzioni in
memoria, invece, era l'UNIVAC 1 (1951); si trattava del primo esempio di
macchina sviluppata con il cosidetto modello di von Neumann2 . Questi elabo1 Il programma veniva "inserito" nell'ENIAC tramite apposito cablaggio dei componenti,
se si voleva modicare le istruzioni bisognava ricablare la componentistica.
2 Il modello di von Neumann si applica a macchine totalmente sequenziali che posseggono
una memoria centrale comune a dati e istruzioni e ad ogni intervallo di tempo esse eseguono
una sola istruzione per volta.
1.2. Un po' di storia
5
ratori facevano parte della cosidetta prima generazione, si trattava di macchine
totalmene sequenziali, perno l'accesso in memoria avveniva bit per bit, realizzate con tecnologia valvolare che permettevano un delay gate time3 di circa
1s. Nel 1953 l'IBM commercializza il modello 701 il primo calcolatore ad accedere in memoria tramite un bus parallelo, si tratta del primo timido esempio
di parallelismo presente in una macchina calcolatrice.
La seconda generazione di calcolatori subentra alla prima con l'avvento
dei dispositivi a semiconduttore: nel 1960 l'IBM 7090, calcolatore basato su
transistor al germanio, porta il delay gate time a circa 0:3s. Gli anni successivi
sono caratterizzati dallo sviluppo frenetico delle tecnologie elettroniche, dal
1965 al 1975 si assiste al miglioramento delle prestazioni che aumentano di
circa un fattore 10 ogni cinque anni. Grazie all'introduzione della SSI (smallscale integration) permessa dallo sviluppo di circuiti integrati planari (ICS)
il delay gate time si riduce no a 1ns e contemporaneamente la comparsa
dei primi dispositivi MOS permette un sempre maggior integrazione di porte
logiche su singolo chip.
La seconda meta degli anni settanta e gli anni ottanta si contraddistinguono dalla tendenza alla sempre maggior integrazione componentistica con la
nascita delle famiglie VLSI (Very-Large Scale Integration), che permette nalmente un'evoluzione del modello di von Neumann nel quale il concetto di sequenzialita non risulta essere piu preponderante. Si sviluppano quindi modelli,
come la vettorizzazione, in cui l'esecuzione parallela di operazioni aritmetiche
si dimostra essere la strada vincente per il Super-Calcolo. Nel 1976 diviene operativo il Cray-1, il primo successo commerciale per un calcolatore vettoriale,
dotato di 12 unita funzionali capaci di operare su 8 registri vettoriali con una
potenza di picco di 130 Mop/s. Gli anni ottanta presentano invece le nuove
macchine in cui l'accoppiamento di piu unita vettoriali spinge le prestazioni
verso nuovi limiti, sono di questo genere il NEC SX2 da 1.3 Gop/s, il Cray YMP (1987/8) che con 8 processori raggiunge i 2.1 Gop/s, il Cray C916 (inizio
anni novanta) capace di 16 Gop/s con 16 processori. Contemporaneamente la
disponibilita di microprocessori di medio/alte prestazioni ma di costo ridotto
ha permesso lo sviluppo di sistemi massicciamente paralleli4. Super calcolatori
3 Il delay gate time e il tempo che trascorre anche un informazione logica si trasferisca
da un gate di un componente elettronico a quello successivo.
4 Per sistema massicciamente parallelo si intende una macchina dotata di un numero elevato di unita di elaborazione il cui costo deve essere contenuto anche la macchina risulti
6
1. Introduzione ai sistemi paralleli
paralleli, sono ad esempio sistemi di questo tipo l'IBM SP1 da 64 processori
e potenza di picco attorno agli 8Gop/s, la KSR1 della Kendall Square con
1088 cpu e 43.5 Gop/s oppure il Cray T3D con 2048 cpu che raggiunge i
300 Gop/s.
Attualmente e aperta la corsa al raggiungimento del Teraop/s di picco (si
tratta di una limite teorico), obiettivo che si sta per raggiungere probabilmente
gia entro il 1995, con l'avvento delle nuove macchine sia vettoriali multiprocessore (Cray TRITON) che macchine a parallelismo massivo (CRAY T3E). Per
il prossimo futuro invece si pensa gia ad ottenere 1TFlop/s sostenuto (Cray
T3xx), cioe raggiungibile operativamente.
Come si puo vedere quindi il calcolo parallelo si e aancato ed ha superato il calcolo tradizionale per quanto riguarda le prestazioni, rimangono pero
alcune obiezioni sull'eettiva ecacia di tali metodologie nella risoluzione di
particolari problemi e situazioni. A questo proposito riportiamo alcune interessanti considerazioni fatte da Quinn [1] dove l'autore analizza i pro e i contro
l'utilizzo del modello parallelo.
1.3 In difesa del parallelismo
Legge di Grosch. Grosch aerma che la velocita dei calcolatori e proporzionale al quadrato del loro costo. Risulta chiaro che conviene acquistare
un calcolatore superveloce piuttosto che due piu piccoli connessi in parallelo.
Critica alla legge di Grosch. La legge risulta sicuramente applicabile ai
piccoli sistemi, come personal computer o workstation, ma non ai sistemi di
supercalcolo perche in realta la massima velocita raggiungibile da un calcolatore e nita, non si puo aumentarla spendendo di piu. Se si ha la necessita di
prestazioni maggiori bisogna collegarne di piu in parallelo.
Congettura di Minsky. Minsky ipotizza che lo speedup ottenibile da un
calcolatore parallelo sia proporzionale al logaritmo del numero di unita di calcolo.
Critica alla congettura di Minsky. Prove sperimentali hanno mostrato
economicamente competitiva.
1.3. In difesa del parallelismo
7
come lo speedup di una macchina parallela e strettamente correlato al particolare algoritmo implementato ed all'architettura del sistema. Eettivamente
lo speedup di algoritmi tradizionali implementati su calcolatori paralleli ha
mostrato un andamento logaritmico ma e anche vero che algoritmi paralleli
hanno prodotto speedup quasi lineari per un numero di nodi superiore al centinaio.
Ragioni storiche. La storia ci insegna che la velocita degli elaboratori sequen-
ziali viene incrementata di un fattore 10 ogni 5 anni. Perche quindi spendere
tempo e denaro nello sviluppo di un calcolatore parallelo che sia 10 volte piu veloce se basta attendere lo sviluppo di nuove architetture sequenziali che saranno
ugualmente veloci?
Critica alle ragioni storiche. Non si vede il motivo per cui non investire
gia da subito nel calcolo parallelo, tanto piu che anche il tasso di crescita di un
elaboratore parallelo dovrebbe essere pari a quello dei sequenziali. In secondo
luogo con l'incremento delle prestazioni aumenta anche la complessita degli
algoritmi, quindi meglio parallelizzare che aspettare.
La legge di Amdahl. Un piccolo numero di operazioni sequenziali possono
seriamente limitare lo speedup di un algoritmo parallelo. Sia f la percentuale
di operazioni che vanno eseguite sequenzialmente su un calcolatore parallelo,
dove 0 f 1. Risulta facile vedere come il massimo speedup S ottenibile da
un calcolatore dotato di p processori sia:
S f + (11, f )=p ;
S = TT1
(1.1)
p
Dove T1 e Tp sono rispettivamente i tempi di esecuzione dell'algoritmo parallelo su un processore e su p processori. Per un esempio di quanto le operazioni
sequenziali possano deteriorare le prestazioni di un calcolattore parallelo si
consideri di implementare su una macchina ideale cioe con inniti processori
(p = 1) un algoritmo che presenti il 10% di istruzioni sequenziali. In tal caso
la legge di Amdahl ci dice che non otteremo mai uno speedup maggiore di 10.
Critiche alla legge di Amdahl. Questa legge e una delle piu forti argomentazioni contro il calcolo parallelo, perche sembrerebbe che un calcolatore
8
1. Introduzione ai sistemi paralleli
parallelo non riuscira mai ad andare 15 o 20 volte piu veloce di un calcolatore tradizionale. In realta non ci si deve limitare all'implementazione degli
algoritmi tradizionali, ma bisogna svilupparne di nuovi adatti alle nuove piattaforme di calcolo. La legge di Amdahl rimane in ogni caso un ottimo metodo
per valutare se un algoritmo e adatto alla parallelizzazione.
L'inerzia del software. Milioni di dollari di software esistente per sistemi
tradizionali, chi convertira questi strumenti?
Critiche all'inerzia dell'software. Si tratta di un argomentazione priva
di spessore, perche assume che il presente ed il futuro del calcolo parallelo
sia strettamente legato agli stessi problemi risolvibili dal calcolo tradizionale.
Sembra molto piu sensato ipotizzare l'aorare di problemi che possono trovare
nel calcolo parallelo la loro soluzione. Quindi si prevede la nascita di nuovo
software che non sostituira quello esistente, ma gli si aanchera.
1.4 Classicazione di Flynn
Si tratta di una classicazione in cui si presentano le diverse tipologie standard
di macchine calcolatrici. Il criterio proposto da Flynn(1972)[2] tiene conto delle
modalita di manipolazione sia dei dati che delle istruzioni.
Macchine SISD (Single Instruction stream - Single Data stream)
Si rifanno al modello di von Neumann. La maggior parte degli elaboratori
scalari fa parte di questa categoria. Ad ogni passo di tempo viene eseguita
una sola istruzione.
Macchine SIMD (Single Instruction stream - Multiple Data stream)
Sono macchine SIMD tutti gli elaboratori vettoriali che manipolano una
sola istruzione ad ogni istante di tempo ma che contengono piu unita
funzionali aritmetiche capaci di operare contemporaneamente su piu dati.
Macchine MISD (Multiple Instruction stream - Single Data stream)
Non esistono applicazioni di questo modello.
1.5. Sistemi Multiprocessore
9
Macchine MIMD (Multiple Instruction stream - Multiple Data stream)
Sotto questa dicitura si possono classicare tutti gli elaboratori con piu
unita di elaborazione (sia scalari che vettoriali), da quelli che possiedono
una bassa interazione tra processi concorrenti (es. Cray C90) a quelli
progettati per sfruttare al massimo le interazioni tra processori (es. Cray
T3D).
Per specicare meglio la tipologia di macchine MIMD e opportuno dare alcune denizioni che ci permettano di distinguere meglio la grande varieta di
macchine che ricadono in questa categoria.
1.5 Sistemi Multiprocessore
Sono sistemi multiprocessore tutti quei sistemi che si compongono da un numero piu o meno elevato di unita di elaborazione (dette anche nodi), capaci di
operare indipendentemente uno dall'altro. Ogni nodo, che puo essere di tipo
scalare o vettoriale, comunica con gli altri attraverso una rete di interconnessione (Network). Pur esistendo molteplici dierenze da macchina a macchina
possiamo identicare due fattori principali di dierenziazione dei vari sistemi:
La gestione della memoria, possiamo troviamo sistemi che fanno uso di una
memoria distribuita (Shared Memory) attraverso tutti i nodi, e sistemi
in cui ogni processore riconosce solo la propria memoria locale (Private
memory).
Il grado di parallelismo, si tratta di un indice qualitativo che identica la
quantita di lavoro svolta in parallelo ed il grado di cooperazione dei nodi.
1.5.1 Sistemi a memoria distribuita - Shared Memory Systems
In questo modello la memoria e vista come risorsa unica per tutti i processori,
essi vi accedono indipendentemente tramite la rete di interconnessione. Essendo i dati presenti in memoria accessibili da tutti i nodi vanno potenziati sia
la rete di communicazione sia il software di gestione, al ne di evitare accessi in
memoria contemporanei di piu nodi. Vediamo alcuni esempi di elaboratori con
diverso grado di parallelismo che implementano questo modello di memoria :
10
1. Introduzione ai sistemi paralleli
Basso parallelismo - Il Cray-2 (1884/5) con 4 unita di calcolo vettoriale e
capace di indirizzare 256 Mword di memoria condivisa.
Medio parallelismo - I sistemi CONVEX C3800 con 8 processori all'arseniuro
di gallio riescono ad indirizzare no a 4GB ed il sistema Cray C916 no
a 8GB di memoria shared.
Alto parallelismo - Il Cray T3D puo ospitare no a 2048 nodi ciascuno con
8Mword, che puo essere vista sia come condivisa sia privata.
1.5.2 Sistemi a memoria locale - Private Memory Systems
Si tratta di elaboratori in cui ogni nodo di calcolo possiede una propria memoria
locale indirizzabile solo dal nodo stesso. Array di dati molto estesi vanno
spezzati in sottoinsiemi piu piccoli e distribuiti sui nodi, le comunicazioni sono
piu ridotte e l'accesso a dati residenti su un processore remoto avviene con
modalita di tipo Message Passing5 . Questo tipo di gestione della memoria
e caratteristico dei sistemi ad alto parallelismo. La famiglia di calcolatori
Intel iPSC/860 Hypercube monta no a 128 processori ciascuno con 8MB di
memoria, la CM-5 della Thinking Machine riesce a gestire, teoricamente, no
a 16384 nodi ciascuno con una memoria locale di 128MB.
1.6 Campi di applicazione
In passato molte perplessita sono state esposte allo sviluppo dei sistemi paralleli. Alcune di queste argomentazioni possono essere facilmente rigettate, altre
permangono ancora. Alcune applicazioni non potranno mai essere portate su
macchine parallele data la bassa propensione al parallelismo di alcuni algoritmi, percio la loro resa risultera sempre piu conveniente su delle macchine
convenzionali. Comunque rimane un gran numero di problemi che richiedono
una potenza di calcolo molto maggiore di quella disponibile attualmente, per i
quali una soluzione parallela risulta sicuramente insostituibile. Possiamo citare
a proposito applicazioni come :
5 Per Message Passing si intende un paradigma della programmazione parallela, che prevede
delle comunicazioni tra nodi di tipo a interrogazione (Polling) in cui un dato uisce tra due
nodi solo se il canale relativo e stato aperto.
1.6. Campi di applicazione
11
Le previsioni atmosferiche, in cui si realizzano elaborazioni per la previ-
sione del tempo su domini quadridimensionali, tre dimensioni spaziali piu
una temporale. In una previsione sulle 24 ore un calcolatore Cray-1 impiegava 100 minuti per risolvere un problema discretizzato su una griglia
di circa 270 miglia di lato; se per una richiesta di maggior accuratezza
spaziale si riduceva la dimensione della cella della meta si incrementava
il numero delle operazioni di un fattore 16 e questo portava il tempo di
calcolo ben oltre le 24 ore.
Intelligenza articiale. In Giappone gli studi per lo sviluppo della prima
generazione di calcolatori con interfaccia uomo macchina di tipo intelligente, cioe capace di interazioni ad alto livello come la sintesi vocale,
uso di un linguaggio naturale e il riconoscimento visivo e vocale in tempo
reale, utilizzano codici che dovrebbero sostenere 1 milliardo di inferenze
logiche al secondo. Ogni inferenza e mediamente costituita da 100 a 1000
istruzioni macchina, questo porta alla richiesta di elaboratori capaci di
almeno 1Tera istruzioni al secondo (1Tips).
Sistemi di telerilevamento. L'analisi delle informazioni trasmesse dai
satelliti trova grandi applicazioni in vari campi come l'agricoltura, ecologia, geologia e pianicazione del territorio. La quantita di questi dati
pero implica che la loro elaborazione deve essere adata a sistemi di
supercalcolo capaci di alte prestazioni ed enormi disponibilita di memoria. Per esempio le immagini inviate dal satellite Landsat sono formate
da 8 parti, ciascuna rappresentante un data set di 6000x6000 pixel, ad
ogni pixel vengono associati 8 bit. Questo porta a 288MB la quantita di
memoria richiesta per una singola immagine che viene gestita ed elaborata da un sistema Massively Parallel Processor (MPP) della Goodyear
Aerospace installato presso la NASA.
Nell'ambito di tale tesi viene arontato un'altro campo di applicazione per il
quale i sistemi ad alte prestazioni si dimostrano insostituibili, la Fluidodinamica Computazionale (Computational Fluid Dynamics o CFD). Nel paragrafo
successivo riportiamo quindi alcune delle motivazioni per cui la CFD trova
nel super calcolo, in particolare nelle metodologie e architetture parallele, una
naturale risposta ai sui problemi.
12
1. Introduzione ai sistemi paralleli
1.7 Il Supercalcolo in Fluidodinamica Computazionale
L'incremento della velocita dei calcolatori, della capacita delle memorie e delle
possibilita oerte dai supporti per la visualizzazione e gestione delle immagini,
ha promosso le tecniche numeriche per l'analisi dei fenomeni termouidouidodinamici come una valida alternativa alla sperimentazione sul campo. Infatti, mentre il costo delle prove sperimentali, sia su modello che su prototipo,
e andato continuamente aumentando, sono nel contempo diminuiti i costi, a
parita di "carico computazionale", delle simulazioni CFD.
Inoltre, in moltissime circostanze, le prove sperimentali non sono possibili
(per esempio conseguenze a lungo termine dell'eetto serra, guasti gravi in
impianti chimici e nucleari), oppure possono venir eseguite su "modelli" che
riproducono la realta in modo molto parziale (es. solidicazione in regime di
non gravita, comportamento di organi del corpo umano). Le tecniche CFD,
nate originariamente nel settore areonautico, aereospaziale ed in quello delle
previsioni metereologiche, si sono poi aermate in numerosissimi altri campi
applicativi, quali l'industria automobilistica, navale, chimica e manifatturiera.
Recentemente le tecniche di CFD hanno fatto la loro comparsa anche in altre
discipline quale ad esempio la bioingegneria.
Un campo della CFD che ha tratto particolare giovamento dallo sviluppo
delle prestazioni delle macchine elaboratrici e quello della Simulazione di Turbolenza con metodi diretti (Direct Numerical Simulation o DNS), cioe senza
far uso di modelli stocastici per la rappresentazione dei fenomeni turbolenti,
oppure con tecniche LES - Large Eddy Simulation. In quest'ultimo caso vengono risolte le scale spaziali e temporali di tipo inerziale, mentre si ricorre ad
un semplice modello sub-grid per approssimare il comportamento delle scale
dissipative, in generale isotropico ed indipendente dalla geometria.
Per mostrare come in questo campo la presenza di adeguate risorse informatiche sia fondamentale citiamo alcune considerazioni esposte da Smits [3]
a proposito della simulazione diretta di turbolenza per uidi con numero di
Reynolds6 non troppo elevato. Con l'aumentare di questo parametro aumentano anche i fenomeni di vorticosita, le tecniche di DNS devono quindi utilizzare grigliature sempre piu ni, poiche, in termini semplicistici, le strutture
6 Il numero di Reynolds, Re, e un parametro di similitudine che, espresso come V L=, con
V ed L velocita e lunghezza caratteristica del fenomeno in esame e viscosita cinematica,
rappresenta il rapporto fra le forze d'inerzia e le forze viscose.
1.7. Il Supercalcolo in Fluidodinamica Computazionale
13
turbolente (vortici) diventano via via piu piccole. L'autore ci mostra quindi
come il numero di Reynolds agisce su due punti critici per gli elaboratori e
cioe la velocita di calcolo e la quantita di memoria disponibile e come le attuali
disponibilita tecnologiche limitino l'implementazione di problemi sempre piu
realistici:
1. La richiesta di CPU e proporzionale a Re3 e la quantita di memoria
richiesta cresce con Re9=4 . Visti questi dati e considerato il trend di
crescita tecnologico degli elaboratori, risulta che l'aumento di un fattore
10 del numero di Reynolds7 sarebbe possibile solo ogni 20 anni.
2. I piu comuni problemi di CFD sfruttano gia a pieno le potenze di calcolo
disponibili e generalmente si tratta di problemi che si rifanno a geometrie molto semplici e a uidi canonici. Grigliature piu complesse rappresentanti strutture esistenti in realta non possono essere ancora nemeno
utilizzate in LES a causa di un appesantimento (overhead) del calcolo
insostenibile.
3. La simulazione diretta di turbolenza necessita di potenti mezzi di postprocessing, i risultati ottenuti (data set) da un elaborazione numerica diretta
tridimensionale, come campi vettoriali delle velocita o campi scalari di
pressione e temperatura, richiedono decine di MWord per ogni istante di
tempo (time step). Oltre all'implementazione del codice di simulazione
si rendono pertanto necessari altri ausili informatici adatti alla manipolazione di una tale mole di dati.
Risulta chiaro come l'implementazione di codici CFD sempre piu aderenti alle
problematiche reali produca un esponenziale richiesta di Supercalcolo che storicamente sta trovando soddisfazione nelle capacita degli elaboratori vettoriali.
Oggi giorno invece questa tipologia di problemi ha trovato risposta nelle proposte di Calcolo Parallelo grazie anche al carattere di parallelismo intrinseco di
alcune applicazioni di CFD che vanno dalla "semplice" soluzione di equazioni
di Poisson (capitolo 6) alla soluzione diretta di fenomeni convettivi (capitolo
3). La sempre maggiore richiesta di prestazioni in questo caso non e limitata
dallo sviluppo di nuove risorse ma puo essere soddisfata aumentando il grado
7 Attualmente il limite di Re e inferiore a 104 , mentre la gran parte dei problemi realistici
e caratterizzata da valori di Re maggiori 106 , ed in certi casi (areonautica, navale) dell'ordine
di 108 o piu.
14
1. Introduzione ai sistemi paralleli
di parallelismo delle macchine gia esistenti, si puo ad esempio aumentare il numero dei nodi di un calcolatore massivamente parallelo (es. Cray-T3D) oppure
si possono formare "cluster" di elaboratori a basso parallelismo (es. SGI Power
Challenge).
Per comprendere quanto il calcolo parallelo sia importante per lo sviluppo
di problemi CFD e quale sia l'interesse in questo campo, possiamo citare la
Numerical Aerodynamic Simulation Systems Division (NAS), presso la NASA
Ames Research Center, uno dei centri piu avanzati per gli studi aereodinamici.
Il NAS ha aumentato la propria potenza di calcolo accostando ad un sistema
Cray C916 da 16 processori ben quattro sistemi massivamente paralleli, un
IBM SP-2 a 160 nodi, un INTEL PARAGON da 224 nodi, una TMC CM-5 da
128 nodi e un cluster di 16 SGI R8000. Al ne di testare le prestazioni delle
proprie macchine il NAS ha sviluppato un kernel di procedure CFD (the NAS
PARALLEL BENCHMARKS) che in breve tempo e diventato "de facto" uno
dei test standard piu importanti per tutti i sistemi di calcolo parallelo.
Capitolo 2
Il sistema Parallelo CRAY
T3D
2.1 Introduzione alla famiglia T3D
La Cray Research, presentando il sistema CRAY T3D nel 1993, ha varato un
progetto suddiviso in tre fasi che, partendo dall'attuale CRAY T3D portera
allo sviluppo prima del sistema CRAY T3E (1995/96) capace di 1Top/s di
picco e poi nel 1997 del sistema CRAY T3xx che sara capace di sostenere il
Top/s anche in produzione continuata.
Il T3D e un sistema massicciamente parallelo (Massively Parallel Processor)
che puo ospitare no a 2048 processori, chiamati anche nodi. Lo sviluppo
dell'ambiente di lavoro e stato particolarmente attento alla essibilita, tanto
che l'utente puo contare su diversi paradigmi di programmazione come il Data
Parallel, Work sharing ed il Message Passing.
Il sistema T3D non e un sistema stand-alone, cioe deve essere connesso ad
un altro sistema Cray che fa da host (si veda lo schema di collegamento in gura
2.1). Tutte le applicazioni per il T3D vengono compilate dal sistema host e
poi eseguite sul sistema MPP T3D. Tutte le operazioni di lettura o scrittura
sui sistemi di memorizzazione di massa sono gestite dal sistema host. I sistemi
Cray abilitati ad essere un host per il sistema MPP sono quelli dotati di un
sistema input/output di tipo IOS-E, cioe CRAY YMP/E, CRAY YMP M90 e
CRAY YMP C90.
15
16
2. Il sistema Parallelo CRAY T3D
Figura 2.1: Sistema host+T3D
2.2. Il nodo di calcolo
17
Figura 2.2: Architettura del nodo
2.2 Il nodo di calcolo
2.2.1 Topologia del nodo
Per nodo intendiamo l'unita di calcolo elementare di un sistema massicciamente
parallelo, ogni nodo comunica con gli altri attraverso la rete di interconnessione.
In realta ogni nodo del T3D, schematizzato in gura 2.2, contiene due unita
di elaborazione (processor element PE) indipendenti, quindi il numero di nodi
sici corrisponde alla meta di quelli logici. L'accesso al nodo e garantito da
un controller DMA (Direct Memory Access) asincrono, chiamato block transfer
engine BLT. Il BLT gestisce il usso d'informazioni per i due PE riesce a
distribuire no a 65536 Word senza che i PE debbano subire interruzioni.
2.2.2 Architettura del processore
L'unita di elaborazione e rappresentata dal microprocessore DEC APLHA
21064 con tecnologia RISC, della Digital Equipment Corporation con le seguenti
18
2. Il sistema Parallelo CRAY T3D
caratteristiche tecniche:
150 Mop/s di picco
clock da 6.67ns
superscalare (dual issue)
interi a 64 bit
oating point IEEE 64 bit
32 registri per gli interi
32 registri per i oating point
8KByte instruction cache (icache)
8KByte data cache (dcache)
unita funzionali: integer, FP, load, store, branch
Un sistema T3D puo contenere 32, 64, 128, 512, 1024 e 2048 PE come unita di
elaborazione, inoltre sono presenti dei processori preposti solo alle operazioni
di I/O ed alcuni PE ridondanti che vengono utilizzati in caso di guasto di quelli
primari. La memoria locale consiste in una DRAM (dynamic random access
memory) che puo contenere 2MWord o 8MWord. La memoria locale di un PE
va a far parte della, memoria globale del sistema, sicamente distribuita ma
logicamente condivisa. Il sistema si dice a memoria condivisa o shared perche
un processore puo interagire con la memoria di un'altro senza che quest'ultimo
se ne avveda. Per completezza riportiamo in gura 2.3 il diagramma funzionale
del processore e del nodo.
2.2. Il nodo di calcolo
Figura 2.3: Diagramma funzionale del processore e del nodo
19
20
2. Il sistema Parallelo CRAY T3D
Utilizzando questo processore la Cray ha dimostrato come anche una CPU
commerciale, progettata per altri scopi, puo essere adatta ad un sistema MPP.
Il Chip in ogni caso presenta, a mio avviso, anche degli inconvenienti, come ad
esempio:
La cache memory e troppo piccola per molte applicazioni.
La velocita della DRAM e insuciente.
Non esistono istruzioni che eseguono direttamente le conversioni da intero
a oating point e la radice quadrata.
Le operazioni di divisione e moltiplicazione intera non sono gestite in
modalita pipeline. Questo implica per una moltiplicazione intera necessiti
di 20 cicli di clock ed una divisione ben 64 cicli di clock.
2.3 Rete di interconnessione
La rete di interconnessione e preposta alle comunicazioni tra i PE, inoltre
collega il sistema ai dispositivi di I/O (gateway). La rete (network) forma
una matrice tridimensionale come si puo osservare in gura 2.4. Tra due nodi
contigui esiste quindi un canale di communicazione bidirezionale (link) gestito
da un network router come si puo notare in gura 2.5. Il canale prevede il
passaggio di dati, segnali di controllo e di riconoscimento (gura 2.6).
I dati vengono inviati sotto forma di pacchetti a 16 bit ed ogni pacchetto
si compone di 2 parti:
header (indirizzo, informazioni di routing)
body (dati eettivi)
Il body a sua volta puo presentare due tipi di informazione, identicate da
opportune linee di controllo :
Richiesta: il body contiene informazioni utili anche il nodo destinatario inizi
un operazione ( ad esempio il PE0 vuole leggere un dato nella memoria
remota del PE16).
2.3. Rete di interconnessione
21
Figura 2.4: Schema semplicato di una rete di interconnessione tridimensionale
Risposta: , il body contiene delle informazioni su un'operazione eseguita dal
nodo mittente (ad esempio, il PE16 risponde al nodo PE0 ponendo nel
body il dato richiesto).
Le Risposte e le Richieste sono dati logicamente dierenti quindi anche sicamente sono stati implementati 2 buer dierenti.
22
2. Il sistema Parallelo CRAY T3D
Figura 2.5: Schema del nodo connesso alla rete tramite il network router
Figura 2.6: Segnali che percorrono la rete di interconnessione
2.3. Rete di interconnessione
23
2.3.1 Connessione a topologia toroidale
Il collegamento tra i nodi utilizzato sul T3D non e solo di tipo reticolare tridimensionale ma prevede anche una serie di collegamenti tra il primo e l'ultimo
nodo per ogni direzione spaziale, realizzando cos una topologia toroidale. In
gura 2.7 vediamo un esempio di network a toro monodimensionale . Le in-
Figura 2.7: Network toroidale monodimensionale
formazioni possono muoversi dal nodo 00, attraverso gli altri nodi, per poi
ritornare sul mittente compiendo un'operazione ciclica. Le reti toroidali offrono una serie di vantaggi per le comunicazioni, ad esempio il nodo 00 puo
comunicare con il nodo 07 senza passare per gli altri sfruttando la distanza
minore. Se si verica un guasto nella linea l'informazione puo giungere ugualmente a destinazione percorrendo un altro tragitto. In gura 2.8 e 2.9 sono
presentate le topologie a toro bidimensionale e tridimensionale, quest'ultima e
quella implementata sul T3D.
Figura 2.8: Network toroidale bidimensionale
24
2. Il sistema Parallelo CRAY T3D
Figura 2.9: Network toroidale tridimensionale
L'algoritmo di routing del T3D, che permette di raggiungere un dato nodo
all'interno del toro tridimensionale, e memorizzato sotto forma di una tabella di
look-up nel network router di ogni nodo (gura 2.3). L'indirizzo logico del nodo
destinatario (ad esempio PE 16) viene tradotto in una successione ordinata di
spostamenti relativi nelle tre direzioni spaziali.
Possiamo osservare un esempio di connessione tra due nodi nella gura 2.10,
dove l'informazione viaggia dal nodo A attraverso altri nodi raggiungendo il
nodo B. In questo caso la tabella di look-up del nodo A fornisce in uscita gli
spostamenti X = 1, Y = 1 e Z = 1. Nel caso di un guasto nel sistema
di interconnessione la tabella di look-up fornisce un percorso alternativo che
permetta di raggiungere lo stesso il nodo.
2.3. Rete di interconnessione
25
Figura 2.10: Esempio di routing tra due nodi
Nella gura 2.11 il network router per poter raggiungere il nodo B, deve eseguire
gli spostamenti X = 1, Y = ,2 e Z = 1.
Vista l'importanza del sistema di interconnessione nei sistemi MPP, la Cray
ha posto grande attenzione nel progetto della rete portando la velocita di
trasmissione (Bandwidth o data rate) a 300MB/s, valore nettamente superiore a quello delle altre macchine MPP attualmente presenti sul mercato.
26
2. Il sistema Parallelo CRAY T3D
Figura 2.11: Esempio di routing alternativo tra due nodi a causa di un guasto
sulla linea
2.3. Rete di interconnessione
27
Figura 2.12: Nodo preposto alle comunicazioni con l'host (I/O Gateway)
2.3.2 I/O Gateways
Come si osserva in gura 2.1 oltre ai nodi di calcolo esistono anche alcuni nodi
dedicati alle operazioni di I/O tra il T3D ed l'elaboratore che gli fa da host. In
gura 2.12 si puo notare la struttura di questi nodi ed in particolare il sistema
di comunicazione tra i 2 elaboratori.
Il sistema costituito da due canali di trasmissione ad alta velocita si compone:
HISP, canale per trasmissione dati, capace di 200MB/s.
LOSP, canale per le comunicazioni di controllo con velocita di 6MB/s.
28
2. Il sistema Parallelo CRAY T3D
2.4 Ambiente di programmazione del T3D
Figura 2.13: Modello di programmazione CRAFT
La Cray Research ha cercato di riunire sotto un solo ambiente, il CRAFT
(Cray Research Adaptive ForTran Programming Model), una serie di paradigmi
di programmazione cercando di creare un eciente e standard tool di applicazioni, che possa essere anche una base per le future architetture. Nel modello CRAFT sono conuite le conoscenze del Fortran 77, Fortran 90, HPF,
Fortran D e PVM ed in piu sono stati svilupati alcuni nuovi paradigmi, come
2.4. Ambiente di programmazione del T3D
29
il Data Parallel e Work sharing, dedicati esclusivamente alle architetture di
tipo Shared Memory. Lo schema dell'ambiente CRAFT puo essere osservato
in gura 2.13 dove si vede la collocazione delle varie metodologie di programmazione in funzione della piu o meno esplicita gestione del parallelismo.
Analizziamo ora brevemente i diversi paradigmi denendone le varie peculiarita.
2.4.1 Paradigma Message Passing
Si tratta di un modello che viene utilizzato su architetture di tipo Private
Memory, quindi anche il Cray T3D puo venire utilizzato in questa modalita
ed in tal caso le risorse sono private per ciascun nodo. Ogni elemento di
calcolo esegue un processo indipendente dagli altri (spazio degli indirizzi logici
disgiunti) e le comunicazioni avvengono attraverso uno scambio di messaggi. Il
sistema di comunicazione fra due processi consente fondamentalmente due tipi
di operazioni:
send, invio di messaggio.
receive, ricezione di messaggio.
Anche ci sia una communicazione tra due PE bisogna attivare il canale tra
loro utilizzando queste due primitive. Le modalita di attivazione del canale
sono molteplici, possiamo quindi darne una semplice descrizione.
- Comunicazione diretta, ogni processo che intende inviare o ricevere un
messaggio deve nominare esplicitamente il nodo ricevente o trasmittente.
send(p1, messaggio), invia messaggio a p1.
receive(p2, messaggio), riceve messaggio da p2.
- Comunicazione indiretta, i processi utilizzano dei buer o mailbox comuni a piu nodi.
send(A, messaggio) invia il messaggio alla mailbox A.
receive(A, messaggio) leggi il messaggio nella mailbox A.
30
2. Il sistema Parallelo CRAY T3D
- Comunicazione asimmetrica, il mittente nomina esplicitamente il desti-
natario, il destinatario invece non indica il nome del processo con cui
vuole comunicare. Si tratta di uno schema adatto a comunicazioni del
tipo da molti a uno, da uno a molti, da molti a molti.
send(p, messaggio), invio di messaggio al processo P.
receive(all, messaggio), riceve messaggio da un PE qualsiasi.
Oltre alla tipologia della comunicazione tra due nodi bisogna denire anche
una sincronizzazione anche la trasmissione abbia luogo. Nel modello Message
Passing troviamo la seguente classicazione per la temporizzazione:
- send asincrono, il processo mittente e completamente asincrono, dopo aver
inviato il messaggio continua immediatamente la sua esecuzione. Di conseguenza lo stato attuale del mittente non puo essere identicato dal
ricevente.
- send sincrono, il mittente si blocca ed attende no a che il messaggio non
viene ricevuto. In questo caso il ricevente sa esattamente in che stato si
trova il mittente.
- receive bloccante, il processo ricevente si blocca no a che sul canale da
cui vuole ricevere non viene inviato un messaggio. Il mittente conosce lo
stato del ricevente.
- receive non bloccante, il ricevente verica lo stato del canale, se c'e un
dato lo preleva altrimenti procede nell'esecuzione. Il mittente non puo
conoscere in che stato si trova il ricevente.
Queste primitive fanno parte di qualsiasi compilatore che preveda l'implementazione
di un paradigma di programmazione parallela basato sul Message Passing esplicito. Bisogna anche dire che essendo stato questo il primo approccio al
calcolo parallelo si sono gia da tempo imposti degli standard, non uciali, ma
utilizzati dalla grande maggioranza dei produttori di software. Uno di questi e
certamente il PVM (Parallel Virtual Machine), del quale la Cray ha implementato su T3D la versione proposta dalla Oak Ridge Nat. Laboratory di
Emory University, University of Tennessee [4]. La libreria di PVM presentata
dalla Cray prevede:
2.4. Ambiente di programmazione del T3D
31
Funzioni richiamabili da Fortran, C, C++ che provvedono a:
{ Controllo e gestione dei Task.
{ Sincronizzazione dei processi.
{ Trasmissione e ricezione dati.
{ Gestione dei buer.
{ Conversione automatica di tipo.
{ Costrutti di comunicazione ad alto livello come broadcast, barrier,
rendez-vous.
Tre diverse versioni per i sistemi Cray:
{ Versione per T3D ottimizzata per sistemi omogenei massicciamente
paralleli.
{ Versione per reti eterogenee (T3D$C90, C90$C90,
C90$Workstation).
{ Versione per emulatore del T3D.
Serie di funzioni per poter operare insieme agli altri paradigmi implementati sul T3D.
Il PVM, essendo stato il primo serio apporto fornito per la programmazione
parallela, risente oramai del passare del tempo. Inizialmente scritto per sistemi
a basso parallelismo, il PVM, presenta seri problemi di gestione quando viene
utilizzato su sistemi da centinaia o migliaia di nodi. Le comunicazioni tra processori, che costituiscono la parte piu signicativa in un sistema massicciamente
parallelo, possono risultare in questo caso appesantite in modo insostenibile.
Inoltre trattandosi di un modello esplicito di comunicazione (cioe si comunica
solo quando e come lo stabilisce il programmatore) l'errore dovuto alla componente umana non e assolutamente da trascurarsi. Un altro fattore che ha
reso obsoleto il PVM e l'oggettiva dicolta della trattazione di data-set molto
grandi. Il Message Passing e dedicato ad architetture Private Memory quindi
risulta chiaro che ad esempio una matrice molto grande va suddivisa in sottosistemi e distribuita ai vari PE quindi oltre all'algoritmo normale bisogna
anche pensare all'overhead introdotto dalla gestione di queste strutture.
32
2. Il sistema Parallelo CRAY T3D
A favore del PVM si puo in ogni caso dire che per ora esso e l'unico standard
presente (o per lo meno lo diventera con il MPI Message Passing Initiative).
Quindi risulta uno strumento insostituibile per quanto riguarda il porting di
sorgenti su diverse piattaforme. Inoltre rimane ancora validissimo per le applicazioni di calcolo parallelo su sistemi eterogenei. Al ne di rendere piu essibile
l'uso del PVM sono state aggiunte nel CRAFT due funzioni che si possono pensare collocate a meta strada tra la comunicazione esplicita con dati privati e la
comunicazione implicita con dati condivisi (it Work Sharing e Data Parallel).
shmem get (target, source, Pe), si trasferisce il contenuto della variabile
source del nodo Pe nella variabile target senza interferire con il suo normale funzionamento.
shmem put (target, source, Pe), si scrive nella variabile target del nodo Pe
il contenuto della variabile source.
Si puo osservare che in questa modalita di funzionamento non viene richiesta
l'attivazione del canale tra i due nodi che si scambiano informazioni, questo
potrebbe portare a degli errori nel caso di letture non sincronizzate pero aumenta notevolmente la velocita delle comunicazioni.
2.4. Ambiente di programmazione del T3D
33
2.4.2 Modelli impliciti di programmazione parallela
L'aumento del grado di parallelsimo delle nuove architetture e di conseguenza
dell'importanza delle comunicazioni tra i nodi ha creato l'esigenza di un modello secondo il quale l'utente non debba piu gestire esplicitamente gli scambi
di informazioni. Nasce cos il modello MPP [5] per il T3D che e costituito
fondamentalmente da due parti:
Data Parallel, si tratta di un insieme di primitive che permette la distribuzione
e gestione di variabili attraverso i processori (Shared Data), e la gestione
di variabili private o locali a particolari nodi (Private Data).
Work Sharing, rappresenta le primitive introdotte per la distribuzione, gestione e sincronizzazione dei carichi di lavoro (task) sui processori.
Riferendosi a questi modelli si utilizza l'aggettivo implicito perche all'utente,
che vede la memoria come un tutt'uno, risulta del tutto trasparente il lavoro
eseguito dal compilatore MPP, che si accolla l'onere di gestire le memorie locali
ad ogni processore.
2.4.3 Paradigma Data Parallel
Le primitive del Data Parallel fondamentalmente possono essere riassunte in
due istruzioni o direttive1 per il compilatore MPP:
CDIR$ SHARED var1, var2, .. , varN
Le variabili utilizzate come argomento della direttiva vengono distribuite
omogeneamente a tutti i processori disponibili. Se un nodo modica il
valore di una variabile questo sara visibile a tutti gli altri.
CDIR$ PRIVATE var1, var2, .. ,varN
Le variabili, argomento di questa direttiva, invece vengono replicate su
ogni processore. Qualsiasi operazione eseguita su una variabile di questo
tipo rimane circoscritta al nodo che l'ha eseguita, gli altri continuano a
vedere la loro copia locale immutata.
1 Si usa la dicitura direttiva al compilatore per indicare un istruzione che viene inserita
nel testo sorgente, Fortran nel caso del MPP Cray, ma che verra interpretata solo in fase di
compilazione. Per distinguere una direttiva MPP dal resto del testo questa va fatta precedere
dalla stringa CDIR$.
34
2. Il sistema Parallelo CRAY T3D
Il meccanismo di distribuzione dei dati puo essere variato utilizzando il construtto :BLOCK(N), dove N rappresenta la dimensione di un blocco di elementi contigui che deve risiedere sullo stesso PE. Vediamo quindi alcuni semplici esempi di distribuzione di un array su 4 processori.
REAL A(16)
CDIR$ SHARED A(:BLOCK(2))
la distribuzione in cui l'array viene scomposto in blocchi da due elementi e la
seguente:
PE0 PE1 PE2 PE3
A(1)
A(2)
A(3)
A(4)
A(5)
A(6)
A(7)
A(8)
A(9) A(11) A(13) A(15)
A(10) A(12) A(14) A(16)
Se non si specica la grandezza del blocco il sistema lo determina autonomamente dividendo il numero degli elementi dell'array per i PE disponibili.
REAL A(16)
CDIR$ SHARED A(:BLOCK)
la distribuzione in cui l'array viene scomposto risulta essere costituita da blocchi di quattro elementi:
2.4. Ambiente di programmazione del T3D
35
PE0 PE1 PE2 PE3
A(1)
A(2)
A(3)
A(4)
A(5) A(9) A(13)
A(6) A(10) A(14)
A(7) A(11) A(15)
A(8) A(12) A(16)
Per alcune applicazioni e interessante poter disporre di una distribuzione non
omogenea su tutti i PE, si ricorre quindi ad una distribuzione detta degenere.
Questa puo essere ottenuta omettendo la primitiva BLOCK nella dichiarazione
delle variabili shared.
REAL A(16)
CDIR$ SHARED A(:)
la distribuzione in cui l'array viene scomposto risulta essere la seguente:
PE0 PE1 PE2 PE3
A(1)
A(2)
A(3)
A(4)
..
.
A(16)
In quest ultimo caso tutto l'array risulata memorizzato su PE0, pero rimane
sempre shared e tutti gli altri processori possono leggerne o variarne il contenuto.
Il meccanismo distributivo per gli array multidimensionali segue quello appena visto per i vettori monodimensionali, anche se il maggior numero di gradi
di liberta porta ad un notevole appesantimento nella trattazione, quindi per
36
2. Il sistema Parallelo CRAY T3D
un maggiore comprensione sara opportuno riferirsi ai manuali della CRAY.
2.4.4 Paradigma Work Sharing
Dopo aver visto come si possono rendere condivise o locali le variabili sul sistema MPP introduciamo ora il modello Work Sharing che, all'interno dell'ambiente
CRAFT, svolge i compiti di distribuzione, sincronizzazione e gestione dei processi. Un programma compilato per il T3D viene contemporaneamente caricato
ed eseguito su ogni PE, viene cioe creato un task su ogni nodo. L'utente puo
intervenire sull'escuzione dei task utilizzando alcune primitive che descriviamo
ora brevemente utilizzando alcuni esempi semplicativi.
MASTER
Permette l'esecuzione solo su un PE, per la precisione quello indicato
logicamente come PE0, tutti gli altri processi si fermano.
END MASTER [,COPY (var1,....)]
Si trova alla ne di un blocco MASTER, fa ripartire i task su tutti i
processori dall'istruzione seguente questa direttiva. Bisogna porre molta
attenzione sul fatto che tutte le istruzioni, comprese tra queste due direttive, sono eseguite solo dal processo master (quello residente su PE0).
Per gli altri queste istruzioni non esistono!
L'opzione COPY permette di distribuire agli altri processori, che si sono
fermati, eventuali variabili locali che il master vuole far conoscere. Si
esegue un cosidetta operazione di broadcast.
REAL X, A(1024)
CDIR$ SHARED A(:BLOCK)
CDIR$ MASTER
READ(5) A,X
CDIR$ END MASTER, COPY X
Questo esempio rappresenta un classico utilizzo della direttiva MASTER, come
si puo osservare un solo processore esegue l'operazione di I/O. La variabile A
essendo shared viene vista da tutti i processori, la X invece e locale e per farla
2.4. Ambiente di programmazione del T3D
37
conoscere agli altri processi bisogna specicarlo esplicitamente con l'opzione
COPY.
CRITICAL
Identica un blocco d'istruzioni particolarmente delicato che deve essere
percorso da tutti i processi pero non contemporaneamente.
END CRITICAL
Fine della zona critica le istruzioni successive vengono eseguite di nuovo
in modalita concorrente.
REAL SUM , X
CDIR$ SHARED SUM
CDIR$ CRITICAL
SUM=SUM+X
CDIR$ END CRITICAL
In questo esempio si vuole ottenere la somma di tutte le variabili locali X.
Se non ci fosse la zona critica ogni processore eseguirebbe contemporaneamente l'operazione sulla variabile SUM che e comune a tutti con il risultato di
sovrascritture errate.
BARRIER
Si tratta della direttiva primaria per quanto riguarda la sincronizzazione
dei processi. Quando un processo incontra questa direttiva si ferma ed
attende l'arrivo di tutti gli altri e solo quando tutti hanno raggiunto
questo punto essi ripartono insieme. Si tratta di una direttiva molto
critica per due ragioni: puo rallentare di molto il programma e se un
processo non giunge alla barriera gli altri rimangono bloccati (si entra in
un live lock).
Bisogna ricordare anche che esistono dei punti di sincronizzazione impliciti
come:
Prima di una regione MASTER
38
2. Il sistema Parallelo CRAY T3D
Alla ne di un ciclo distribuito (DOSHARED)
All'inizio ed alla ne di subroutine
Le barriere implicite possono essere eliminate usando l'istruzione NOBARRIER. Attenzione peroo questa operazione velocizza l'esecuzione ma puo essere causa di errore!
Presentiamo ora il construtto piu importante per la suddivisione dei lavori
e cioe :
DOSHARED
Con questa istruzione si distribuiscono i cicli di un loop attraverso i PE.
Ogni iterazione viene associata ad un processore dierente, cos che alla
ne del ciclo ogni PE ha processato un sottoinsieme dello spazio delle
iterazioni.
La sintassi di un DOSHARED e la seguente:
CDIR$ DOSHARED (I1,I2,... ,In) ON array-ref
DO I1 = L1, U1, S1
DO I2 = L2, U2, S2
...
DO In = Ln, Un, Sn
...
END DO
...
END DO
END DO
Il ciclo deve essere strettamente nidicato ed inoltre I1,I2,... ,In devono comparire nell'ordine esatto di nidicazione. Vediamo ora un esempio per cercare
di capire la legge di distribuzione delle iterazioni.
REAL X(0:63), Y(0:63)
CDIR$ SHARED X(:BLOCK), Y(:BLOCK)
CDIR$ DOSHARED (I) ON X(I)
DO I = 0, 63
Y(I) = X(I) + Y(I)
END DO
2.4. Ambiente di programmazione del T3D
39
La variabile X e distribuita omogeneamente su 64 processori, quindi un elemento per processore. Ogni iterazione viene adata al PE sul quale si trova
X(I), il PE0 sul quale e presente X(0) esegue l'iterazione per I=0, il PE1 sul
quale e presente X(1) esegue l'iterazione per I=1 e cos di seguito per ogni PE.
Il tempo totale di esecuzione del ciclo si e quindi ridotto ad 1=64. Bisogna
porre molta attenzione su come viene distribuito l'array Y:
Se Y ha la medesima distribuzione di X l'operazione di somma viene ese-
guita su entita locali ad ogni PE quindi non esiste nessuna comunicazione
tra nodi.
Se Y e distribuita diversamente bisogna attendere che l'elemento Y(I)
venga letto da un PE remoto, si esegua localmente la somma con X(I) e
che si riscriva il nuovo valore di Y(I) nel PE remoto. Questo puo portare
ad un rapido decadimento delle prestazioni.
Presentiamo ora un esempio in cui si mostra come una programma sequenziale possa essere minimamente modicato con i construtti di Work Sharing e
Data Parallel ottenendo pero un incremento delle prestazioni straordinario. Il
programma risolve un classico prodotto fra matrici :
SUBROUTINE MATMUL(A, B, C, L, M, N)
DIMENSION A(L,M), B(M,N), C(L,N)
DO K=1,N
DO I=1,L
DO J=1,M
C(I,K) = C(I,K) + A(I,J) * B(J,K)
ENDDO
ENDDO
ENDDO
END
L'utente che vuole implementare questo codice su una macchina MPP utilizzando un paradigma implicito non deve far altro che stabilire la disposizione
degli array attraverso i PE e distribuire le iterazioni dei cicli nidicati, ottenendo cos il seguente risultato:
SUBROUTINE MATMUL(A, B, C, L, M, N)
40
2. Il sistema Parallelo CRAY T3D
DIMENSION A(L,M), B(M,N), C(L,N)
CDIR$ SHARED A(:BLOCK,:),B(:,:BLOCK),C(:BLOCK,:BLOCK)
CDIR$ DOSHARED (K,I) ON C(I,K)
DO K=1,N
DO I=1,L
C **** QUESTO CICLO NON VIENE DISTRIBUITO ****
DO J=1,M
C(I,K) = C(I,K) + A(I,J) * B(J,K)
ENDDO
C ***********************************************************
ENDDO
ENDDO
END
Si e cercato una distribuzione che garantisca il maggior numero di dati locali
su ogni processore che esegue le iterazioni. Si noti come ogni PE, gestendo per
intero il ciclo piu interno (indice j), si trovi ad operare con tutta la parte delle
matrici identicata dallo stesso indice j, cioe la riga j-esima di B e la colonna
j-esima di A. Si e scelta una distribuzione degenere per la matrice A secondo le
colonne e per B invece degenere secondo righe. Questo fa si che il ciclo interno
lavori sempre con dati che si trovano contemporaneamente sullo stesso PE.
Nel descrivere le opportunita oerte dal CRAFT non possiamo dimenticare
le funzioni intrinseche introdotte dal MPP e quelle gia presenti nel Fortran 90
che sono state modicate per l'utilizzo di dati distribuiti come ad esempio:
FUNZIONI INTRINSECHE DEL MODELLO MPP
RESULT
RESULT
RESULT
RESULT
RESULT
RESULT
=
=
=
=
=
=
SUM(ARRAY,DIM,MASK)
PRODUCT(ARRAY,DIM,MASK)
MINVAL(ARRAY,DIM,MASK)
MAXVAL(ARRAY,DIM,MASK)
MINLOC(ARRAY,MASK)
MAXLOC(ARRAY,MASK)
Parallel Prefix Functions
2.4. Ambiente di programmazione del T3D
RESULT
RESULT
RESULT
RESULT
=
=
=
=
PRESUM(ARRAY,DIM,MASK)
PREPROD(ARRAY,DIM,MASK)
PREMIN(ARRAY,DIM,MASK)
PREMAX(ARRAY,DIM,MASK)
Segmented Scan Functions
RESULT
RESULT
RESULT
RESULT
=
=
=
=
SCANSUM(ARRAY,STOP,DIM,MASK)
SCANPROD(ARRAY,STOP,DIM,MASK)
SCANMIN(ARRAY,STOP,DIM,MASK)
SCANMAX(ARRAY,STOP,DIM,MASK)
Data Mapping Functions
CT
LOW
HIGH
HOME
PES
= BLKCT(A,D,P)
= LOWIDX(A,D,P,K)
= HIIDX(A,D,P,K)
= HOME(X)
= PES(A,D)
Query Functions
RESULT
= IN_PARALLEL()
RESULT = IN_DOSHARED()
RESULT = IS_SHARED(A)
Data Access Routines
CALL READ_UNKNOWN(V,A(I))
CALL WRITE_UNKNOWN (A(I),V)
Task Identity Function
RESULT = MY_PE()
Shared Pointer Routines
41
42
2. Il sistema Parallelo CRAY T3D
CALL
CALL
CALL
CALL
SHLOC (ptr, ary)
SHMALLOC (ptr, allocation_status)
SHMALLOC (ptr, allocation_status, length)
SHFREE (ptr)
FUNZIONI INTRINSECHE DEL FORTRAN 90
1. ALL
2. ANY
3. COUNT
4. CSHIFT
5. DOT_PRODUCT
6. EOSHIFT
7. MATMUL
8. MAXLOC
9. MAXVAL
10. MERGE
11.
12.
13.
14.
15.
16.
17.
18.
19.
MINLOC
MINVAL
PACK
PRODUCT
RESHAPE
SPREAD
SUM
TRANSPOSE
UNPACK
2.5 Osservazioni
In questo capitolo si e voluta dare un panoramica su alcune delle possibilita
oerte da un sistema come il Cray T3D e dal suo ambiente di sviluppo CRAFT.
La capacita di sfruttare al meglio queste potenzialita rimane pero un problema
di non facile soluzione. Infatti, nei problemi applicativi, le variabili in gioco
sono molte e non ben denite, come ad esempio:
La distribuzione dei dati. E meglio utilizzare dati globali o privati? Distribuiti uniformemente o no?
Il numero di processori. Si puo puntare su un sistema massicciamente parallelo o questo non e strettamente necessario?
La scelta dell'algorimo piu adatto. Quali sono i fattori che possono inuenzare una determinata scelta, il numero di operazioni da eseguire, la
2.5. Osservazioni
43
memoria richiesta, la percentuale di lavoro che si puo parallelizzare, la
quantita di communicazioni, la scalabilita, la portabilita?
La distribuzione dei task. E meglio puntare su macro task che svolgono
compiti anche impegnativi o piuttosto distribuire il lavoro in modo atomico puntando sul parallelismo estremo?
Il programmatore non puo aspettarsi neanche grande aiuto nel software esistente; ci troviamo appena nella fase iniziale dello sviluppo di queste metodologie, in cui non esiste praticamente nulla di standardizzato e consolidato. E
peraltro importante notare che l'elevato tasso di mortalita di aziende, la cui
unica linea di produzione era costituita da calcolatori paralleli, e imputabile,
a mio avviso, ad una scarsa penetrazione di tali macchine proprio nei settori
applicativi per i quali il calcolo intensivo rappresenta una risorsa insostituibile. L'utilizzazione pratica di tali elaboratori e stata senza dubbio frenata
da un strategia di mercato che ha privilegiato dei settori di nicchia come puo
essere l'informatica di base ma ha fornito pochissimi strumenti, specialmente
software, utilizzabili nelle applicazioni reali.
La CRAY quindi, in concorrenza con altri nomi famosi quali IBM, Silicon
Graphics etc., si sta muovendo in questa direzione proponendo nuove versioni
delle sue applicazioni che sono destinate a diventare, senza dubbio, un punto
di riferimento per lo sviluppo delle metodologie parallele.
Le istruzioni e le direttive, presentate nell'ambito di questa tesi, rappresentano quindi solo una minuscola pare di quelle eettivamente esistenti, servono
pero ad aiutare l'utente nella scelta piu adatta. Una completa risposta alle
piu diverse esigenze puo essere indubbiamente ottenuta consultando i manuali
della CRAY RESEARCH INC. come:
CF77 Fortran Language Reference Manual (SR-3772)
MPP Fortran Reference Manual (SR-2504)
CF77 Compiling System, Volume 4: Parallel Processing Guide (SR-307)
PVM Message-Passing Library Interface
EMU T3D Emulator User's Guide
Intoduzione alla Programmazione Parallela su Cray T3D[6], Cineca
44
2. Il sistema Parallelo CRAY T3D
Inoltre possono essere consultate le guide on-line dei sistemi Cray come man
ed docview per l'utilizzo di tutti i tool come Apprentice, Xbrowse e TotalView.
Ricordiamo inne la disponibilita del seguente nodo INTERNET Web :
<http://www.cray.com>
dove sono disponibili, on-line, informazioni, aggiornamenti e notizie utili su
tutti i sistemi Cray. Da tale nodo sono stati prelevati gli schemi riportati in
questo capitolo.
Capitolo 3
Il fenomeno della convezione
3.1 Introduzione
Fra le modalita di scambio termico (trasmissione del calore), quella detta per
convezione e dovuta a due meccanismi: oltre al trasferimento di energia termica
associata ai moti di agitazione delle molecole, detto conduzione termica, vi e il
trasporto di calore dovuto al moto macroscopico medio (bulk) del uido.
Infatti, in presenza di gradienti di temperatura, tale moto del uido da
luogo a scambi termici e poiche la trasmissione del calore per convezione e
intimamente legata al moto macroscopico del uido, lo studio di tale modalita
di scambio termico comporta l'utilizzo delle conoscenze e della metodologie
proprie della uidodinamica.
I problemi che riguardano la convezione possono essere distinti in tre classi,
in relazione all'origine del moto del uido.
Se il uido e in movimento rispetto alla supercie del corpo con velocita
imposta da un propulsore ed e indipendente dalla temperatura del corpo la
convezione e chiamata forzata.
Quando il movimento del uido e provocato unicamente da gradienti locali
di densita, indotti da dierenze di temperatura nel uido, la convezione e
naturale o libera.
Si parla di convezione mista quando gli eetti dovuti al moto e alle spinte di
galleggiamento sono comparabili e, quindi, non e lecito trascurare un processo
rispetto all' altro.
Al ne di determinare il tipo di problema convettivo, e percio, importante
45
46
3. Il fenomeno della convezione
individuare i contributi relativi ai due meccanismi; a questo riguardo risulta
molto utile introdurre il rapporto tra le forze di galleggiamento e le forze inerziali, che puo essere assunto come criterio di analisi di un fenomeno convettivo generico. Tale rapporto e comunemente espresso in funzione di due
gruppi adimensionali, chiamati numero di Reynolds, Re, e numero di Grashof,
Gr. Sebbene le loro espressioni, per i problemi arontati, veranno precisate nel
seguito, essi vanno cos interpretati:
d'inerzia ; Gr = Forze di galleggiamento
Re = Forze
Forze viscose
Forze viscose
Per individuare i diversi regimi di scambio termico, si adatta quindi la seguente
classicazione:
,
Gr=Re2 >> 1 convezione naturale prevalente
,
Gr=Re2 ' 1 convezione mista
,
Gr=Re2 << 1 convezione forzata prevalente
Riguardo la trasmissione del calore, gli eetti della sovrapposizione del galleggiamento e del usso forzato dipendono dalla direzione relativa tra forze
di galleggiamento e direzione del usso. Si suole distinguere tre casi: stessa
direzione (assisting ow), direzione opposta (opposing ow) e direzione perpendicolare (transverse ow). Un usso forzato verso il basso, ovvero verso
l'alto, che lambisce un piano verticale riscaldato, sono esempi rispettivamente
di opposing ow e di assisting ow.
E importante sottolineare che il trasporto di calore in presenza di convezione mista e molto diverso dai casi di sola convezione naturale o convezione
forzata. Per esempio, nel caso di un piano verticale riscaldato, nell' ipotesi di
assisting ow, if usso termico e quindi il relativo coeciente di scambio termico convettivo, ha un valore anche cinque volte superiore al corrispondente
usso termico in convezione forzata; nell' ipotesi di opposing ow, invece, si ha
una riduzione del coeciente convettivo associato alla convezione mista.
La caratteristica piu importante della convezione mista, in condotti orizzontali, e dovuta all'insorgere di instabilita non-stazionarie di Rayleigh-Benard, rappresentate da moti secondari di diversa natura e complessita. Questi
possono manifestarsi, a seconda delle condizioni termosiche, come vortici
longitudinali stazionari - allineati cioe con la direzione principale del moto,
come onde trasversali non stazionarie o come una loro combinazione nonlineare. All'aumentare del valore di Gr, a parita di Re, il moto puo evolvere da
3.1. Introduzione
47
stazionario in periodico, deterministico aperiodico ed inne caotico/turbolento
[7].
Questi vortici (celle di convezione) sono dovuti alle forze di galleggiamento
generate dalle variazioni della temperatura nel uido, ed hanno la caratteristica di incrementare in modo signicativo lo scambio termico relativo alla
convezione forzata. Altri parametri che inuenzano il fenomeno sono: regime
di moto (laminare o turbolento), usso con direzione principale verso l'alto o
verso il basso, geometria, inclinazione del condotto e condizioni al contorno.
Nel caso di un canale in cui la temperatura delle pareti venga mantenuta
uniforme, la temperatura del uido tendera asintoticamente verso la temperatura delle pareti, riducendo di conseguenza l'eetto del galleggiamento
e quindi i moti secondari ridurranno la loro intensita, sino a scomparire del
tutto per le sezioni lontane dalla regione di ingresso.
In convezione mista, altri due aspetti recitano un ruolo importante. Essi
sono il rapporto tra la lungezza lx e la larghezza ly del condotto e l'eventuale
presenza di un tratto iniziale non riscaldato, in cui il uido abbia la possibilita
di raggiungere il completo sviluppo idrodinamico e iniziare quindi il tratto di
sviluppo termico con il prolo di velocita parabolico. Quest'ultimo aspetto e
molto importante per numeri di Reynolds Re bassi, mentre lo e di meno se
consideriamo fuidi con elevato numero di Prandtl Pr.
Le conoscenze no ad ora acquisite nel campo della convezione mista in
canali orizzontali o variamente inclinati, sono alquanto limitate e frammentarie, ottenute perloppiu attraverso misure sperimentali, mirate soprattutto ad
ottenere correlazioni di scambio termico. Tuttavia, aspetti quali stabilita del
moto, stazionarieta, i meccanismi di transizione laminare-turbolenta, rimangono ancora, in buona parte, sconosciuti. Gli studi nora eseguiti a tal ne,
per via sperimentale o per via numerica, denotano una notevole discordanza,
attribuibile, a mio avviso, alle dicolta associate alla sperimentazione in condizioni controllate, ed alle notevolissime risorse di calcolo necessarie qualora il
problema venga arontato a mezzo di completi modelli numerici tridimensionali.
Parte dell'attivita svolta durante questa tesi e stata nalizzata alla messa
a punto di modelli numerici accurati ed ecienti, che consentono di migliorare
le conoscenze della termouidodinamica nei problemi di convezione mista.
48
3. Il fenomeno della convezione
3.2 Formulazione matematica
Il fenomeno della convezione mista viene descritto da un sistema di equazioni
composto da:
Equazione di continuita
Equazione della quantita di moto
Equazione dell' energia
Queste equazioni descrivono il comportamento e l'evoluzione delle componenti
di velocita u e delle proprieta termodinamiche: pressione P , densita e temperatura T in funzione del tempo e delle coordinate spaziali. Tale sistema di
equazioni e comunemente detto equazioni di Navier-Stokes.
In riferimento agli obiettivi di questa tesi, e lecito introdurre immediatamente
delle semplicazioni nelle equazioni, e cioe:
1. Il uido e Newtoniano, cioe la relazione fra sforzi di taglio e deformazioni
e di tipo lineare;
2. L'unica forza di volume e dovuta al galleggiamento (spinta di Archimede);
3. Il uido non partecipa agli scambi termici per irraggiamento;
4. La dissipazione viscosa, nel bilancio dell'energia, e trascurabile;
5. Il uido puo considerarsi incomprimibile, cioe la densita dipende solo
dalla temperatura (e non dalla pressione) ed il termine di comprimibilita,
nell'equazione dell'energia, e trascurabile.
In tali ipotesi le equazioni dimensionali, in forma scalare e per un sistema di
riferimento cartesiano, sono:
Equazione della continuita
@ + @u + @v + @w = 0
@ @x @y @z
(3.1)
3.2. Formulazione matematica
49
Equazione della quantita di moto in direzione x
@u
@P
@
@u
2
@ + u ru = , @x + @x 2 @x , 3 r u +
(3.2)
@u
@v
@
@w
@u
@
+ @y @y + @x + @z @x + @z
Dove rappresenta la viscosita dinamica del uido, che puo essere espressa
come:
= : viscosita cinematica
Equazione della quantita di moto in direzione y
@v
@P
@
@v
@u
@ + u rv = , @y + @x @x + @y +
@
@v
2
@
@w
@v
+ @y 2 @y , 3 r u + @z @y + @z
(3.3)
Equazione della quantita di moto in direzione z
Avendo assunto l'asse z parallelo al campo di forze gravitazionale, nella componente z dell'equazione della quantita di moto compare la forza di galleggiamento, ,g. Il segno negativo deriva dall'aver scelto il verso positivo dell'asse
z verso l'alto.
@w
@P
@
@w
@u
@ + u rw = , @z + @x @x + @z +
@
@w
@v
@
@w
2
+ @y @y + @z + @z 2 @z , 3 r u , g
Equazione dell'energia
c @T
@ + cu rT = r (krT )
(3.4)
(3.5)
dove c e il calore specico e k la conduttivita termica del uido. La (3.5) e stata
scritta nell'ipotesi di assenza di sorgenti (o pozzi) di energia termica nel uido.
50
3. Il fenomeno della convezione
Assumendo ulteriormente che il fenomeno sico in esame sia caratterizzato da
dierenze di temperatura non particolarmente elevate, si puo utilizzare l'ipotesi
di Oberbeck-Boussinesq per cio che riguarda le caratteristiche del uido:
a. Tutte le proprieta termosiche del uido sono costanti (indipendenti dalla
pressione e dalla temperatura), con l'eccezzione della densita nel termine
di galleggiamento ,g.
b. La legge di dipendenza della densita dalla temperatura, nel termine di galleggiamento, puo essere linearizzata secondo la:
=0 = 1 , (T , T0 )
(3.6)
dove e il coeciente di dilatazione termica, considerato costante e pari
a:
@
= , 1 @T
(3.7)
Per cio che riguarda il termine di galleggiamento, si puo osservare che, nell'ipotesi
di uido in quiete (u = 0) ed isotermo a temperatura T0 , in assenza di ussi
termici, il gradiente verticale di pressione e dovuto alla sola componente idrostatica. L'equazione di quantita di moto si riduce alla:
0
0 = , @P
@z , 0 g
(3.8)
con P0 pressione statica corrispondente alla densita 0 e temperatura T0 .
Con le ipotesi viste, e tenendo conto delle (3.6)-(3.8), le equazioni (3.1) - (3.5)
si semplicano nelle:
Equazione della continuita
@u + @v + @w = 0
@x @y @z
(3.9)
51
3.3. Determinazione delle equazioni adimensionali
Equazione della quantita di moto
Direzione x:
@u + u ru = , 1 @P + r2u
@
0 @x
Direzione y:
@v + u rv = , 1 @P + r2v
@
0 @y
Direzione z :
@w + u rw = , 1 @ (P , P0) + r2 w , g (T , T )
0
@
@z
0
(3.10)
(3.11)
(3.12)
Equazione dell'energia
@T + u rT = ,r2 T
(3.13)
@
dove = k=c rappresenta la viscosita termica, e la (3.12) e stata ottenuta
sottraendo la (3.8) alla (3.4).
Si noti, inne, che nel caso dell'equazione di trasporto dell'energia, (3.13),
il campo di velocita e assunto noto, e quindi il termine convettivo risultera
lineare. Viceversa, per l'equazione di quantita di moto , il campo delle velocita
e incognito, e quindi il termine convettivo diventa non lineare.
3.3 Determinazione delle equazioni adimensionali
In questa sezione, per chiarezza, utilizzeremo la convenzione di indicare le
grandezze dimensionali con l'apice e quelle adimensionali senza apice. Introducendo delle grandezze caratteristiche del problema possiamo normalizzare i
termini nelle equazioni, secondo le metodologie tipiche della similitudine. Si
ottengono quindi delle equazioni che esprimono il comportamento di grandezze
non dimensionali. I vantaggi di tale approccio sono, essenzialmente:
Riduzione del numero di parametri caratterizzanti il problema, tramite
la loro combinazione in opportuni gruppi adimensionali;
52
3. Il fenomeno della convezione
Generalita delle soluzioni ottenute.
Le grandezze di riferimento sono :
H dimensione di riferimento del problema.
q
uref = gH (Ts0 , T00 ), velocita di riferimento del problema.
Le equazioni precedenti vengono quindi normalizzate attraverso l'uso delle
seguenti variabili non dimensionali:
x0i
xi = H
per le coordinate spaziali
0
ui = uui = q
u0i
gH (Ts0 , T00 )
ref
= 0 uref = 0
H
per le velocita
q
gH (Ts0 , T00 )
per il tempo
H
0
0
P = gP(T,0 ,PT0 0 ) H
per la pressione
0 T 0)
0
T = ((TT 0 ,
, T 0)
per la temperatura
s
0
s
0
0
Ricordiamo anche le seguenti denizioni per i gruppi adimensionali:
3 0
0
Re = uref H ; Gr = gH (Ts , T0) ; Pr = 2
Con Re, numero di Reynolds; Gr, numero di Grashof; Pr, numero di Prandtl.
Si ottengono in questo modo le seguenti formulazioni non dimensionali delle
equazioni di trasporto:
3.3. Determinazione delle equazioni adimensionali
53
Equazione di continuita
@u + @v + @w = 0
@x @y @z
(3.14)
Equazione della quantita di moto
Direzione x:
@u + u ru = , @P + 1 r2 u
@
@x
Gr 12
Direzione y:
@v + u rv = , @P + 1 r2v
@
@y
Gr 12
Direzione z :
@w + u rw = , @P + 1 r2w + T
@
@z
Gr 12
(3.15)
(3.16)
(3.17)
Equazione dell'energia
@T + u rT = 1 r2 T
@
Gr 21 Pr
(3.18)
54
3. Il fenomeno della convezione
3.4 Determinazione delle equazioni discrete nel tempo
Nel ricavare ora le corrispondenti espressioni discrete delle precedenti equazioni
continue adimensionali, si utilizzera la "~" per indicare le grandezze incognite
relative al passo di tempo successivo (n + 1) nell'equazione della quantita di
moto. La ragione di questa scelta e dovuta al desiderio di mantenere una certa
omogeneita di scrittura delle variabili con i capitoli successivi.
Si esegue la discretizzazione temporale, come proposto da Biringen[8], utilizzando uno schema implicito alla Crank-Nicolson per il termine diusivo ed
uno schema esplicito alla Adams-Bashforth per il termine convettivo. Riscriviamo i termini convettivi, nora espressi nella forma non conservativa, preferendo utilizzarli in modo conservativo.
Consideriamo la seguente uguaglianza, dove ' indica la generica quantita
scalare:
r (u') = (r u)' + u r'
Utilizzando l'equazione di continuita r u = 0 risulta:
r (u') = u r'
Possiamo quindi denire i seguenti termini:
u ru = r (uu) = ,Hu
u rv = r (uv) = ,Hv
u rw = r (uw) = ,Hw
u rT = r (uT ) = ,HT
Per semplicita deniamo anche:
@P = L P
x
@x
@P = L P
y
@y
@P = L P
z
@z
3.4. Determinazione delle equazioni discrete nel tempo
55
Equazione della quantita di moto
Direzione x:
u~n+1 , un = 1 h3H n , H n,1i + 1 1 r2 u~n+1 + un u
2 u
2 Gr 12
(3.19)
,LnxP
Direzione y:
v~n+1 , vn = 1 h3H n , H n,1 i + 1 1 r2 v~n+1 + vn
v
2 v
2 Gr 21
(3.20)
,LnyP
Direzione z :
w~n+1 , wn = 1 h3H n , H n,1 i + 1 1 r2 w~n+1 + wn (3.21)
w
2 w
2 Gr 12
n
n
,Lz P + T
Equazione dell'energia
T n+1 , T n = 1 h3H n , H n,1 i + 1 1 r2 T n+1 + T n T
2 T
2 Gr 21
(3.22)
56
3. Il fenomeno della convezione
3.5 Sistema risolvente
Se, nelle equazioni precedentemente scritte, portiamo a sinistra le grandezze
incognite, individuate con la ~ e relative al passo di tempo nuovo (n + 1); ed a
destra tutte le grandezze note, in quanto relative ai passi di tempo attuale (n)
e precedente (n , 1), otteniamo il seguente sistema:
8
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
:
,
,
2
v~n+1 , vn , 2
+ ,
n
w~ n+1 , w ,
2
+ ,
2 , n+1 , un = 3H n , H n,1 12 r u~
u
u
2
Gr + 1 21 r2 un , Lnx P
Gr
u~n+1 , un ,
1
1 r
Gr 2 1
1
1
Gr 2 1
Gr 21
, vn = 2 3Hvn , Hvn,1
r2vn , LnyP
1
Gr 21
2 ,v~n+1
2,
n
r w~n+1 , w = 2 3Hwn , Hw
r2wn , LnzP + T n
h
2 ,T n+1 , T n = 3H n , H n,1
r
12
T
T
2
Gr Pr 1
r2T n
+ 1
Gr 2 Pr
T n+1 , T n ,
2
1
(3.23)
n,1 i
Capitolo 4
Utilizzo del metodo dei
Volumi Finiti
4.1 Il metodo dei Residui Pesati
Il concetto base di questo metodo, descritto in dettaglio da Finlayson[9], e semplice ed interessante. Rappresentiamo un'equazione dierenziale nel seguente
modo:
L() = 0
(4.1)
Approssimiamo la soluzione con un polinomio :
= a0 + a1 x + a2 x2 + + am xm
(4.2)
dove ai sono dei parametri incogniti. La sostituzione della nell'equazione
(4.1) produce un residuo R, denito da:
R = L()
(4.3)
Si cerchera quindi di minimizzare il residuo introducendo l'integrale:
Z
Wi R dx = 0
(4.4)
dove Wi e una funzione peso ed i limiti di integrazione sono deniti dal dominio
di interesse.
57
58
4. Utilizzo del metodo dei Volumi Finiti
Φ(2)
Φ(3)
Φ(1)
Φ(4)
Φ(5)
Φ(6)
Φ(7)
X
x(1)
x(2) x(3)
x(4)
x(5)
x(6) x(7)
Figura 4.1: Funzione lineare a tratti approssimante la soluzione Risolvendo l'integrale (4.4) con m +1 funzioni peso dierenti si ottengono il
numero necessario di condizioni sucienti per determinare gli m + 1 paramentri incogniti (ai ). Esistono molte versioni del metodo che pero si dierenziano
sostanzialmente solo per la scelta di opportune famiglie di funzioni peso.
Invece di considerare come approssimazione della un polinomio con i coe. incogniti, prendiamo come parametri i valori della in alcuni punti e consideriamo come la funzione a tratti che ne deriva (gura 4.1). Consideriamo
una sezione del dominio di integrazione ottenendo dei sottoinsiemi ,i che chiameremo celle (esempio in gura 4.2). Applichiamo il metodo dei Residui
Pesati, scegliendo come funzioni peso una particolare famiglia di funzioni:
Wi (x) =
(
1 x 2 ,i
0 altrove
(4.5)
otteniamo cos degli integrali deniti ciascuno sulla propria cella :
Z
,i
L() dx = 0
(4.6)
Questa variante del metodo dei Residui Pesati viene anche detta Metodo dei
Volumi Finiti (Control Volume Method[10]).
59
4.2. Il metodo dei Volumi Finiti
Φ(2)
Φ(3)
Φ(4)
Φ(5)
Φ(6)
Φ(7)
X
∆ x(2)
∆x(3)
∆ x(4)
∆ x(5)
∆x(6) ∆x(7)
Figura 4.2: Esempio di scomposizione di un dominio 1D in celle di grandezza
xi
4.2 Il metodo dei Volumi Finiti
Questo metodo per la discretizzazione delle equazioni dierenziali puo essere
quindi schematizzato secondo i seguenti punti:
1. Comporre la griglia (grid o mesh) dei punti per quali si vuole determinare
la soluzione approssimata.
2. Suddividere il dominio originale in tante celle disgiunte (volumi di controllo). Ciascuna cella contiene al suo interno un nodo della griglia.
3. Integrare l'equazione dierenziale su ogni volume di controllo.
4. Utilizzare la (funzione a tratti) per valutare la variazione della tra
i punti della griglia. L'ordine di approssimazione ovviamente dipende
dalla funzione a tratti scelta.
L'operazione che si e fatta, cioe integrare un'equazione dierenziale per poi
discretizzarla assomiglia molto, come dice il Patankar[10], a "voler preparare
le patatine fritte partendo dal pure". In realta l'approccio classico per la descrizione di molti problemi sici, come quelli termouidodinamici, parte dal
60
4. Utilizzo del metodo dei Volumi Finiti
volume di controllo nito. Su di questo vengono applicati i principi di conservazione, ad esempio quelli ottenuti dalla termodinamica classica per sistemi
aperti, si ottengono cos le equazioni in forma integrale. Solo l'introduzione del
passaggio al limite trasforma poi l'equazione integrale in quella dierenziale.
L'equazione discreta ottenuta con il metodo dei Volumi Finiti(Finite Volume) mantiene quindi il carattere di conservativita della grandezza interessata
sul volume di controllo nito, cos come l'equazione dierenziale lo mantiene
per il volume innitesimo. E senz'altro questa la caratteristica (ed il vantaggio rispetto ad altre tecniche) piu saliente del metodo dei Volumi Finiti.
Ricordiamo che la proprieta di conservativita integrale delle grandezze come
massa, quantita di moto ed energia, permane tale per ogni sottoinsieme di
celle e per qualsiasi numero di celle, anche se questo diviene molto basso (cioe
la griglia si dirada di molto). Questa ultima proprieta non e assolutamente
vera per altre tecniche come le Dierenze Finite per le quali la conservativita
globale non e garantita.
Presentiamo ora un esempio di applicazione di questa tecnica all'equazione
dell'energia.
4.3 Equazione discretizzata dell'energia
Ricordiamo l'equazione dell'energia discretizzata nel tempo, proposta nel capitolo 3:
,
T n+1 , T n , 2 ,T n+1
2 Gr 12 Pr r
+ 1
1
Gr 12 Pr
, T n
h
= 2 3HTn , HTn,1
i
r2 T n
Utilizzando le seguenti denizioni cerchiamo di riscrivere l'equazione in modo
piu compatto:
T n+1 = T n+1 , T n k = 1
Gr 12 Pr
Si ottiene la seguente forma:
[T n+1 , 2 kr2 T n+1 ] = , 2 [3r (uT )n , r (uT )n,1 ]
+ kr2 T n
(4.7)
61
4.3. Equazione discretizzata dell'energia
Utilizzando la tecnica dell'Approximate Factorisation1 scomponiamo il termine
sinistro di questa equazione nel prodotto di piu fattori ottenendo:
"
#"
#"
#
@ 2 1 , k @ 2 1 , k @ 2 T n+1 = rhsn
1 , 2 k @x
2
2 @y2
2 @z 2
(4.8)
dove rhsn rappresenta il termine destro dell'equazione (4.7). Questa equazione
puo quindi essere scomposta nel seguente sistema:
8 "
>
>
>
>
>
>
>
>
>
>
>
"
>
>
>
>
<
#
@ 2 T^
1 , 2 k @x
2
= rhsn
#
@ 2 T~
1 , 2 k @y
2
>
>
>
>
>
"
>
>
>
>
>
>
>
>
>
>
:
= T^
(4.9)
#
@ 2 T n+1 = T~
1 , 2 k @z
2
Risoluzione in direzione x
Applichiamo ora la tecnica dei Volumi Finiti alla prima equazione:
"
#
2 T^
@
T^ , 2 k @x2
= , 2 [3r (uT )n , r (uT )n,1 ]
+kr2T n
(4.10)
Integriamo sul volume di controllo, rappresentato come proiezione nelle gure
4.3 e 4.4, il termine sinistro:
"
#
2 ^
T^ , 2 k @@x2T dx dy dz
v:c:
Z
(4.11)
1 L'Approximate Factorisation consiste nel sostituire al termine sinistro dell'equazione (4.7)
un prodotto di fattori, ciascuno contenente la derivata rispetto ad una sola direzione. L'errore
che si compie e funzione di ( )2, cioe dello stesso ordine di quello introdotto dalla discretizzazione temporale utilizzata. Per maggiori approfondimenti si veda in [11], al capitolo 8, pp.
254-255
62
4. Utilizzo del metodo dei Volumi Finiti
x
T i j-1 k
∆ Y j-1
y
Vi j-1 k
Ti-1 j k
Ti
U i-1 j k
T i+1 j k
jk
∆Y j
Uijk
Vi j k
∆ Y j+1
Ti j+1 k
∆ X i-1
∆X i
∆ X i+1
Figura 4.3: Volume di controllo e griglia secondo il piano X-Y
63
4.3. Equazione discretizzata dell'energia
z
T i j k+1
x
∆ Z k+1
Wi j k
Ti-1 j k
Ti
U i-1 j k
T i+1 j k
jk
∆Z k
Uijk
W i j k-1
∆ Z k-1
Ti j k-1
∆ X i-1
∆X i
∆ X i+1
Figura 4.4: Volume di controllo e griglia secondo il piano X-Z
64
4. Utilizzo del metodo dei Volumi Finiti
Z
^ dy dz , k
Tdx
2
v:c:
ZZ
s:c
"
#
@ T^ j , @ T^ j dy dz
@x E @x W
(4.12)
Introduciamo delle semplicazioni ipotizzando che T^ sia costante su tutto il
volume di controllo, valutiamo inoltre il valore delle derivate sulle pareti E ed W
supponendo che l'andamento della funzione tra i punti della griglia sia lineare
a tratti. In questo modo la derivata viene rappresentata con una dierenza
centrale del secondo ordine, l'ordine di approssimazione spaziale quindi
viene a coincidere con quello della discretizzazione temporale.
@ T^ j ' T^i+1;j;k , T^i;j;k @ T^ j ' T^i;j;k , T^i,1;j;k (4.13)
xi+1 +xi
xi +xi,1
@x E
@x W
2
2
Deniamo i coecienti:
x+i = 2 k x 2+ x ; x,i = 2 k x +2x ; xi = ,x+i , x,i
i+1
i
i
i,1
Per il generico volume di controllo v:c:(i; j:k) integrando l'equazione (4.12) il
risultato e:
T^i;j;k xi yj zk , [x,i T^i,1;j;k + xi T^i;j;k + x+i T^i+1;j;k ]yj zk
che si puo scrivere in forma piu compatta come:
[x,i T^i,1;j;k + (xi , xi )T^i;j;k + x+i T^i+1;j;k ]yj zk
(4.14)
Applichiamo il metodo dei Volumi Finiti al termine destro (rhsn ). Questo
termine si compone di due fattori che vanno discretizzati :
r uT ; r2T
Vediamo prima come trasformare r uT :
Z
v:c:
r (uT )dv =
=
Z
s:c
Z
s:c
T u n^ ds =
Tu dy dz +
Z
s:c
Tv dx dz +
Z
s:c
Tw dx dy
4.3. Equazione discretizzata dell'energia
65
L'integrazione sul volume di controllo produce il seguente risultato:
Z
v:c:
r (uT )dv ' (TE ui;j;k , TW ui,1;j;k)yj zk
+ (TS vi;j;k , TN vi;j ,1;k )xi zk
(4.15)
+ (TT wi;j;k , TB wi;j ,1;k )xi yj
Dove TE ; TW ; TS ; TN ; TT e TB rappresentano le temperature sulle sei pareti2
della cella di controllo. Come approssimazione della funzione T abbiamo scelto
una funzione lineare a tratti quindi queste quantita possono essere ottenute
come interpolazione lineare dei valori nelle celle adiacenti:
+ xi Ti+1;j;k
TE = xi+1Ti;j;k
x + x
i+1
i
TW = xiTi,1x;j;k++xxi,1 Ti;j;k
i
i,1
+ yj Ti;j +1;k
TS = yj+1Ti;j;k
y + y
j +1
j
TN = yj Ti;j,y1;k++yyj,1Ti;j;k
j
j ,1
(4.16)
+ zk Ti;j;k+1
TT = zk+1Ti;j;k
z + z
k+1
k
,1 + zk,1 Ti;j;k
TB = zk Ti;j;k
z + z
k
k ,1
2 Per caratterizzare le superci della cella si e scelta una denominazione topograca del
tipo: E per East, W per West, S per South, N per North, T per Top, B per Bottom.
66
4. Utilizzo del metodo dei Volumi Finiti
Discretizziamo ora il termine r2 T :
Z
v:c:
r dv =
2T
Z
s:c:
rT n^ dS =
+
+
s:c:
@T j ] dy dz
[ @T
j
,
E
@x
@x W
s:c:
@T j ] dx dz
[ @T
j
,
S
@y
@y N
s:c:
@T j ] dx dy
[ @T
j
,
T
@z
@z B
Z
Z
Z
(4.17)
Come visto precedentemente, per le derivate in direzione x (equazione (4.13)),
le derivate in direzione y e z vengono espresse con delle dierenze nite centrali.
@T j ' Ti;j +1;k , Ti;j;k
yj +1 +yj
@y S
2
@T j ' Ti;j;k+1 , Ti;j;k
zk+1 +zk
@z T
2
@T j ' Ti;j;k , Ti;j ,1;k
yj +yj ,1
@y N
2
@T j ' Ti;j;k , Ti;j;k,1
zk +zk,1
@z B
2
In conclusione, quindi, per il volume di controllo (i; j; k) si ottiene:
Z
@T j ]y z
j
,
r2T dv ' [ @T
E
@x
@x W j k
v:c:
@T
(4.18)
+ [ @T
@y jS , @y jN ]xi zk
@T j ]x y
j
,
+ [ @T
T
@z
@z B i j
Le equazioni (4.15) e (4.18), calcolate negli istanti di tempo n e n , 1, sostitu-
ite nel termine destro della (4.10) determinano la sua approssimazione con il
metodo dei Volumi Finiti. Chiameremo ora questo termine rhsni;j;k, per indicare che si riferisce al volume di controllo v:c:(i; j; k).
Riprendendo l'equazione (4.14), che rappresentava la discretizzazione del
termine sinistro, possiamo ora scrivere per intero l'equazione discreta, per il
bilancio dell'energia, associata al volume di controllo (i; j; k):
[x,i T^i,1;j;k + (xi , xi )T^i;j;k + x+i T^i+1;j;k ]yj zk = rhsni;j;k (4.19)
4.3. Equazione discretizzata dell'energia
67
Consideriamo le condizioni al contorno per le celle sulla frontiera. Supponiamo,
per esempio, di avere delle condizioni di Neumann sulla parete x = 0, del tipo
^ = 0 e una condizione di Dirichlet, per semplicita T^ = 0, sulla parete
@ T=@x
x = lx:
Condizione di Neumann:
@ T^ j ' T^1;j;k , T^0;j;k = 0 =) T^ = T^ 8j; k
1;j;k
0;j;k
x1 +x0
@x 0
2
Condizione di Dirichlet:
xm+1 Ti;j;m + xm Ti;j;m+1 = 0 =) T^
m+1;j;k = ,T^m;j;k 8j; k
xm+1 + xm
dove xm+1 rappresenta la cosidetta cella fantasma, e Ti;j;m+1 la sua
temperatura. L'utilizzo delle celle fantasma, esterne al dominio, nei problemi risolti con il metodo dei Volumi Finiti, semplica l'imposizione delle
condizioni al contorno. Essendo xm+1 arbitraria, si e considerato, per
semplicita: xm+1 = xm
Scrivendo tutte le equazione per le celle nella direzione x otteniamo il seguente
sistema lineare tridiagonale :
2
3
(x1 , x1 ) + x,1 x+1
6
7
... ...
...
6
7
6
7
6
7
Xj;k = 66
x,i xi , xi x+i
7(4.20)
7
.
.
.
6
7
.
.
.
.
.
.
4
5
x,m (xm , xm ) , x+m
2
2
3
3
T^1;j;k
rhs1;j;k
6
6
.. 77
.. 77
6
6
. 7
. 7
6
6
6
7
6
n
^
^
rhs;j;k = 66 rhsi;j;k 77 T;j;k = 66 Ti;j;k 777
.. 75
.. 75
6
6
4
4
.
.
rhsm;j;k
T^m:j;k
68
4. Utilizzo del metodo dei Volumi Finiti
Per concludere, la soluzione della prima equazione, e adata alla risoluzione
di N P sistemi lineari tridiagonali simmetrici, dove N e P rappresentano il
numero di celle, rispettivamente, in direzione y e z .
yj zk Xj;k T^;j;k = rhsn;j;k 8j; k
(4.21)
Risoluzione in direzione y
Scriviamo ora il sistema risolvente l'equazione dipendente dalla direzione y.
Operiamo analogamente a quello visto per la prima equazione (derivata parziale
rispetto a x):
"
#
2
@
1 , 2 k @y2 T~ = T^
(4.22)
Il sistema che ne deriva risulta essere il seguente:
2
3
(y1 , y1 ) + y1, y1+
6
7
... ...
...
6
7
6
7
6
7
,
+
yj yj , yi yj
Yi;k = 66
7(4.23)
7
6
7
.
.
.
..
.. ..
4
5
yn, (yn , yn) , yn+
T^i;1;k
6
..
6
.
6
T^i;;k = 666 T^i;j;k
..
6
4
.
^
Ti;n;k
2
3
7
7
7
7
7
7
7
5
T~i;1;k
6
..
6
.
6
T~i;;k = 666 T~i;j;k
..
6
4
.
~
Ti;n;k
2
3
7
7
7
7
7
7
7
5
La soluzione della seconda equazione, e adata quindi alla risoluzione di M P
sistemi lineari tridiagonali simmetrici, dove M e P rappresentano il numero di
celle, rispettivamente, in direzione x e z :
xi zk Yi;kT~i;;k = T^i;;k 8i; k
(4.24)
Come si puo notare il termine destro di questo sistema e rappresentato dalla
soluzione appena ottenuta risolvendo il sistema (4.21).
69
4.3. Equazione discretizzata dell'energia
Risoluzione in direzione z
Scriviamo ora il sistema risolvente l'equazione dipendente dalla direzione z , anche in questo caso le condizioni al contorno sono analoghe a quelle in direzione
x:
"
#
2
@
1 , 2 k @z 2 T n+1 = T~
(4.25)
Il sistema che ne deriva risulta essere il seguente:
2
3
(z1 , z1 ) + z1, z1+
6
7
... ...
...
6
7
6
7
6
7
,
+
zk zk , zk zk
Zi;j = 66
7 (4.26)
7
.
.
.
6
7
..
.. ..
4
5
zp, (zp , zp) , zp+
~ Ti;j;1
6
..
6
.
6
~Ti;j; = 66 ~ Ti;j;k
6
..
6
4
.
~Ti;j;p
2
3
7
7
7
7
7
7
7
5
n+1
Ti;j;
1
6
..
6
.
6
6
n+1
n
+1
T
Ti;j; = 66 i;j;k
..
6
4
.
n+1
Ti;j;p
2
3
7
7
7
7
7
7
7
5
La soluzione della terza equazione, e adata quindi alla risoluzione di M N
sistemi lineari tridiagonali simmetrici, dove M e N rappresentano il numero di
celle, rispettivamente, in direzione x e y.
n+1 = T~
xi yj Zi;j Ti;j;
(4.27)
i;j; 8i; j
In questo caso il termine destro e rappresentato dalla soluzione del sistema
(4.24).
Capitolo 5
Risoluzione dell'equazione di
Navier Stokes
5.1 Formulazione tradizionale delle equazioni di NavierStokes
Le equazioni di Navier-Stokes o della quantita di moto, in condizioni nonstazionarie, uido incomprimibile e denite su un contorno chiuso + @ ,
possono essere riassunte nel seguente sistema, dove le incognite sono il vettore
velocita u = (u; v; w)T e la pressione P .
8
@ u + u ru = , 1 r P + r2 u + f
>
>
<
@
(5.1)
>
>
:
ru=0
Per questo sistema le condizioni al contorno possono essere di due tipi:
Condizioni di Dirichlet, ovvero sulla velocita:
u = w su ,1
(5.2)
dove ,1 indica la porzione del contorno @ sul quale vengono denite le condizioni di Dirichlet.
Condizioni di Neumann, ovvero sulla derivata della velocita:
n
,P + @u
@n = Fn
(5.3)
70
5.1. Formulazione tradizionale delle equazioni di Navier-Stokes
e
@u
@n = F
su
,2
71
(5.4)
dove ,2 indica la porzione del contorno @ sul quale vengono denite le condizioni di Dirichlet.
Risulta inoltre:
,1 L ,2 = @ .
n rappresenta la componente normale, positiva se in direzione uscente,
per cui risulta ad esempio un u n
rappresenta la componente tangenziale
Fn e la componente normale della trazione sul contorno
F e la componente tangenziale della trazione sul contorno
Condizioni iniziali: per tutti i punti appartenenti ad , si impone che:
u (x; 0) = u0 (x)
(5.5)
con u0 campo di velocita a divergenza nulla su , cioe:
r u0 = 0
(5.6)
sul contorno ,1 deve essere inoltre vericata la condizione
n u0 (x) = n w (x; 0)
(5.7)
Se tutte queste condizioni sono rispettate allora si dice che il problema e ben
posto, e che esiste una soluzione. Per una analisi completa sulle condizioni
al contorno relative alle equazioni di Navier-Stokes si rimanda all'articolo di
P.M. Gresho e R.L. Sani [12].
Passiamo ora al ricavo dell'equazione della pressione. Con questo tipo di
condizioni al contorno l'equazione della pressione associata puo essere ottenuta
applicando l'operatore di divergenza all'equazione della quantita di moto:
@
u
r
+ u ru , f + 1 r2 P = + r r2 u
(5.8)
@
dato che valgono le seguenti identita:
72
5. Risoluzione dell'equazione di Navier Stokes
1.
r2u = r (r u) , r r u
2.
r (r u) = 0
si ottiene
r (u ru , f) + 1 r2 P = r2r u , @ r u
(5.9)
@
Dovendo risultare per 0 sul dominio chiuso ru = 0 si ottiene l'equazione
della pressione (N.B. e un' equazione di Poisson, ovvero un'equazione ellittica):
r2 P = r (f , u ru)
(5.10)
le condizioni al contorno per 0 sono:
@P = n r2 u + f , @ u , u ru
@n
@
n
P = @u
@n , Fn su ,2
su
,1
Il sistema (5.1) puo quindi essere riscritto sostituendo all'equazione di continuita quella della pressione:
8
@ u + u ru = , 1 r P + r2 u + f
>
>
<
@
(5.11)
>
>
:
r2 P = r (f , u ru)
Le incognite da considerare sono quindi la pressione e le tre componenti della
velocita. Nei uidi incomprimibili, pero, la pressione non risulta essere associata ad alcuna equazione di stato, mentre la velocita sottosta anche all'equazione
di continuita. In particolare, dato che la soluzione accoppiata del sistema
(5.11) e particolarmente onerosa, si sono cercati dei metodi che permettano il
disaccopiamento della velocita dalla pressione in modo da non dover risolvere
contemporaneamente tale sistema.
Si introduce allora una classe di algoritmi numerici, approssimanti le equazioni
di Navier-Stokes, che vanno sotto il nome di Metodi di Proiezione (Projection Methods1 )[13, 14]. In particolare si fara riferimento ad alcuni algoritmi,
1 In letteratura, tali metodi vengono inoltre chiamati Fractional Step Methods o anche,
impropriamente, Time-Splitting Methods.
5.2. Equazioni di Navier-Stokes viste come proiezioni
73
proposti in maniera molto rigorosa, da P.M. Gresho[15]. Senza voler enterare
nel merito degli algoritmi e delle relative dimostrazioni, che sono gia state presentate nella tesi di laurea di D. Bandelli [16], verra di seguito data solo una
breve descrizione di queste metodologie riportando l'algoritmo implementato
nel codice.
5.2 Equazioni di Navier-Stokes viste come proiezioni
Riscriviamo ora le equazioni di Navier-Stokes, precedentemente espresse nella
formulazione tradizionale, in modo dierente:
@ u + 1 r P = S (u)
(5.12)
@
con S (u) = r2 u + f , u ru sul dominio aperto e r u = 0 sul
dominio chiuso . Il vettore S (u) e un Funzionale di u ed in generale risulta
a divergenza non nulla e non irrotazionale.
Seguendo le indicazioni di Chorin [13, 14] si puo aermare che:
assegnato il vettore velocita u, il vettore S (u) puo essere considerato \noto"
e proiettato in due subspazi vettoriali, quello dei vettori a divergenza nulla
(@ u=@ ) ed in quello dei vettori irrotazionali rP .
Matematicamente:
@ u = }S (u) e r P = QS (u)
(5.13)
@
dove } e Q sono gli operatori della proiezione. Riassumendo, si puo dire
che } proietta ogni vettore nel nucleo dello spazio vettoriale della divergenza
r } = 0; mentre Q proietta ogni vettore nel nucleo dello spazio vettoriale dei
rotori r Q = 0.
Si noti che la prima delle due rende il campo vettoriale formato dall'accelerazione
un campo a divergenza nulla, come richiesto dall' equazione di continuita.2
2 Se si dierenzia l'equazione della continuita rispetto al tempo
@
(r u) = 0
@
si ottiene
r @ u =0
@
74
5. Risoluzione dell'equazione di Navier Stokes
Consideriamo la seguente rappresentazione approssimata, nella quale alla pressione, ovvero al gradiente di pressione, si assegna un valore di tentativo, che
indicheremo rP~ , l'equazione (5.12) diventa:
@ u~ = S (~u) , 1 r P~
(5.14)
@
nella quale la velocita u~ e generalmente a divergenza non nulla, in quanto
risulta P~ 6= P .
Si supponga inoltre che a u~ siano applicate le stesse condizioni iniziali di u,
e che venga proiettato nel sottospazio a divergenza nulla, attraverso l'operatore
}. Se indichiamo con v, il vettore ottenuto dalla proiezione, sara:
v = }u~
Purtroppo l'assunzione che risulti v = u 8 e prevedibilmente non molto
buona.
Sempre Chorin [13, 14], a questo punto suggerisce il passaggio alla forma
discreta nel tempo delle equazioni di Navier-Stokes (5.1). Cos facendo, si puo
imporre che all'inizio di ogni passo di tempo risulti:
u~ = u
in modo da non permettere alla soluzione calcolata di allontanarsi troppo dalla
soluzione vera (l'errore commesso sara ovviamente legato all'intervallo di tempo
scelto).
Per la discretizzazione della derivata temporale si puo, ad esempio, scegliere
la fomula di Eulero, e quindi le equazioni(5.13) diventano:
un+1 , un = }S (u )
n+1
e
r Pn+1 = QS (un+1)
(5.15)
per cui, se introduciamo la proiezione, la seguenza logica di calcolo diventa:
Primo passo: calcolo velocita intermedia
u~ n+1 , un = }S (~u ) , rP~
n+1
n+1
(5.16)
75
5.2. Equazioni di Navier-Stokes viste come proiezioni
Secondo passo: proiezione
vn+1 = }u~ n+1
(5.17)
La risoluzione delle equazioni (5.15) e tutt'altro che facile, infatti essa richiede
la contemporanea soluzione della velocita e della pressione, mentre la risoluzione
della (5.16) e (5.17) e molto piu semplice. Infatti, in questo secondo caso,
ammesso che si sia riusciti a calcolare il valore di u~ n+1 , la proiezione puo essere realizzata con la seguente condizione:
u~ n+1 = vn+1 + r
e
r vn+1 = 0
(5.18)
dove e un moltiplicatore di Lagrange associato alla proiezione di u~ n+1 .
In questo modo vn+1 puo essere presa come approssimazione della soluzione
esatta.
L'obbiettivo centrale dei metodi di proiezione e quello di riuscire
a determinare un calcolo sequenziale del tipo prima u e dopo P ,
invece del calcolo accoppiato di u e P allo stesso tempo.
Note
1. E importante ricordare che e vn+1 6= un+1 e che un+1 risultera sempre
piu vicina al valore vero u (tn+1 ) di quanto potra mai esserlo vn+1 !
2. Il Metodo di Proiezione e l'approssimazione(proiezione) di una approssimazione(discretizzazione temporale).
3. Nel caso di uido incomprimibile, mentre l'accelerazione e la pressione
possono essere legittimamente calcolate in modo sequenziale attraverso
una proiezione, la velocita e la pressione non possono esserlo in alcun
modo, essendo esse intimamente accoppiate.
5.2.1 Denizione dell'operatore di proiezione
Vediamo ora un generico algoritmo di proiezione nel quale si puo osservare
come viene denito l'operatore di proiezione e dal quale poi derivano gli altri
procedimenti che presentiamo di seguito.
76
5. Risoluzione dell'equazione di Navier Stokes
Passo 1: calcolo della velocita intermedia Assegnata la velocita iniziale
u0 , il corrispondente campo di pressione P0 (x) nel dominio aperto , e P_0 (x)
sul contorno , 3 , si risolve l'equazione di Navier-Stokes:
@ u~ + 1 rP = r2u~ + ~f in @ 0
(5.19)
Si noti che ~f comprende, in questo caso, il termine convettivo e la generica
forza esterna.
Sul contorno bisogna invece risolvere l'equazione
u~ = w ( ) + r 1 P0 + 2 P_0
con ; 0 < T
(5.20)
Come condizioni iniziali per = 0 va scelta u~ = u0 .
Le costanti 1 e 2 vengono determinate in funzione della versione del
metodo che si implementa, nel caso teorico esse sono ricavate in modo che la
soluzione calcolata abbia una compatibilita del secondo ordine con le condizioni
al contorno; in questo caso si ottengono le cosidette condizioni al contorno
ottime (OBC) , di cui si vedra successivamente l'algoritmo.
Passo 2: proiezione Nota u~ (x; T ) possiamo, su di essa, applicare la proiezione
v (x; T ) = }v~ (x; T )
la quale viene realizzata, in questo caso, imponendo la soluzione del seguente
sistema:
8
>
<
u~ = v + r
>
:
rv =0
questo sul dominio chiuso . In pratica poi, questo sistema, viene implementato in due semipassi:
3 In questo caso trattiamo un sistema chiuso, siamo in presenza percio di condizioni di
Dirichlet su tutta la supercie di contorno.
77
5.3. Algoritmi di proiezione nel continuo
semipasso i Si risolve mediante
r2 = ru~ su (5.21)
mentre sul contorno si impone
@ = T @ P + P_ @n
@n 1 0 2 0
semipasso ii
v = u~ , r
(5.22)
Passo 3: aggiornamernto della pressione Se si accetta v come la ve-
locita vera all'istane T , allora si possono calcolare P (T ) e P_ (T ), concludendo
cos un ciclo di calcolo.
Il legame tra campo delle velocita reale u e campo delle velocita proiettate
v, come dimostrato in [15], risulta essere del tipo:
v = u (T ) + O T 3
in Con questo metodo le equazioni di Navier-Stokes vengono risolte con un'approssimazione dell'secondo ordine. Presentiamo di seguito gli algoritmi,
proposti sempre da Gresho [15], per sistemi chiusi ed aperti, nel continuo e nel
discreto, che vanno sotto la denominazione di Projection2.
5.3 Algoritmi di proiezione nel continuo
5.3.1 Metodo Optimal Projection2 per un sistema chiuso
Passo 0
assegnati u0 , con r u0 = 0, P0 et P_0 .
Passo 1
Calcolo di u~ , con condizioni al contorno u~ 0 = u0 per = 0 mediante la formula
@ u~ , r2 u~ = ~f , 1 rP
@
0
78
5. Risoluzione dell'equazione di Navier Stokes
con condizioni al contorno per la velocita, vedi ( 5.2), u~ = w + 12 t2 rP_0
Passo 2
calcolo della variabile r2 = r u~ (T ) su con condizioni al contorno
@ = T 2 @ P_0 su ,
@n 2 @n
Passo 3
calcolo della velocita esatta
v = u~ (T ) , r su Passo 4
calcolo della pressione P (T )
r2 P = r f (v) su con condizioni al contorno
@P = n h r2 v + f , w_ (T )i
@n
su ,
Passo 5
calcolo della derivata della pressione P_ (T )
r2 P_ = r f_ (v) su con condizioni al contorno
@ P_ = n h r2 v_ + f_ , w (T )i
@n
su ,
dove v_ r2 v_ + f (v) , 1 rP e f_ (v) (@ f=@ v) v_
Passo 6
Memorizzare la velocita v e la pressione P , porre t = 0 e u0 = v eccetto nella
direzione tangenziale sul contorno ,, ed ancora, P = P0 e P_ = P_0 e ripartire
dal Passo 1
Questo algoritmo richiede il calcolo di ben tre equazioni di Poisson per
ciclo, cio non e conveniente si passa quindi da questi metodi ottimi a quelli
semplicati.
5.3. Algoritmi di proiezione nel continuo
79
5.3.2 Metodo Projection2 semplicato per sistemi chiusi
Passo 0
assegnato il campo di velocita iniziale u0 , con r u0 = 0 e la pressioneP0
Passo 1
Calcolo di u~ , con condizioni al contorno u~0 = u0 per = 0 mediante la formula
@ u~ , r2 u~ = ~f , 1 rP su @
0
con condizioni al contorno u~ = w su ,
Passo 2
calcolo della variabile r2 = r u~ (T )
su con condizioni al contorno
@ = 0 su ,
@n
Passo 3
calcolo della velocita esatta
v = u~ (T ) , r su Passo 4
calcolo della pressione P (T )
P (T ) = P0 + 2 T
su Passo 5
Memorizzare la velocita v e la pressione P , porre = 0, u0 = v solo nel
dominio aperto ,, ed ancora, P = P0 e ripartire dal Passo 1
5.3.3 Metodo Projection2 per un sistema continuo aperto
Finora e stata considerata come condizione al contorno la sola condizione di
Dirichlet, ovvero ,1 , e ,2 = 0; vediamo ora come i due metodi si modicano
se ipotizziamo sul contorno anche le condizioni di Neumann, quindi ,2 6= 0.
80
5. Risoluzione dell'equazione di Navier Stokes
Questo caso viene chiamato Condizioni al contorno per un sistema aperto cioe
con deusso (Outow Boundary Conditions OBC).
Passo 0
assegnato il campo di velocita iniziale u0 , con r u0 = 0 e la pressione P0
Passo 1
Calcolo di u~ , con condizioni al contorno u~ 0 = u0 per t = 0 mediante la formula
@ u~ , r2u~ = ~f , 1 rP su 0
@
con condizioni al contorno
1. u~ = w su ,1
2. (@ u~n =@n) = Fn (t) + P0
Passo 2
ed (@ u~ =@n) = F (t) su ,2
calcolo della variabile ausiliaria r2 = r u~ (T ) su con condizioni al contorno
@ = 0 su ,
1
@n
= , T2 [Fn (t) + P0 ]
su ,2
Passo 3
calcolo della velocita esatta
v = u~ (T ) , r su Passo 4
Aggiornamento della pressione
P (T ) = P0 + 2 T
Passo 5
su Memorizzare la velocita v e la pressione P , porre = 0, u0 = v solo nel
dominio aperto ,, ed ancora, P = P0 e ripartire dal Passo 1
81
5.3. Algoritmi di proiezione nel continuo
5.3.4 Metodo Projection2 per un sistema discreto aperto
Passo 0
assegnato il campo di velocita iniziale u0 , a divergenza nulla, ovvero ru0 = 0;
la condizione iniziale per la pressione viene calcolata con la:
r2P0 = r f (u0) su con condizioni al contorno
@P0 = n h r2 u + f (u ) , w_ i
0
0
0
@n
u~0n , F (0)
P0 = @@n
n
su ,1
su ,2
Passo 1
Calcolo di u~ n+1 , con condizioni al contorno u~ 0 = u0 per t = 0 mediante la
formula
u~ n+1 , u~ n + 1 rP = 1 r2u~ + u~ + ~f (u )
n+1
n
n
n 2
con condizioni al contorno
1. u~ n+1 = wn+1 su ,1
2. @n@ (n u~n+1 ) = Fn (tn+1 ) + Pn e
@n@ (~un )n+1 = F (tn+1) su ,2
Passo 2
calcolo della variabile ausiliaria r2 = r u~ n+1 su con condizioni al contorno
(@=@n) = 0 su ,1
(5.23)
82
5. Risoluzione dell'equazione di Navier Stokes
= , (T=2) [Fn (tn+1 ) + Pn ] su ,1
Passo 3
calcolo della velocita esatta
un+1 = u~ n+1 , r su (5.24)
Passo 4
Aggiornamento della pressione
Pn+1 = Pn + 2 su (5.25)
Passo 5
Fine ciclo e ritorno al Passo 1
L'algoritmo implementato nel codice da noi sviluppato segue il metodo appena visto utilizzando le equazioni discrete (3.23) ricavate nel capitolo 3. La
sequenza di operazioni da eseguire puo essere schematizzata come segue:
Passo 1 Calcolo della temperatura T n+1 con
la quarta equazione di (3.23).
Passo 2 Risoluzione delle tre equazioni discrete della quantita di
moto (3.23) ottenendo u~ n+1 .
Passo 3 Determinazione della variabile ausiliaria tramite (5.23).
Passo 4 Calcolo della velocita esatta un+1, dalla (5.24).
Passo 5 Aggiornamento della pressione P n+1 con (5.25).
5.3. Algoritmi di proiezione nel continuo
83
E opportuno far notare che, sebbene P.Gresho[15] indichi di utilizzare la condizione al contorno di Neumann (OBC su ,2 ) per quelle parti del dominio
attraversate dal uido in uscita (outows), nel caso della convezione mista si
e rilevato molto piu soddisfacente l'utilizzo di una particolare condizione di
Dirichlet, che verra descritta nel capitolo 8.
Il maggior peso in termini di tempo macchina viene speso, in questo algoritmo, nella risoluzione dell'equazione di Poisson 5.23. Per questo motivo si e
anche realizzata una procedura per la risoluzione rapida di generiche equazioni
ellittiche (Fast Poisson Solver) che verra presentata nel capitolo successivo.
Capitolo 6
Soluzione numerica
dell'equazione di Poisson
6.1 Introduzione
Come visto nel Capitolo n. 5, i metodi di tipo projection, usati per la soluzione
numerica delle equazioni di Navier-Stokes per uidi incomprimibili, nella loro
formulazione piu generale non-stazionaria, richiedono la soluzione di una equazione
di Poisson per la variabile ausiliaria 1 ad ogni passo di tempo.
In questa tesi, l'interesse e centrato su problemi uidodinamici tridimensionali non-stazionari o caotici, per i quali il numero dei nodi, e quindi il numero di gradi di liberta, puo essere dell'ordine di 106 , o piu. Il numero di passi
di tempo necessari a caratterizzare completamente il fenomeno sico, inoltre,
puo essere molto rilevante, dell'ordine di 105 , o piu. Inne, la soluzione di
tale equazione va ricercata in modo estremamente accurato, cio per evitare sia
l'eventuale divergenza della procedura, sia per ridurre al minimo la propagazione
degli errori.
Da tutto cio si evince che la corretta applicazione delle metodologie di calcolo uidodinamico di tipo projection possono richiedere carichi computazionali formidabili, associati ad esempio alla accennata risoluzione sequenziale di
decine di migliaia di sistemi lineari con equazioni contenenti milioni di incog1 La grandezza e talvolta chiamata, in letteratura pseudo-pressure, poiche si tratta, in
eetti, di un'approssimazione della pressione vera p.
84
85
6.2. Formulazione matematica
nite.
Per tale ragione, e necessario adottare o sviluppare delle metodologie di
soluzione dell'equazione di Poisson caratterizzate da:
Elevata accuratezza, e quindi insensibilita alla propagazione degli errori
di arrotondamento;
Elevatissima ecienza computazionale;
Ridotta memoria richiesta.
Cio puo essere ottenuto solo tenendo in opportuna considerazione la forma delle
equazioni discretizzate nonche la topologia del dominio di soluzione . I metodi
che soddisfano ai requisiti suddetti (si veda [17] per una loro classicazione)
vanno sotto il nome di Fast Poisson Solvers, e trovano il piu comune campo
d'impiego sia nella uidodinamica computazionale, che in altri problemi di
campo (es. eq. di Maxwell). Nel seguito viene presentato il metodo adottato e
sviluppato nel corso di questa tesi.
6.2 Formulazione matematica
Il problema che si vuole arontare e quello della risoluzione numerica diretta,
che eviti cioe il ricorso a metodi iterativi, di un' equazione di Poisson , espressa
dalla:
r2 = c
L'equazione e denita su un dominio bidimensionale , costituito da un rettangolo con i lati di lunghezza arbitraria:
(x; y) x 2 [0; lx ]; y 2 [0; ly ]
Le condizioni al contorno su sono costituite dalla condizione di Neumann :
@ = 0
@n
Questa condizione implica che la soluzione e denita a meno di una costante
arbitraria, e la condizione di risolvibilita e data dalla:
Z
c dS = 0
86
6. Soluzione numerica dell'equazione di Poisson
Nel nostro caso la soluzione numerica dell'equazione di Poisson viene ottenuta
ricorrendo ad una discretizzazione ai Volumi Finiti su una grigliatura non uniforme, dove m e n rappresentano, rispettivamente il numero di Volumi Finiti
nelle due direzioni x ed y. Analizziamo questa operazione riferita all'equazione
gia vista in precedenza:
r2 = r u
Integriamo l'equazione sul volume di controllo v:c::
Z
v:c:
r2 =
Z
v:c:
r u dS
applicando il teorema della divergenza si ottiene:
Z
s:c:
Z
r n^ dS =
s:c:
u n^ dS
dove n^ e il vettore normale alla supercie di controllo (s.c). Deniamo per
semplicita:
rhs =
Z
s:c:
u n^ dS
Indicando con E; W; N; S le 4 facce della superce di controllo elementare, si
ha:
Z
@ j ] dy + Z [ @ j , @ j ] dx = rhs
j
,
[ @
@x E @x W
@y S @y N
s:c:
s:c:
Approssimiamo le derivate sulle superci con delle dierenze nite centrali:
@ j ' i+1;j , i;j
@x E xi+12+xi
@ j ' i;j , i,1;j
@x W xi +2 xi,1
@ j ' i;j +1 , i;j
@y S yj+12+yj
@ j ' i;j , i;j,1
@y N yj +2 yj,1
Deniamo i coecienti:
x+i = x 2+ x ;
i+1
i
yj+ = y 2+ y ;
j +1
j
(6.1)
x,i = x +2x ;
i
i,1
xi = ,x+i , x,i
(6.2)
yj, = y +2y ;
j
j ,1
yj = ,yj+ , yj,
(6.3)
6.2. Formulazione matematica
87
Per il generico volume di controllo v:c:(i; j ) discretizziamo quindi i due termini
dell'equazione:
- usso del vettore u attraverso la superce s:c: del volume di controllo v:c:(i; j ).
Z
s:c:
u n^ dS = [ui;j , ui,1;j ]yj + [vi;j , vi;j,1]xi = rhsi;j
- integrando la derivata parziale di sulla superce s:c: del volume di controllo
v:c:(i; j ),
@ j ]y + [ @ j , @ j ]x = rhs
j
,
[ @
E
@x
@x W j @y S @y N i
Sostituendo in questa equazione le (6.1), (6.2) e (6.3)
[x,i i,1;j + xi i;j + x+i i+1;j ]yj +
[yj, i;j ,1 + yj i;j + yj+ i;j +1 ]xi = rhsi;j
e eguagliando i termini omogenei :
x,i yj i,1;j + yj, xii;j ,1 +
[xi yj + yj xi ]i;j +
+
yj xii;j+1 + x+i yj i+1;j = rhsi;j 8i; j
(6.4)
Si ottiene cos un sistema lineare di nm equazioni in altrettante incognite. Per
la sua risoluzione si e optato per un metodo, Matrix Decomposition, appartenente alla categoria dei citati Fast Poisson Solvers. Questo metodo pur non
raggiungendo le prestazioni di altri metodi, come ad esmpio quelli Spettrali 2 ,
conserva una maggiore essibilita d'impiego, permettendone l'applicazione anche a problemi deniti su griglie non uniformi e con le piu svariate condizioni
al contorno.
2 Si tratta di metodi che fanno largo uso di FFT e quindi molto veloci, ma pretendono
rigide condizioni per quanto riguarda grigliature e condizioni al contorno.
88
6. Soluzione numerica dell'equazione di Poisson
6.3 Matrix Decomposition
L'equazione (6.5) e l'equazione generica associata ad un punto interno al dominio , vediamo cosa succede per i punti al contorno sulle superci y = 0; y =
ly . Per il contorno y = 0 applicando le condizioni al contorno:
@ j ' i;0 , i;1 = 0 =) = 8i
i;0
i;1
y0
@y 0 y1 +
2
si ottiene l'equazione:
x,i y1i,1;1 +
[xi y1 + (y1, + y1 )xi ]i;1 +
y1+xii;2 + x+i y1i+1;1 = rhsi;1
(6.5)
Per il contorno y = ly applicando le condizioni al contorno:
@ j ' i;n , i;n+1 = 0 =) = i;n
i;n+1 8i
@y ly yn+12+yn
si ottiene l'equazione:
x,i yn i,1;n + yn,xii;n,1 +
[xi yn + (yn+ + yn)xi ]i;n +
x+i yni+1;n = rhsi;n
(6.6)
Scriviamo ora, per il generico i, il sistema di equazioni in forma compatta
introducendo le seguenti matrici:
2
Y =
6
6
6
6
6
6
6
4
y1
3
...
yj
...
yn
7
7
7
7
7
7
7
5
(6.7)
89
6.3. Matrix Decomposition
2
A=
6
6
6
6
6
6
6
4
(y1 + y1, ) y1+
3
... ... ...
yj, yj yj+
... ... ...
yn, (yn + yn+ )
Poniamo inoltre:
2
6
6
6
6
6
6
6
4
i;1
..
.
i; = i;j
..
.
i;n
3
2
7
7
7
7
7
7
7
5
6
6
6
6
6
6
6
4
7
7
7
7
7
7
7
5
rhsi;1
..
.
rhsi; = rhsi;j
..
.
rhsi;n
(6.8)
3
7
7
7
7
7
7
7
5
(6.9)
Otteniamo il sistema scritto in forma compatta nel seguente modo:
x,i Yi,1; + [xi A + xiY]i; + x+i Yi+1; = rhsi; (6.10)
per le equazioni corrispondenti ad i = 1 ed i = m vanno introdotte le condizioni
al contorno sulle superci x = 0; x = lx :
@ j ' 0;j , 1;j = 0 =) = 8j
0;j
1;j
x0
@x 0 x1+
2
@ j ' m;j , m+1;j = 0 =) = m;j
m+1;j 8j
@x lx xm+12+xm
La globalita delle equazioni, cioe quelle rappresentanti punti interni come la
(6.10) e quelle ottenute applicando le condizioni appena viste, vanno a costituire il sistema rappresentante l'equazione di Poisson discretizzata:
8
>
[x1 A + (x,1 + x1 )Y]1; + x+1 Y2; = rhs1;
<
x,i Yi,1; +
[xi A + xi Y]i; + x+i Yi+1; = rhsi; (6.11)
>
: x, Y = rhsm;
m,1; + [xm A + (x,
m
m + xm )Y]m;
Utilizzando una descrizione matriciale, il sistema precedente puo essere scritto
nella forma:
M = RHS
90
6. Soluzione numerica dell'equazione di Poisson
dove
2
M=
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
x1 A+ y1+ Y
(x,1 + x1 )Y
...
3
...
...
x,i Y xi A + xi x+i Y
...
2
=
6
6
6
6
6
6
6
4
1;
..
.
i;
..
.
m;
...
...
x,m Y xmA+
(x,m + xm )Y
2
3
rhs1;
3
7
7
7
7
7
7
7
5
RHS =
6
6
6
6
6
6
6
4
..
.
rhsi;
..
.
rhsm;
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
7
7
7
7
7
7
7
5
Moltiplicando m.a.m per Y,1 il sistema (6.11), si ottiene:
8
>
<
[x1 Y,1A + (x,1 + x1 )I]1; + x+1 I2; = Y,1 rhs1;
x,i Ii,1; +
[xi Y,1 A + xi I]i; + x+i Ii+1; = Y,1 rhsi;
>
: x, I
,
1
,
= Y,1 rhsm;
m m,1; + [xm Y A + (xm + xm )I]m;
E ora possibile procedere alla diagonalizzazione della matrice Y,1A :
2
U,1Y,1AU = ; =
6
6
6
6
6
6
6
4
1
3
...
j
...
7
7
7
7
7
7
7
5
(6.12)
n
dove 1 ; j ; ; n sono gli autovalori della Y,1 A con n = 0 perche A e
singolare. Denendo:
g = U,1 Y ,1 rhs
ei; = U,1 i; rhs
i;
i;
(6.13)
91
6.3. Matrix Decomposition
8
>
<
g
[x1 + (x,1 + x1 )I]e1; + x+1 Ie2; = rhs
i=1
1;
,
+
e
e
e
g
xi Ii,1; +
[xi + xi I]i; + xi Ii+1; = rhsi; 1 < i < m
>
: , e
g
xmIm,1; + [xm + (x+m + xm)I]em;
= rhs
i=m
m;
Scriviamo ora i sistemi di equazioni associati a ciascun autovalore j :
8
>
<
g
[x1 j + (x,1 + x1 )]e1;j + x+1 e2;j = rhs
i=1
1;j
,
+
e
e
e
g
x
+
[
x
+
x
]
+
x
=
rhs
1
<
i<m
i j
i i;j
i;j
i i,1;j
i i+1;j
>
: ,e
+
e
g
xmm,1;j + [xmj + (xm + xm )]m;j
= rhsm;j i = m
In forma matriciale:
g
Tje;j = rhs
;j
Dove
2
Tj =
6
6
6
6
6
6
6
4
x1 j + (x,1 + x1 ) x+1
... ...
3
...
x,i xi j + xi x+i
...
... ...
x,m xmj + (x+m + xm)
7
7
7
7
7
7
7
5
(6.14)
L'algoritmo, quindi, per la risoluzione di questo sistema lineare si compone di
2 parti, la prima di prefattorizzazione, la seconda di risoluzione.
La prefattorizzazione consiste in:
1. Costruire le matrici (6.7) e (6.8).
2. Soluzione del problema degli autovalori (6.12).
La risoluzione consiste invece in:
g.
1. Eseguire il prodotto matrice per vettore (6.13) per ottenere rhs
2. Risolvere gli n sistemi lineari tridiagonali della (6.14) ottenendo e.
3. Eseguire il prodotto matrice per vettore (6.13) per ottenere .
92
6. Soluzione numerica dell'equazione di Poisson
6.4 Implementazione dell'algoritmo
L'algoritmo sviluppato in realta risolve un problema di Poisson in tre dimensioni e per questo problema la dimostrazione, data la sua estensione, viene presentata nell'appendice A. In questa sezione vengono presentati i principali problemi riscontrati nell'implementazone dell'algoritmo e le soluzioni introdotte per
risolverli.
Il problema principale e costituito della condizione di Neumann su tutto il
contorno. Come visto precedentemente questo vincolo determina
una soluzione,
R
a meno di una costante, solo se e vericata la condizione c dV = 0. I problemi quindi sono due: capire come questa condizione si trasferisce sul termine
destro discretizzato e come si deve arontare la non univocita della soluzione
del sistema lineare M = RHS ottenuto dalla discretizzazione del problema
originale.
La non univocita della soluzione implica che il sistema lineare diagonale
a bande, identicato dalla matrice M, sia singolare. Anche il sistema sia
risolvibile il termine destro deve appartenere all'immagine della matrice M.
Come abbiamo visto il metodo Matrix Decomposition scompone la risoluzione
del sistema globale nella risoluzione di sottosistemi piu semplici associati agli
autovalori del sistema totale; di questi l'ultimo, quello associato all'autovalore
nullo, risulta essere ancora singolare ed il suo termine destro, dopo essere passato attraverso i cambi di variabile, deve appartenere ancora all'immagine del
sistema altrimenti non esiste soluzione. Il problema quindi nell'applicazione
dell'algoritmo, peraltro molto semplice, si riduce all'eciente e corretta soluzione
di quest'ultimo sistema tridiagonale lineare.
In una prima fase la discretizzazione dell'equazione di Poisson e stata affrontata con la tecnica alle Dierenze Finite che in ultima analisi si diversica
da quella ai Voluni Finiti solo per la diversita dei coecienti (6.2) e (6.3).
Il problema principale riscontrato nel tentativo di voler risolvere l'equazione
di Poisson con questo metodo si e vericato nel momento in cui si andava a
risolvere l'ultimo sistema lineare, quello singolare:
g
Tne;n = rhs
;n
Lavorando con griglie non uniformi ci si e accorti che la matrice singolare Tn ,
caratteristica dell'ultimo sistema, era una tridiagonale non simmetrica, alla cui
6.4. Implementazione dell'algoritmo
93
g 3 . Tutto questo dopo aver
immagine non apparteneva il termine destro rhs
;n
vericato che il termine destro globale RHS appartenesse all'immagine della
matrice originale del sistema M.
La causa di questo errore e attribuibile alle operazioni oating point e agli
arrotondamenti che amplicano l'errore introdotto dalla discretizzazione con le
Dierenze Finite del termine destro. In queste condizioni l'errore quadratico
medio, calcolato come sommatoria al quadrato delle dierenze tra RHS originale e quello ottenuto reintroducendo la soluzione nel sistema originale, non
e mai sceso sotto 10,3 . Quindi per ridurre tale errore si e simmetrizzata la
matrice Tn , operazione che ha introdotto altre operazioni oating point; cos
facendo la somma delle righe della matrice risultava nulla, di conseguenza anche la somma dei termini destri doveva essere nulla per garantire la risolvibilita del sistema. In realta questa somma risultava diversa da zero, sebbene
di poco, quindi si e pensato di redistribuire questo errore su tutti i termini
anche la condizione fosse rispettata, come suggerito in [18]. Questa operazione ha migliorato le prestazioni del Poisson solver portando l'errore a valori
dell'ordine di 10,5 10,6 . Purtroppo pero le Dierenze Finite centrali del secondo ordine risentono della disuniformita della griglia 4 , di conseguenza l'errore
aumentava tanto da divenire insostenibile per griglie anche solo modestamente
non uniformi.
Visti questi problemi si e passati al metodo dei Volumi Finiti, che possiede
la caratteristica di conservativita assoluta, sia a livello globale sia a livello locale. Con tale metodo il calcolo dei ussi attraverso le superci delle celle elementari non cambia se la grigliatura diventa non uniforme. Questa osservazione
si riferisce particolarmente alla discretizzazione del termine destro nel caso particolare da noi arontato. Infatti calcolare il valore discreto dell'equazione :
ru
e sempre un'approssimazione dato che si utilizzano Dierenze Finite. Invece
calcolare il usso nella cella di controllo dell'equazione
Z
u n^ dS
s:c:
3 Questo termine viene ottenuto dal termine destro originale dopo i cambi di variabile,
per la precisione un cambio per il problema in 2D e due cambi per il problema in 3D (vedi
appendice A)
4 Per le Dierenze Finite centrali del secondo ordine l'ordine di approssimazione e 2 solo
per griglie uniformi, decresce invece con l'aumentare della disuniformita della griglia.
94
6. Soluzione numerica dell'equazione di Poisson
R
risulta essere un "calcolo esatto". Se la condizione c dV = 0 e vericata
risulta quindi che la somma dei termini destri sara rigorosamente nulla, questa
caratteristica si mantiene anche dopo i cambiamenti di variabile infatti la
somma dei termini destri dell'ultimo sistema rimane nulla, indipendentemente
dalla disuniformita della griglia. Questo assicura sempre la risolvibilita del
sistema (senza correzioni di alcun genere), inoltre il metodo garantisce delle
matrici Tj sempre simmetriche che sono piu immuni dagli errori di troncamento e piu facili da trattare e risolvere. Con questo metodo si sono ottenuti
degli errori dell'ordine di 10,20 anche per griglie particolarmente non uniformi
(stretched).
Analizziamo ora come e stata trattata la non univocita della soluzione. Per
l'ultimo sistema il Tn associato all'autovalore nullo e del tipo:
2
6
6
6
6
6
6
6
4
(x,1 + x1 ) x+1
... ... ...
x,i xi x+i
... ... ...
x,m (x,m + xm )
3
2
7
7
7
7
7
7
7
5
6
6
6
6 e
6
i;n
6
6
4
e
e1;n
..
.
..
.
m;n
3
2
7
7
7
7
7
7
7
5
6
6
6
6
6 g
i;n
6
6
6
4
g
=
g
rhs
1;n
..
.
rhs
..
.
rhsm;n
3
7
7
7
7
7
7
7
7
5
Come abbiamo gia detto la somma delle righe del sistema e dei termini noti e
nulla, cioe le equazioni sono linearmente dipendenti. Possiamo quindi eliminare
dal sistema l'ultima equazione ed imporre un valore ad una delle variabili in
modo da ssare una delle innite soluzioni. Poniamo quindi per semplicita
em;n = 0, come proposto anche in [18] e [19]. Vediamo come diviene il sistema
con questa nuova condizione.
2
6
6
6
6
6
6
6
4
(x,1 + x1 ) x+1
... ... ...
x,i xi x+i
... ... ...
0 1
3
2
7
7
7
7
7
7
7
5
6
6
6
6 e
6
i;n
6
6
4
e
e1;n
..
.
..
.
m;n
3
2
7
7
7
7
7
7
7
5
6
6
6
6 g
6
i;n
6
6
4
=
g
rhs
1;n
..
.
rhs
..
.
0
3
7
7
7
7
7
7
7
5
Come osservazione nale si puo dire che questo e l'unico sistema tridiagonale
non simmetrico che ha portato ad una scelta di tipo implementativo e cioe
se usare due solver di sistemi lineari (librerie standard LAPACK, NAPACK
6.5. Risultati e prestazioni
95
ecc.), uno per sistemi simmetrici e uno per sistemi asimmetrici tridiagonali,
favorendo cos la velocita di calcolo, oppure scegliere un solo solutore per sistemi tridiagonali generali rendendo piu leggibile il codice (nessuna istruzione
di scelta, una sola chiamata a subroutine, ecc.). La scelta e caduta sulla seconda opzione perche, come si vedra piu avanti, la maggior parte dei calcoli
viene spesa nei prodotti matriciali rendendo trascurabile il tempo speso nella
soluzione dei sistemi lineari.
6.5 Risultati e prestazioni
L'algoritmo e stato implementato su diverse piattaforme di calcolo al ne di
valutarne le prestazioni, inoltre e stato scritto in FORTRAN con le seguenti
caratteristiche :
E stata favorita la portabilita a scapito della ricerca delle prestazioni
migliori, peraltro funzione del tipo di processore ed architettura;
E stata utilizzata, in forma sorgente, la libreria LAPACK ove possibile;
La codica comprende alcune elementari estensioni FORTRAN 90, peraltro accettate tranquillamente da tutti i compilatori;
La struttura dati e stata scritta al ne di un'agevole implementazione
parallela, in modalita shared-memory.
Tutti i risultati presentati sono stati ottenuti in singola precisione a 32 bit
(tranne CRAY e SGI R8000 per cui la singola precisione e di 64 bit) su macchine scalari o vettoriali sempre in modalita monoprocessore e fanno riferimento solo alla parte dell'algoritmo in cui si esegue la soluzione del problema.
A questo proposito vediamo come e distribuita la mole dei calcoli in questo
nucleo (kernel) del problema uidodinamico.
Assumendo di lavorare su
griglie 3D aventi dimensioni, cioe numero di celle nelle tre direzioni x, y e z ,
pari a M N P , il numero di operazioni (ordine di grandezza) svolte dalla
routine e distribuito nel seguente modo:
2 trasformazioni di variabile tramite prodotti matrice-vettore
O(N N M P );
96
6. Soluzione numerica dell'equazione di Poisson
soluzione di n p sistemi lineari tridiagonali
O(N M P );
2 trasformazioni di variabile tramite prodotti matrice-vettore
O(N M P P ).
Come si vede la maggior parte del lavoro e spesa nei prodotti matriciali. La
parte di prefattorizzazione delle matrici invece viene eseguita una sola volta e
non interviene piu nelle succesive applicazioni. Nella tabella 6.1 presentiamo
un riassunto delle prestazioni ottenute su diversi elaboratori.
Tabella 6.1: Prestazioni su diverse piattaforme di calcolo
Tempo (secondi)
Computer
Opzioni compilatore
Griglia 403 Griglia 1003
CRAY YMP-C90
SGI Power
Challenge R8000
CRAY XMP/116se
cf77 -Wf"-o agress
-o loopalign"
f77 O2 -OPT:round=3:
alias=typed
CGM:cerr:static
cf77 -Wf"-o agress
-o loopalign"
FOR
f77 -O5
f77 -O
ALPHA 7000
ALPHA 3000
SUN SparcStation 10
PC Pentium 60Mhz Microsoft Fortran
PCI Bus - 16MB
PowerStation /G4 /Ox
/D"NDEBUG"
SGI indigo R3000
f77 -O2
Cray T3D-64 Pe
cf77 -Oscalar3
.516
9.95
0:384?
27:40?
1.31
39.31
1.86
2.48
2.023
85.95
116.90
226.79
4.94
447
6.82
593.38
3
Griglia 62 Griglia 1263
0.211
3.62
? Problemi nella ricerca degli autovalori nella fase di prefattorizzazione
Come si puo notare nella tabella sono riportati alcuni dati sulle prestazioni
ottenute dall'algoritmo sul CRAY-T3D a 64 processori, per tale macchina le
6.5. Risultati e prestazioni
97
prestazioni ottenute non sono paragonabili con quelle delle piattaforme piu
tradizionali, sia a causa delle diverse griglie sia a causa dell'utilizzo di istruzioni
non standard per il FORTRAN 77, ma sono pur sempre interessanti come
esempio di evoluzione delle architetture e delle modalita di implementazione
di questi algoritmi. I risultati completi e la trattazione particolareggiata del
porting e parallelizzazione del Poisson Solver sul Calcolatore parallelo Cray
T3D sono invece presentati nel Capitolo n. 7.
Capitolo 7
Implementazione del codice
sul T3D
Ricordiamo brevemente l'algoritmo adottato per la simulazione, attraverso il
metodo dei Volumi Finiti, delle equazioni di conservazione di massa, quantita
di moto-Navier-Stokes ed energia. Queste sono utilizzate per i problemi di convezione mista (e quindi, come caso limite Re ! 0, anche convezione naturale)
non stazionaria, caotica e turbolenta in canali rettangolari. Rimandando al
Capitolo [5] per la descrizione completa dell'algoritmo, questo, ad ogni passo
di tempo, si compone delle seguenti fasi:
1. Soluzione dell'equazione dell'energia (temperatura T ), noti i valori del
campo di velocita. Si ricorre all'Approximate Factorization, utilizzando
Crank-Nicholson per i termini diusivi e Adams-Bashfort per i termini
convettivi (non lineari). Tale fase si compone essenzialmente della soluzione
di sistemi tridiagonali simmetrici, indipendenti lungo le tre direzioni x; y
e z.
2. Soluzione delle tre equazioni scalari della quantita di moto (componenti
della velocita u:u,v,w) anche in tal caso attraverso la tecnica Approximate
Factorization; i termini diusivi sono trattati implicitamente alla CrankNicholson mentre i termini convettivi sono trattati esplicitamente con
Adams-Bashfort. Anche tale fase si compone della soluzione di sistemi
tridiagonali simmetrici, indipendenti lungo le tre direzioni x; y e z .
98
7.1. Esempi di applicazione del modello CRAFT
99
3. Soluzione dell'equazione di Poisson per la variabile ausiliaria (pseudopressure); tale soluzione e eseguita con un algoritmo diretto (Fast Poisson
Solver) del tipo Matrix Decomposition presentato nel Capitolo [6].
4. Aggiornamento delle componenti della velocita e della pressione, sulla
base della variabile ausiliaria .
Denito l'ordine delle operazioni da eseguire gli oggetti da trattare sono fondamentalmente due:
Soluzione di sistemi tridiagonali, utilizzati sia nella risoluzione delle equazioni
di conservazione che nel Poisson Solver.
Prodotto di matrici, necessari nella risoluzione della variabile ausiliaria ,
rappresentano il maggior onere computazionale dell'intero algoritmo.
7.1 Esempi di applicazione del modello CRAFT
Per l'implementazione (porting) del sorgente su una piattaforma parallela come
il Cray T3D si e scelto il modello implicito a memoria condivisa. Questo
paradigma non modica la struttura dell'algoritmo, rende anzi l'operazione
di parallelizzazione del tutto invisibile se si implementa il programma su un
calcolatore tradizionale1 .
Data l'ampiezza dell'intero sorgente non e possibile illustare in questo contesto l'intera operazione di parallelizzazione del codice, mostreremo invece alcune modiche apportate all'algoritmo per la risoluzione dell'equazione di Poisson. Questo algoritmo, come e stato gia detto, detiene il maggior peso nella
soluzione dell'intero problema (piu del 50% del tempo di CPU). Il numero (ordine di grandezza) delle operazioni eseguite dal Kernel dipende dalle dimensioni
del problema M, N e P (numero di celle) nelle tre dimensioni spaziali x; y e z :
il Poisson Solver raggiunge l'ordine di (2 N 2 M P + 2 N M P 2) operazioni contro le (3 M N P ) per la soluzione delle equazioni di trasporto.
1 Un programma parallelizzato con le operazioni di Work Sharing e Data Parallel presenta
delle direttive che si identicano per la presenza nelle prime colonne del testo della stringa
CDIR$.. Un compilatore tradizionale interpreta questa stringa come l'inizio di un commento,
non interviene quindi in alcun modo
100
7. Implementazione del codice sul T3D
Seguendo l'algoritmo proposto nell'Appendice A per la risoluzione dell'equazione
di Poisson in tre dimensioni vediamo come sono state implementate le operazioni principali: prima utilizzando i construtti standard del Fortran 77 e poi
le opportunita oerte dall'ambiente CRAFT.
g
Codichiamo il cambio di variabile rhs
i;j; = U,1 Z,1 rhsi;j;:
Versione FORTRAN 77 Si tratta di un semplice prodotto matrice-vettore
che va ripetuto i j volte. Alla ne dell'operazione il risultato si trova nella
matrice phi.
do i=1,m
do j=1,n
c *******Prodotto (inv_u)x(inv_dz)x(rhs(i,j,.)) **************
do k=1,p
phi(i,j,k) = 0.
end do
do kk=1,p
t=rhs(i,j,kk)/dz(kk)
do k=1,p
phi(i,j,k) = phi(i,j,k) + inv_u(k,kk)*t
end do
end do
c ************************************************************
end do
end do
Per snellire e rendere piu leggibile il codice introduciamo, laddove risulta possibile, la sintassi e le Funzioni Intrinseche del FORTRAN 90.
do j=1,n
do i=1,m
w10
= rhs(i,j,1:p)/dz(1:p) !w10(1:p) vettore ausiliario
phi(i,j,1:p) = matmul(inv_u,w10)
! funzione intrinseca del
! Fortran 90 per il prod.
! matriciale
end do
end do
101
7.1. Esempi di applicazione del modello CRAFT
PE0
PE1
PE2
PE3
Figura 7.1: Esempio di distribuzione degenere delle matrici su 4 PE
Il codice risulta piu compatto e piu eciente. Rendiamo il ciclo parallelo
tramite le direttive di DOSHARED e distribuiamo opportunamente le matrici
rhs e phi che sono quelle rappresentanti i data-set piu importanti. Gli altri
array, di dimensioni piu contenute, possono essere deniti privati. Si osservi
che per ogni iterazione (i; j ) viene interessata solo la terza dimensione di queste
matrici: e opportuno quindi utilizzare una distribuzione degenere che localizzi
sui diversi PE tutti gli elementi caratterizzati dagli stessi indici (i; j ) (gura
7.1):
cdir$ shared
cdir$ shared
phi
rhs
( :block, :block, :
( :block, :block, :
)
)
Questa distribuzione garantisce la massima localita dei dati, cioe il PE che
esegue l'iterazione assegnatagli possiede sulla propria memoria locale tutti i
dati richiesti. Non sono quindi necessarie comunicazioni tra nodi di calcolo.
Vediamo quindi come si presenta questo algoritmo, versione MPP, pronto per
essere eseguito sul T3D:
102
7. Implementazione del codice sul T3D
cdir$ doshared (j,i) on rhs(i,j,0)
do j=1,n
do i=1,m
w10
= rhs(i,j,1:p)/dz(1:p)
phi(i,j,1:p) = matmul(inv_u,w10)
end do
end do
Per dimostrare come il modello CRAFT sia estremamete facile da implementare mostriamo come viene modicato il modulo che risolve i sistemi lineari
tridiagonali. L'algoritmo e molto semplice, si tratta di estrarre dalla matrice
rhs i termini destri passarli insieme alle tre diagonali alla routine SGTL2 , il
cui risultato va poi inserito nella matrice phi.
cdir$ doshared (k,j) on all_diag(0,j,k)
do k=1,p
do j=1,n
w6
= sub_x
! diag. inferiore
w7
= all_diag(1:m,j,k) ! diag. principale
w8
= sup_x
! diag. superiore
w9
= rhs
(1:m,j,k)
if ((j.eq.n).and.(k.eq.p)) then
w6(m)=0.
end if
call SGTSL (m, w6, w7, w8, w9, info)
phi(1:m,j,k) = w9
end do
end do
Come si puo osservare l'intera operazione di parallelizzazione si riduce all'introduzione
della direttiva DOSHARED, ogni processore risolve un sistema lineare. Le ma2 La routine SGTL e uno dei codici per la risoluzione di problemi di algebra lineare appartenente alla libreria matematica SLATEC (modulo LINPACK).
7.2. Risultati e prestazioni
103
trici phi e rhs sono gia state distribuite come visto precedentemente quindi in
questo caso bisogna sostenere un overhead dovuto alle comunicazioni.
L'intero nucleo dell'algoritmo per la soluzione dell'equazione, oltre al modulo per la risoluzione dei sistemi lineari di Poisson ed al prodotto matriciale
presentato precedentemente, presenta altri 3 prodotti matriciali. In Appendice
B vengono presentate le due implementazioni, quella sequenziale (Fortran 77)
e quella parallela (CRAFT), nella loro globalita al ne di mostrarne tutte le
dierenze.
Anche se le modiche proposte sono molto semplici, questo non vuole dire
che la loro corretta implementazione sia stata immediata: i primi tentativi,
infatti, sono stati alquanto deludenti, specialmente per quanto riguardava la
distribuzione dei dati. Trovata poi l'ottimale scomposizione dei data-set, il
miglioramento e stato davvero notevole. L'introduzione delle istruzioni del
tipo array syntax e della funzione intrinseca MATMUL ha poi ridotto ancora
i tempi di esecuzione.
Per dare un'idea del miglioramento ottenuto si osservino i seguenti dati,
ottenuti con 64 PE, risolvendo una griglia non uniforme di 623 celle.
Prestazioni del sorgente FORTRAN 77 + DATA PARALLEL & WORK SHARING nelle seguenti congurazioni:
32.36 sec con matrici distribuite erroneamente (enorme overhead per le comunicazioni).
1.44 sec con matrici distribuite correttamente (ricerca della massima localita).
0.21 sec con matrici distribuite correttamente
+ array syntax FORTRAN 90
+ array intrinsic MATMUL.
7.2 Risultati e prestazioni
Riportiamo ora i dati che riguardano la tempistica e le prestazioni ottenute
implementando i codici sul Cray T3D. Lo strumento con cui si sono eseguite
le misure e rappresentato da una routine di libreria, la IRTC, che ritorna il
numero di clock intercorsi tra due chiamate; il tempo e stato ottenuto moltiplicando quest'ultimo per 6:67 109 sec (periodo di clock).
104
7. Implementazione del codice sul T3D
7.2.1 Poisson Solver
Le tabelle seguenti riportano le prestazioni ottenute, in termini di tempo di
esecuzione e di Speedup (equazione 1.1) per tre griglie non uniformi, caratterizzate, rispettivamente, da circa 2 105 ; 2 106 e 4 106 celle. I tempi riportati
riguardano solo la soluzione del sistema di equazioni, poiche, in una tipica simulazione, la fase di inizializzazione e prefattorizzazione, va eseguita solo una
volta all'inizio del calcolo. Inoltre, il tempo proporzionalmente speso durante
tale fase diminuisce all'aumentare del problema, sino a diventare trascurabile.
Per la griglia 623 viene proposto anche il confronto con le prestazioni ottenute
sul Cray C90. Il codice in questo caso non ha subito nessuna modica, il
compilatore ha semplicemente trascurato le direttive per la programmazione
parallela interpretandole come semplici commenti.
Poisson Solver - Griglia 623
n. PE Speedup teorico Speedup reale Tempo (sec)
1
1.
1.000
12.325
2
2.
1.959
6.293
4
4.
3.774
3.266
8
8.
7.492
1.645
16
16.
14.76
0.837
32
32.
29.35
0.420
64
64.
58.41
0.211
Cray C90
0.767
7.2. Risultati e prestazioni
Poisson Solver - Griglia 1263
n. PE Speedup teorico Speedup reale Tempo (sec)
2
1.
1.000
113.14
4
2.
1.982
57.07
8
4.
3.923
28.84
16
8.
7.771
14.56
32
16.
15.54
7.28
64
32.
31.25
3.62
Poisson Solver - Griglia 254 126 126
n. PE Speedup teorico Speedup reale Tempo (sec)
4
1.
1.000
114.40
8
2.
1.981
57.75
16
4.
3.940
29.04
32
8.
7.873
14.53
64
16.
15.74
7.27
105
106
7. Implementazione del codice sul T3D
Di seguito vengono riportati i dati relativi allo speedup in forma graca, per
una piu agevole interpretazione. Si puo notare, in particolare, che la scalabilita
migliora all'aumentare della dimensione del problema, cioe incrementando le
dimensioni della griglia.
Poisson solver - Griglia 62
3
64
Speedup
Speedup reale
Speedup teorico
32
16
8
4
2
1
12 4
8
16
32
64
No. processori T3D
Figura 7.2: Speedup per una griglia con circa 2 105 nodi
107
7.2. Risultati e prestazioni
Poisson solver - Griglia 126
3
32
Speedup
Speedup reale
Speedup teorico
16
8
4
2
1
2 4
8
16
32
64
No. processori T3D
Figura 7.3: Speedup per una griglia con circa 2 106 nodi
108
7. Implementazione del codice sul T3D
Poisson solver - Griglia 254x126x126
16
Speedup
Speedup reale
Speedup teorico
8
4
2
1
4
8
16
32
64
No. processori T3D
Figura 7.4: Speedup per una griglia con circa 4 106 nodi
7.2. Risultati e prestazioni
109
7.2.2 Codice NUSUMIC
I risultati globali ottenuti per la procedura di calcolo termouidodinamico
(package NUSUMIC) sono stati riportati per due casi: convezione naturale
e convezione mista. Le dierenze fra i due casi sono, dal punto di vista numerico, trascurabili, ma dal punto di vista dei possibili eetti sulle prestazioni,
non secondarie. Queste sono:
Nel caso di convezione naturale, il numero dei nodi e uguale in tutte le
tre direzioni, mentre per la convezione mista vi e una direzione (x) lungo
la quale il numero di nodi e circa quattro volte quello nelle altre due.
Nel caso della convezione naturale non vi sono inow ed outow, mentre
nel caso della convezione mista vi e un ingresso ed un'uscita che richiedono
sicuramente altro tempo di calcolo.
Convezione naturale
Le tabelle seguenti riportano le prestazioni ottenute (tempo per l'esecuzione e
speedup) per due griglie non uniformi, caratterizzate, rispettivamente da circa
2:4 105 e 2 106 celle (gradi di liberta). I tempi riportati non includono la fase
di inizializzazione e prefattorizzazione, che va eseguita solo una volta all'inizio
della simulazione. Al ne di ottenere una maggiore accuratezza nella temporizzazione, le prove sono state eseguite sia per uno che per cinque time-step,
ed i dati di tabella si riferiscono a quest'ultimo caso, avendo diviso per cinque
il tempo ottenuto. Per la griglia maggiore, a causa della memoria richiesta,
il numero minimo di processori necessario per il calcolo e stato pari a 16 PE.
A titolo di confronto, si sono riportati pure i tempi ottenuti sul Cray C90 in
modalita monoprocessore.
110
7. Implementazione del codice sul T3D
Convezione naturale - Griglia 623
n. PE Speedup teorico Speedup reale Tempo (sec)
1
1.
1.00
48.755
2
2.
1.92
25.428
4
4.
3.75
12.986
8
8.
7.25
6.724
16
16.
14.06
3.468
32
32.
27.62
1.765
64
64.
54.29
0.898
Cray C90
1.940
Poisson Solver - Griglia 1263
n. PE Speedup teorico Speedup reale Tempo (sec)
16
1.
1.00
34.96
32
2.
1.99
17.61
64
4.
3.94
8.88
Cray C90
14.570
111
7.2. Risultati e prestazioni
Di seguito i risultati relativi allo speedup sono riportati in forma graca.
Convezione naturale - Griglia 62
3
64
Speedup
Speedup reale
Speedup teorico
32
16
8
4
2
1
12 4
8
16
32
64
No. processori T3D
Figura 7.5: Speedup per una griglia con circa 2:4 105 nodi
Convezione mista
Anche in questo caso riportiamo alcune tabelle riportanti temp di esecuzione e
speedup per due griglie non uniformi di circa 1:1 105 e 1 106 volumi niti.
Come per il problema della convezione naturale anche in questo caso il tempo
riportato si riferisce a quello medio ricavato su cinque time-step. Per la griglia
maggiore, a causa della memoria richiesta, il numero minimo di processori
richiesto per il calcolo e stato pari a 4PE.
112
7. Implementazione del codice sul T3D
Convezione naturale - Griglia 126
3
4
Speedup
Speedup reale
Speedup teorico
2
1
16
32
64
No. processori T3D
Figura 7.6: Speedup per una griglia con circa 2 106 nodi
7.2. Risultati e prestazioni
Convezione mista - Griglia 126 30 30
n. PE Speedup teorico Speedup reale Tempo (sec)
1
1.
1.00
24.780
2
2.
1.95
12.690
4
4.
3.83
6.470
8
8.
7.18
3.450
16
16.
13.62
1.819
32
32.
26.67
0.929
64
64.
50.47
0.491
Cray C90
1.101
Convezione mista - Griglia 254 62 62
n. PE Speedup teorico Speedup reale Tempo (sec)
4
1.
1.00
63.105
8
2.
1.93
32.680
16
4.
3.78
16.690
32
8.
7.49
8.430
64
16.
14.88
4.240
Cray C90
7.495
113
114
7. Implementazione del codice sul T3D
Anche in tal caso i risultati sono riportati in forma graca, per una piu
agevole interpretazione.
Convezione mista - Griglia 126x30x30
64
Speedup
Speedup reale
Speedup teorico
32
16
8
4
2
1
12 4
8
16
32
64
No. processori T3D
Figura 7.7: Speedup per una griglia con circa 1:1 105 nodi
7.3 Osservazioni conclusive
I risultati sin qui ottenuti possono senz'altro considerarsi positivi, soprattutto
per cio che riguarda la scalabilita e lo speedup. Si e inoltre notato, come era
ovvio attendersi, che la scalabilita migliora all'aumentare della dimensione del
problema.
Va per altro osservato che l'algoritmo originale non e stato in alcun modo
modicato, ma piuttosto si sono solo aggiunte le direttive opportune del MPP,
115
7.3. Osservazioni conclusive
Convezione mista - Griglia 254x62x62
16
Speedup
Speedup reale
Speedup teorico
8
4
2
1
4
8
16
32
64
No. processori T3D
Figura 7.8: Speedup per una griglia con circa 1 106 nodi
questo rende il codice portabile anche su altre piattaforme non parallele, come
e stato fatto con il Cray C90.
Per quanto riguarda le prestazioni, in termini di Mop/s sustained, si sono
ottenuti circa 700 Mop/s nel Poisson Solver, mentre per l'intero codice non si
sono superati i 300 Mop/s. Tale dato, certamente non entusiasmante, deriva,
a nostro avviso, da:
Dimensioni limitate della cache in rapporto alle dimensioni dei data-set
del nostro problema;
Struttura dell'algoritmo, in particolare dell' Approximate Factorisation,
che non permette una distribuzione eciente dei dati attraverso i nodi,
introducendo cos un signicativo overhead dovuto alle comunicazioni.
116
7. Implementazione del codice sul T3D
Il rapporto fra il tempo di calcolo sul Cray C90 in modalita monoprocessore e
quello sul Cray T3D con 64 PE, varia fra circa 3.6 per il Poisson solver e (2.11.6) per il programma globale, con numeri inferiori per le griglie di dimensioni
maggiori. Tale dato, all'apparenza contraddittorio, deriva, a nostro avviso, da
due fatti:
aumento dell'overhead dovuto alle comunicazioni all'aumentare dei nodi;
aumento delle prestazioni sul Cray C90, all'aumentare della griglia, a
seguito della maggiore lunghezza dei vettori e quindi del grado di vettorizzazione.
Capitolo 8
Risultati
I programmi di calcolo sviluppati, sono stati utilizzati per la simulazione numerica di due tipologie di problemi: la convezione naturale in una cavita chiusa,
e la convezione mista per un canale rettangolare. Si tratta di due tipologie di
problemi che, oltre ad essere di fondamentale importanza nella termouidodinamica di base, sono caratteristiche di numerose applicazioni tecnologiche. Si
citano a titolo d'esempio, la tecnologia produttiva con cambiamento di fase, la
produzione di lm sottili con processi CVD (Chemical Vapor Deposition) ed il
controllo termico in elettronica.
8.1 Convezione naturale
8.1.1 Confronto con altri autori
I risultati del codice per la simulazione di fenomeni convettivi di tipo naturale sono stati confrontati con altri risultati presenti in bibliograa, al ne
di valutare l'accuratezza delle procedure di calcolo sviluppate nel corso della
tesi. In gura 8.1 e rappresentato il dominio considerato, costituito da una
cavita chiusa nella quale due pareti sono mantenute alle temperature di Tc
e Th , mentre le altre sono assunte perfettamente adiabatiche. Le dimensioni
sono state considerate uguali in tutte tre le direzioni e pari ad H. Al ne di
valutare il risultato ottenuto si e considerato un intervallo di tempo sucientemente lungo, in modo da permettere il raggiungimento del regime stazionario.
117
118
8. Risultati
z
g
lx
x
y
Th
lz
Tc
ly
Figura 8.1: Geometria della cavita utilizzata per lo studio della convezione
naturale
Sono stati scelti alcuni parametri per caratterizzare e confrontare la soluzione
ottenuta.
Il numero di Nusselt, Nu, che rappresenta il usso termico adimensionale
per la parete calda:
1
Nu = , H T
H Z H @T Z
0
0
@x
x=0
dz dy
(8.1)
La massima velocita verticale wmax lungo la retta (x; H=2; H=2).
La massima velocita orizzontale umax lungo la retta (H=2; H=2; z).
La straticazione termica nel centro della cavita (H=2; H=2; H=2):
S = HT @T
@x
(8.2)
119
8.1. Convezione naturale
Autore
303
503
Nu
wmax
umax
S
8.6685 0.2610 0.08150 0.9273
8.6547 0.2581 0.08163 0.9113
Janssen et al. [20]
(303 )
8.6172 0.2620 0.08154 0.9293
3
(60 )
8.6330 0.2597 0.08108 0.9138
(1203 )
8.6393 0.2585 0.08099 0.9103
Fusegi et al. [21]
(623 )
8.7689 0.2588 0.08415
,
Tabella 8.1: Valori caratteristici del problema con Ra = 106
Presentiamo ora in tabella 8.1 i risultati ottenuti per un valore del numero di
Rayleigh pari a 106 e per un uido con numero di Prandtl uguale a 0:71. Di
conseguenza il numero di Grashof risulta pari a:
6
Gr = Ra
Pr = 1:40845 10
Come si puo osservare dalla tabella 8.1, i risultati ottenuti sono molto ben
allineati con quelli degli altri autori. In particolare, con riferimento ai valori
di Nu, questi sembrano leggeremente sovrastimati, sebbene la dierenza con
il valore ottenuto da Jansen et al. [20] per la griglia piu ne (1203 ), utilizzata
come soluzione di riferimento, e dell'ordine del 0:2%.
Per le altre variabili, velocita e straticazione termica, l'accordo con la
soluzione di Janssen at al. e estremamente soddisfacente ed indicativo dell'elevato
grado di accuratezza della procedura di calcolo.
120
8. Risultati
Anche in tal caso e opportuno sottolineare l'ecenza computazionale del
programma di calcolo: la soluzione per ambedue le griglie, infatti, e stata
ottenuta utilizzando una workstation Digital DEC3000.
8.2 Convezione mista
L'implementazione del programma di calcolo per la simulazione dei fenomeni
convettivi di tipo misto e stata eseguita per una geometria come quella proposta in gura 8.2.
In questo caso, al contrario della convezione naturale, siamo in presenza di suz
x
g
Tc
y
Out flow
lx
lz
In flow
Th
ly
Figura 8.2: Geometria del canale utilizzato per lo studio della convezione mista
perci attraversate dal uido (Inow e Outow). Per queste vanno quindi denite delle opportune condizioni al contorno al ne di determinare una soluzione
che si avvicini il piu possibile a quella, teorica, ottenibile nelle condizioni in cui
il dominio non sia troncato ma si estenda all'innito.
121
8.2. Convezione mista
z
a
b
o
y
Figura 8.3: Sezione del canale utilizzato per lo studio della convezione mista
8.2.1 Condizioni al contorno sulla supercie d'ingresso
Per quanto riguarda la velocita u si vuole imporre sulla supercie d'ingresso
una condizione di Dirichlet che realizzi, quanto piu accuratamente possibile, il
prolo di velocita completamente sviluppato per un uido in moto in un canale
rettangolare, con una sezione come quella rappresentata in gura 8.3.
E stata quindi utilizzata l'approssimazione della soluzione di tale problema
presentata da Shah e London[22]. Le componenti di velocita trasversali v e w
vengono considerate nulle sulla supercie d'ingresso, mentre per la componente
longitudinale u viene utilizzata la seguente formulazione:
u = m + 1 n + 1 1 , z , b=2 n 1 , y , a=2 m (8.3)
u
m
n
b
a
mean
umean = m n umax
m+1 n+1
(8.4)
Dove m e n sono deniti come:
,1:4
m = 1:7 + 0:5 ab
(8.5)
122
8. Risultati
8
>
>
>
>
<
per ab 31
n=>
(8.6)
>
b
1
b
1
>
>
: 2 + 0:3
a , 3 per a 3
Nelle (8.3) e (8.4), la velocita media umean caratterizza il numero di Reynolds1
cos denito:
H
Re = umean
(8.7)
Considerando le denizioni proposte nel capitolo 3, la velocita media, espressa
in forma adimensionale, risulta quindi data dalla:
2
umean = pRe
Gr
(8.8)
8.2.2 Condizioni al contorno sulla supercie in uscita
In uscita si e adottata la condizione proposta da Orlanski [23] denominata
Monochromatic travelling wave. Alla base di tale condizione al contorno, originariamente formulata per sistemi di equazioni di tipo iperbolico, vi e l'ipotesi
che il moto delle particelle di uido, e quindi delle grandezze termouidodinamiche, a ridosso della supercie d'uscita (volumetto di lunghezza @x), sia
approssimabile con un'onda che viaggia con velocita pari a c:
@' + c @' = 0 per x = lx
@ @x
(8.9)
Nel nostro caso, in anologia con altri autori, si e adottato la relazione semplicata c = umean . Nella (8.9) ' rappresenta una delle grandezze u; v; w e
T . La relazione di Dirichlet,quindi da imporre, considerando la forma discreta
dell'equazione (8.9):
umean ('n , 'n
+1 = 'n
(8.10)
'nm;j;k
m;j;k
m,1;j;k )
m;j;k , x
m
1 Si e scelta tale denizione per Re in accordo con altri autori, sebbene per condotti e
canali il numero di Reynolds e usualmente denito come :
u
D
Re = mean h
dove Dh indica il diametro idraulico[22].
123
8.2. Convezione mista
Per poter utilizzare questa condizione bisogna assicurarsi che questa non alteri
il usso del vettore velocita attraverso la supercie S della cavita. In altre
parole la (8.10) deve garantire la rigorosa conservazione della massa, cioe:
Z
Z
n+1 n
u
^
dS = un n^ dS
S
S
Anche cio accada, e suciente che il usso in uscita sia uguale al usso
costante in ingresso umean Sin . Calcoliamo quindi il usso discreto della componente un+1 (per la vn+1 e la wn+1 il usso e nullo) attraverso la sezione
d'uscita:
XX
+1 z y = X X un z y
unm;j;k
k j
m;j;k k j
k j
,umean x
k j
(unm;j;k , unm,1;j;k )zk yj
XX
m k j
Assumendo il campo di velocita all'istante (n) a divergenza nulla (il usso
entrante e uguale al usso uscente), risulta:
XX
unm;j;k zk yj = umean Sin
k j
XX
k j
(unm;j;k , unm,1;j;k )zk yj = 0
Di conseguenza risulta facile vedere che:
XX
+1 z y = u
unm;j;k
mean Sin
k j
k j
In denitiva la condizione (8.10) puo essere applicata solo nel caso in cui la
procedura di calcolo garantisca il rigoroso rispetto della conservazione della
massa ad ogni istante di tempo (r u = 0). Nel nostro caso, l'utilizzo di un
Fast Poisson Solver diretto, garantisce tale condizione.
8.2.3 Confronto con prove sperimentali
Per vericare l'accuratezza e l'adabilita del codice per la simulazione di
fenomeni convettivi di tipo misto, ci siamo riferiti ai dati sperimentali proposti da K.C.Chiu e F.Rosenberger[24]. Nel loro esperimento viene considerato
124
8. Risultati
un canale rettangolare largo 15:24cm, alto 1:58cm e lungo 87:5cm. Si tratta,
quindi, del tentativo sperimentale di rilevare il moto fra piastre piane parallele.
La dierenza di temperatura tra supercie superiore ed inferiore e mantenuta
costante e pari a T = 24 0:2 . Le condizioni al contorno sulla supercie
d'ingresso sono state create ponendo, prima dell'ingresso nella parte riscaldata
un tratto di condotto con la stessa sezione, lungo 63:5cm ma uniformemente
riscaldato. Questa condizione si discosta da quella utilizzata nel codice di simulazione che non prevede, per ora, tale opportunita.
La simulazione da noi eseguita si riferisce alla parte di canale, piu precisamente i primi 40cm, corrispondenti all'intera lunghezza di sviluppo termico (il
campo di velocita rimane sostanzialmente invariato nella sezione successiva).
Adimensionalizzando secondo la lunghezza di riferimento (H = 1:58cm) abbiamo ottenuto una cavita di dimensioni pari a (25 9:65 1) la quale e stata
discretizzata con una griglia di (126 62 30) volumi niti.
Le caratteristiche del uido in esame (; ; ) e del problema considerato
(H; T ), in accordo con le denizioni gia viste nel capitolo 3, determinano i
seguenti gruppi adimensionali:
Pr = 0:71
Gr = 6884
Per quanto riguarda invece il numero di Reynolds gli autori dell'esperimento,
pur utilizzando la nostra stessa denizione, equazione (8.7), considerano per la
velocita media la seguente denizione:
umean = u1max
:5
(8.11)
umean = u1max
:6
(8.12)
in modo da simulare, come gia detto, un problema indenitamente largo(ly ! 1). Nel nosto caso invece la denizione di velocita media e stata data
in accordo con [22] come visto nella (8.4). Per la sezione d'ingresso considerata
nel problema reale risulta:
Di conseguenza se con Re = 44:8 indichiamo il numero di Reynolds proposto
da Chiu e Rosenberger, il corrispondente numero di Reynolds utilizzato nel
8.2. Convezione mista
125
programma di simulazione e pari a:
Re = Re 11::65 = 42
(8.13)
Proponiamo ora i valori della componente longitudinale della velocita (u) ottenuta con i due metodi, sperimentale e numerico. Si sono considerati i seguenti
proli di velocita:
u(6:33; y; 0:2); u(6:33; y; 0:5)
u(12:66; y; 0:2); u(12:66; y; 0:5)
u(19:00; y; 0:2); u(19:00; y; 0:5)
Di seguito sono presentati i graci rappresentanti questi proli. I dati numerici
sono stati ottenuti eseguendo il codice in forma parallela sul Cray-T3D con 64
processori. L'intera simulazione ha richiesto 6000 passi di tempo per la quale
sono stati necessari 6683 secondi di cpu, con un tempo medio, per passo di
tempo, di circa 1.11 secondi.
E peraltro opportuno osservare che, in accordo con i rilievi sperimentali, la
simulazione numerica ha realizzato condizioni di regime stazionario.
126
8. Risultati
Re = 42; Pr = 0.71; Ra = 4878
z = 0.2; x = 6.33
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
4
5
y
Re = 42; Pr = 0.71; Ra = 4878
z = 0.5; x = 6.33
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
y
4
5
127
8.2. Convezione mista
Re = 42; Pr = 0.71; Ra = 4878
z = 0.2; x = 12.7
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
4
5
y
Re = 42; Pr = 0.71; Ra = 4878
z = 0.5; x = 12.7
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
y
4
5
128
8. Risultati
Re = 42; Pr = 0.71; Ra = 4878
z = 0.2; x = 19
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
4
5
y
Re = 42; Pr = 0.71; Ra = 4878
z = 0.5; x = 19
longitudinal velocity
1.00
0.75
0.50
Experimental
Calculated
0.25
0
1
2
3
4
5
y
Figura 8.4: Confronto fra misure sperimentali e valori calcolati del prolo di
velocita longitudinale per un canale rettangolare. Pr=0.71, Re=42, Ra=4878
8.2. Convezione mista
129
Il confronto con misure sperimentali, ottenute con anemometro laser doppler, e
risultati ottenuti dalla simulazione e quasi sorprendente, considerando il fatto
che la griglia adottata e a malapena suciente a descrivere il complesso campo
di moto. Si puo notare, infatti, che il prolo di velocita sperimentale a dente
di sega, a meta altezza, z = 0:5, per x = 19, e praticamemte sovrapponibile
a quello calcolato, ed indica che il numero e la forma dei vortici longitudinali
stazionari sono stati correttamente riprodotti dalla simulazione.
La forma diversa del prolo in prossimita della supercie orizzontale inferiore, z = 0:2, e anch'essa riprodotta fedelmente dal calcolo, ed e dovuta al fatto
che i vortici longitudinali -Celle di Benard- sono disposti in modo alternato:
celle dispari verso il basso e celle pari verso l'alto.
L'accordo sperimentale-calcolato e buono anche per valori di x intermedi,
x = 12:7, ma e meno soddisfacente per il valore di x inferiore, x = 6:33, come
evidenziato nei due proli per z = 0:2 e z = 0:5. Tale scostamento, tuttavia, e agevolmente attribuibile alle dierenze fra condizioni d'ingresso utilizzate nel calcolo e quelle eettivamente presenti nell'esperimento di K.C.Chiu e
F.Rosenberger [24]; in quest'ultimo caso, infatti, vi e la presenza di un tratto di
canale non riscaldato prima dell'ingresso, che consente, dato il basso valore di
Re, la propagazione di calore (diusione assiale) in direzione opposta a quella
del moto.
8.2.4 Simulazione di diversi regimi di moto
Per questa serie di prove si e simulato un condotto di dimensioni (adimensionali) pari a (10 2 1) utilizzando una mesh di (100 21 21), (100 25 25) e
(120 31 31) rispettivamente per Gr = 5 103 ; 2 104 e 1 105 . Presentiamo,
per ragioni di chiarezza, il campo di temperature e il campo di velocita, per
delle sezioni signicative del canale.
130
8. Risultati
Re=10, Gr=5 103
Figura 8.5: Re=10, Gr=5000, 1500 passi di tempo, = 12:18. Sezione (x; 1; z ).
Figura 8.6: Re=10, Gr=5000, 2500 passi di tempo, = 20:30. Sezione (x; 1; z ).
8.2. Convezione mista
131
Figura 8.7: Re=10, Gr=5000, 4000 passi di tempo, = 32:48. Sezione (x; 1; z ).
132
8. Risultati
Figura 8.8: Re=10, Gr=5000, 15000 passi di tempo, = 121:80. Sezione
(x; 1; z ).
Figura 8.9: Re=10, Gr=5000, 15000 passi di tempo, tempo 121.80. Sezioni
(2; y; z ), (4; y; z ), (6; y; z ), (8; y; z ), (10; y; z ).
8.2. Convezione mista
133
Figura 8.10: Re=10, Gr=5000, 15000 passi di tempo, tempo 121.80. Campo
delle velocita sulla sezione (5; y; z ) .
134
8. Risultati
Re=10, Gr=2 104
Figura 8.11: Re=10, Gr=20000, 6000 passi di tempo, = 90:60. Sezione
(x; 1; z ).
Figura 8.12: Re=10, Gr=20000, 7500 passi di tempo, = 113:25. Sezione
(x; 1; z ).
8.2. Convezione mista
135
Figura 8.13: Re=10, Gr=20000, 9000 passi di tempo, = 135:90. Sezione
(x; 1; z ).
136
8. Risultati
Figura 8.14: Re=10, Gr=20000, 10500 passi di tempo, = 158:55. Sezione
(x; 1; z ).
Figura 8.15: Re=10, Gr=20000, 10500 passi di tempo, = 158:60. Sezioni
(x; 1; z ), (x; 2; z ), (x; 3; z ), (x; 4; z ), (x; 5; z ), (x; 6; z ), (x; 7; z ), (x; 8; z ), (x; 9; z ),
(x; 10; z ).
8.2. Convezione mista
137
Figura 8.16: Re=10, Gr=20000, 10500 passi di tempo, = 158:60. Campo
delle velocita sulla sezione (x; 1; z ).
138
8. Risultati
Re=10, Gr=1 105
Figura 8.17: Re=10, Gr=100000, 11000 passi di tempo, = 138:60. Sezione
(x; 1; z ).
8.2. Convezione mista
139
Figura 8.18: Re=10, Gr=100000, 11000 passi di tempo, = 138:60.
Sezioni (x; 1:25; z ), (x; 2:50; z ), (x; 3:75; z ), (x; 5:0; z ), (x; 6:25; z ), (x; 7:5; z ),
(x; 8:75; z ), (x; 1; z ),.
140
8. Risultati
Figura 8.19: Re=10, Gr=100000, 11000 passi di tempo, = 138:60. Campo
delle velocita sulla sezione (x; y; 0:5).
141
8.2. Convezione mista
Andamento temporale del numero di Nusselt medio
5
Gr =
Gr =
Gr =
Gr =
Nu/Gr
1/4
2
5
1x10
4
2.5x10
4
1x10
3
5x10
1
0.5
0.2
0.1
0
20
40
60
80
100
120
Time
Figura 8.20: Andamento del valore medio del numero di Nusselt, Nu, sulla
supercie calda in funzione del tempo
In gura 8.20 e riportato l'andamento temporale del numero di Nusselt medio,
sulla parete calda, per diversi valori di Gr. Nel graco il numero di Nusselt
e stato scalato con Gr1=4 , e si puo notare che le tracce sono, praticamente,
sovrapposte. Cio e in accordo con le piu note correlazioni sperimentali per il
usso termico in convezione mista per canali orizzontali, usualmente espresse
da relazioni del tipo:
Nu = Cost Gr1=4 Prb
(8.14)
Dall'osservazione delle gure 8.5-8.18, si deduce che, per il valore piu basso
di Grashof, Gr = 5 103 , il campo di moto e stazionario, ed e costituito dalla
142
8. Risultati
sovrapposizione del campo medio di moto e da due vortici longitudinali. E
interessante notare l'assenza, a regime, di onde trasversali, che tuttavia, come
evidenziato dalle gure 8.5, 8.6 e 8.7, sono presenti all'inizio del transitorio.
Nel caso Gr = 2 104 , l'incremento delle forze di galleggiamento provoca
l'insorgere di onde trasversali non stazionarie che si propagano nella stessa
direzione del moto medio. Esse, come evidenziato nelle gure 8.11-8.14, hanno
un carattere ordinato e quasi periodico, e si sovrappongono alla presenza dei
vortici longitudinali (come visibile in gura 8.15). Sempre nelle gure 8.5-8.18,
e visibile la minima inuenza, e quindi la validita, della condizione di Orlanski:
la lunghezza d'onda, infatti, non varia in prossimita dell'uscita.
Inne il caso Gr = 1 105 , illustrato in un generico istante di tempo
nelle gure 8.17 e 8.18, corrisponde a condizioni caotiche, o di incipiente turbolenza (transitional conditions). Dalle gure, infatti, risulta chiara la perdita
del carattere quasi-periodico ottenuto per Gr = 2 104 , poiche ora le onde
trasversali sono molto piu irregolari e ravvicinate, ed assumono la forma distinta di colonne ascendenti (thermals). Nella gura 8.18, inoltre, sono ancora
visibili le perturbazioni di tipo longitudinale, che si presentano anche'esse piu
irregolari.
Per una maggiore comprensione in Appendice B vengono rappresentate
delle visualizzazioni tridimensionali di questi fenomeni.
In conclusione, le pur limitate simulazioni eettuate per tale geometria hanno
consentito di individuare tre diversi regimi di moto: stazionario, quasi periodico e caotico-transizionale. La simulazione diretta, ancora piu interessante ai
ni pratici, per valori di Re e soprattutto Gr maggiori, in condizione quindi di
turbolenza completamente sviluppata, richiede tuttavia la disponibilita di ben
maggiori risorse di calcolo (peraltro richieste al CINECA sul Cray T3D).
I risultati ottenuti sembrano indicare, diversamente dalle simulazioni di
Evans e Greif [25], che, per Gr = 5000, il moto e stazionario, costituito solo
da vortici longitudinali. Tuttavia, la metodologia usata da Evans e Greif e
alquanto diversa da quella da noi sviluppata, sebbene l'ordine di accuratezza
piu elevato e la condizione al contorno in uscita piu realistica della nostra
metodologia, suggeriscono di guardare con un certo sospetto ai risultati da
loro riportati.
Capitolo 9
Conclusioni
Come si e potuto constatare, in questa tesi non e stato trattato un unico argomento in modo omogeneo, ma si e cercato di mostrare alcune delle componenti
interdisciplinari che inevitabilmente sono presenti qualora si cerchi di risolvere
in modo completo il problema che ci si e pressati. Tale interdisciplinarieta
e comune a tutte le discipline raccolte sotto la denominazione piu generale
di Computational Science, e della Fluidodinamica Computazionale (CFD) in
particolare.
La possibilita di utilizzo di un nuovo sistema di supercalcolo come il CrayT3D sarebbe andata sprecata se le sue potenzialita non fossero state usate
nella risoluzione di un preciso ed importante problema sico. Molti sono stati
gli apporti richiesti durante lo svolgimento di questo lavoro, come ad esempio
le innumerevoli conoscenze matematiche necessarie e gli strumenti di visualizzazione scientica che sono stati utilizzati. Inevitabilmente non tutto ha potuto
trovare spazio su queste pagine.
Vogliamo quindi riassumere quelli che sono stati i punti toccati nel corso
di questa tesi e quali i risultati ottenuti. Ricordiamo che per quanto riguarda
la modellizzazione del problema siamo partiti da lavoro di Bandelli [16], dove
sono proposte varie modalita per la soluzione numerica dei fenomeni convettivi.
Il lavoro svolto nella prima parte della tesi puo quindi essere visto come di
modica ed ottimizzazione. Esso puo essere riassunto nei seguenti punti:
1. Utilizzo ed implementazione del metodo dei Volumi Finiti al posto delle
Dierenze Finite. Questo metodo ha permesso una notevole riduzione
143
144
9. Conclusioni
di tutti gli errori introdotti dalle
procedure utilizzate. Portiamo come
R
esempio l'errore di massa cioe v r u dv, che deve essere nullo per uidi incomprimibili: con il metodo delle Dierenze Finite esso risultava
dell'ordine di 10,15 10,16 ma solamente per griglie uniformi, per le
non uniformi peggiorava sensibilmente; con il metodo dei Volumi Finiti
invece abbiamo ridotto l'errore a 10,20 per qualsiasi griglia.
2. Progetto e realizzazione di una procedura per la risoluzione dell'equazione
di Poisson r2 = c. La procedura dierisce da quella adottata precedentemente per un'estrema essibilita nell'uso di griglie non uniformi e delle
condizioni al contorno.
3. Imposizione, sulla supercie d'ingresso, di condizioni al contorno piu realistiche, come il prolo di velocita completamente sviluppato per condotti
rettangolari. Sulla supercie d'uscita invece e stata utilizzata la condizione di Orlanski o Monochromatic travelling wave
Possiamo identicare la seconda fase della tesi come quella dello sviluppo dei
programmi di calcolo e della loro parallelizzazione. Anche qui possiamo ricordare i punti piu importanti:
Il primo passo e stato quello di eettuare il porting del codice su diverse
piattaforme tradizionali di calcolo (Cray-XMP, Cray-C90, Digital Alpha3000, Digital Alpha-7000, SGI, Sun Sparkstation 10) al ne di provarne
il funzionamento e la portabilita.
Dopo la concessione di un Grant da parte del CINECA abbiamo potuto
avviare l'esperienza sul Cray-T3D. L'acquisizione di conoscenze sull'architettura
e sui modelli di programmazione e stata anche notevolmente facilitata dal
CINECA, che ha messo a disposizione degli interessati un corso mirato
all'utilizzo di tale macchina.
Il primo approccio con la programmazione parallela ha evidenziato pecu-
liarita e difetti dei vari modelli implementati dalla Cray per questo tipo
di sistemi paralleli. Vista la tipologia di problemi da noi studiati abbiamo
quindi optato per l'utilizzo dei modelli Work Sharing e Data Parallel al
posto del piu tradizionale PVM.
145
Il codice parallelizzato del Fast Poisson Solver ha mostrato immediata-
mente la potenzialita di questa macchina rispetto ad altri sistemi di Supercalcolo con cui abbiamo eseguito dei confronti (no 6 volte piu veloce
di un Cray-C90 in modalita monoprocessore). Bisogna anche ricordare
che la versione del T3D presente al CINECA e dotata solamente di 64
processori (nodi); noi riteniamo che per un sistema, utilizzato per una
produzione intensiva, siano sicuramente necessari almeno 128-256 nodi.
L'algoritmo per il Fast Poisson Solver, presentando delle strutture particolarmente adatte alla parallelizzazione, ha dimostrato un grado di scalabilita praticamente lineare con il numero dei nodi, facendo presagire degli
ottimi incrementi prestazionali su macchine piu potenti.
Per quanto riguarda l'intero programma di simulazione le prestazioni
globali sono state indubbiamente inferiori a quelle raggiunte dal solo
Poisson Solver; bisogna pero dire che le caratteristiche di scalabilita sono
rimaste pressoche invariate. Questo fa capire che la colpa di cio non
risiede in un errata parallelizzazione ma nella ancora insuciente maturita dell'architettura del Cray-T3D (microprocessore e cache sottodimensionati, compilatori e tool di programmazione appena alle prime versioni,
ecc.).
Pur disponendo di un ridotto tempo di CPU abbiamo potuto constatare come
la potenza di calcolo sia fondamentale per la soluzione numerica di problemi
come quello presentato. Portiamo ad esempio il confronto con i dati sperimentali proposto nel capitolo 8; per fare una verica sull'accuratezza del codice
abbiamo utilizzato nemmeno due ore di Cray-T3D, mentre su una comune piattaforma di calcolo di tipo tradizionale ci sarebbero voluti dei giorni se non
settimane, ammesso di possedere l'enorme quantita di memoria richiesta da
questo tipo di problemi.
La possibilita che ci e stata oerta con l'utilizzo di questo Supercalcolatore,
precursore della prossima generazione, si e dimostrata senza dubbio insostituibile. In nessun altro modo avremmo potuto conoscere e sperimentare le nuove
architetture e le innovative tecniche di programmazione che le gestiscono. Non
bisogna sottovalutare questo aspetto perche, quello che attualmente ci sembra
lo stato dell'arte dei sistemi di elaborazione in futuro non sara che un mezzo di
comune utilizzo nell' arontare problemi sempre piu complessi ed importanti.
Appendice A
Fast Poisson Solver in 3D
In questa appendice viene proposto tutto il procedimento per la risoluzione
dell'equazione di Poisson discretizzata su un dominio tridimensionale, procedimento che seguendo il metodo Matrix Decomposition e simile a quello presentato nel Capitolo 6 per sole due dimensioni ma che presenta una complessita
ben maggiore.
Equazione di Poisson:
r2 = r u
L'equazione e denita su un dominio trimensionale , costituito da un parallelepipedo di lati di lunghezza arbitraria:
(x; y; z) x 2 [0; lx ]; y 2 [0; ly ]; z 2 [0; lz ]
Le condizioni al contorno su sono costituite dalla condizione di Neumann:
@ = 0
@n
Questa condizione implica che la soluzione e denita a meno di una costante
arbitraria, e la condizione di risolvibilita e data dalla:
Z
c dS = 0
Integriamo sul volume di controllo:
Z
Z
r2 = r u dS
v:c:
v:c:
146
147
Applichiamo il teorema della divergenza:
Z
s:c:
Per semplicita poniamo:
Z
s:c:
Z
r n^ dS =
rhs =
s:c:
Z
s:c:
u n^ dS
u n^ dS
@ j ] dy dz +
[ @
j
,
E
@x
@x W
Z
s:c:
Z
s:c:
@
[ @
@y jS , @y jN ] dx dz +
@ j ] dx dy = rhs
[ @
j
,
T
@z
@z B
Approssimiamo le derivate sulle superci con delle dierenze nite centrali:
@ j ' i+1;j;k , i;j;k
xi+1 +xi
@x E
2
@ j ' i;j +1;k , i;j;k
yj +1 +yj
@y S
2
@ j ' i;j;k+1 , i;j;k
zk+1 +zk
@z T
2
@ j ' i;j;k , i,1;j;k
xi +xi,1
@x W
2
@ j ' i;j;k , i;j,1;k
yj +yj ,1
@y N
2
@ j ' i;j;k , i;j;k,1
zk +zk,1
@z B
2
Deniamo i coecienti:
x+i = x 2+ x ;
i+1
i
x,i = x +2x ;
i
i,1
xi = ,x+i , x,i
yj+ = y 2+ y ;
j +1
j
yj, = y +2y ;
j
j ,1
yj = ,yj+ , yj,
zk+ = z 2+ z ;
k+1
k
zk, = z +2z ;
k
k,1
zk = ,zk+ , zk,
148
A. Fast Poisson Solver in 3D
Per il generico volume di controllo v:c:(i; j ) discretizziamo quindi i due termini
dell'equazione:
-usso del vettore u attraverso la superce s:c: del volume di controllo v:c:(i:j ).
Z
s:c:
u n^ dS ' [ui;j;k , ui,1;j;k ]yj zk +
[vi;j;k , vi;j ,1;k ]xi zk +
[wi;j;k , wi;j;k,1]xi yj = rhsi;j;k
-integrando la derivata parziale di attraverso la superce s:c: del volume di
controllo v:c:(i; j ) si ottiene.
[x,i i,1;j;k + xi i;j;k + x+i i+1;j;k ]yj zk +
[yj, i;j ,1;k + yj i;j;k + yj+ i;j +1;k ]xi zk +
[zk, i;j;k,1 + zk i;j;k + zk+ i;j;k+1]xi yj = rhsi;j;k
x,i yj zk i,1;j;k + yj,xizk i;j ,1;k + zk, xi yj i;j;k,1 +
[xi yj zk + yj xi zk + zk xi yj ]i;j;k + (A.1)
+
zk xiyj i;j;k+1 + yj+ xizk i;j+1;k + x+i yj zk i+1;j;k = rhsi;j;k
L'equazione (A.1) e la generica associata ad un punto interno al dominio ,
vediamo cosa succede per i punti al contorno sulle superci z = 0; z = lz .
Per il contorno z = 0 applicando le condizioni al contorno,
@ j ' i;j;1 , i;j;0 = 0 =) = 8i; j
i;j;0
i;j;1
z1 +z0
@z 0
2
x,i yj z1i,1;j;1 + yj,xiz1 i;j,1;1+ +
[xi yj z1 + yj xi z1 + (z1 + z1, )xi yj ]i;j;1 +
z1+ xiyj i;j;2 + yj+ xi z1 i;j +1;1 + x+i yj z1 i+1;j;1 = rhsi;j;1
149
Per il contorno z = lz applicando le condizioni al contorno,
@ j ' i;j;p+1 , i;j;p = 0 =) i;j;p+1 = i;j;p 8i; j
zp+1 +zp
@z lz
2
x,i yj zpi,1;j;p + yj,xi zpi;j,1;p + zp, xiyj i;j;p,1 +
[xi yj zp + yj xi zp + (zp + zp+ )xi yj ]i;j;p +
yj+xi zp i;j +1;p + x+i yj zpi+1;j;p = rhsi;j;p
Scriviamo ora per dei generici (i; j ) il sistema di equazioni in forma matriciale
introducendo le seguenti matrici:
2
z1
6
...
6
6
6
Z = 66
zk
...
6
4
2
A=
6
6
6
6
6
6
6
4
(z1 + z1, ) z1+
... ... ...
3
zp
7
7
7
7
7
7
7
5
3
zk, zk zk+
... ... ...
zp, (zp + zp+ )
Deniamo inoltre:
2
6
6
6
6
6
6
6
4
(A.2)
i;j;1
..
.
i;j; = i;j;k
..
.
i;j;p
3
2
7
7
7
7
7
7
7
5
6
6
6
6
6
6
6
4
rhsi;j;1
..
.
rhsi;j; = rhsi;j;k
..
.
rhsi;j;p
7
7
7
7
7
7
7
5
(A.3)
3
7
7
7
7
7
7
7
5
(A.4)
Otteniamo quindi il sistema compatto valido per 1 < i < m, 1 < j < n e 8k:
8
>
x,i yj Zi,1;j; + yj, xiZi;j ,1; +
<
[xi yj A + xi yj Z + yj xi Z]i;j; +
(A.5)
>
:
yj+xiZi;j +1; + x+i yj Zi+1;j; = rhsi;j; 1 < j < n; 1 < i < m
150
A. Fast Poisson Solver in 3D
Bisogna ora considerare le condizioni al contorno in direzione y:
@ j ' i;1;k , i;0;k = 0 =) = i;1;k
i;0;k 8i; k
y1 +y0
@y 0
2
@ j ' i;n+1;k , i;n;k = 0 =) i;n+1;k = i;n;k 8i; k
yn+1 +yn
@y ly
2
che sostituite nella (A.5) compongono il seguente sistema globale:
8
>
x,i y1Zi,1;1; +
>
>
>
>
[xi y1A + xi y1 Z + (y1 + y1, )xi Z]i;1; +
>
>
>
>
>
y1+xiZi;2; + x+i y1Zi+1;1; = rhsi;1;
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
:
x,i yj Zi,1;j; + yj,xi Zi;j,1; +
[xi yj A + xi yj Z + yj xi Z]i;j; +
yj+ xiZi;j +1; + x+i yj Zi+1;j; = rhsi;j; 1 < j < n; 1 < i < m
x,i yn Zi,1;n; + yn,xiZi;n,1; +
[xi ynA + xi ynZ + (yn + yn+)xi Z]i;n; +
x+i ynZi+1;n; = rhsi;n;
Moltiplichiamo m.a.m per Z,1 :
8
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
:
j = 1; 1 < i < m
j = n; 1 < i < m
x,i y1 Ii,1;1; +
[xi y1Z,1 A + xi y1 I + (y1 + y1, )xi I]i;1; +
y1+ xiIi;2; + x+i y1 Ii+1;1; = Z,1rhsi;1;
j = 1; 1 < i < m
x,i yj Ii,1;j; + yj,xiIi;j ,1; +
[xi yj Z,1 A + xi yj I + yj xiI]i;j; +
yj+ xiIi;j+1; + x+i yj Ii+1;j; = Z,1 rhsi;j; 1 < j < n; 1 < i < m
x,i ynIi,1;n; + yn, xi Ii;n,1; +
,
1
[xi ynZ A + xi ynI + (yn + yn+ )xi I]i;n; +
x+i ynIi+1;n; =
Diagonalizzazione della matrice Z,1 A :
U,1 Z,1AU = Z,1rhsi;n;
j = n; 1 < i < m
(A.6)
151
ei;j; = U,1 i;j; ;
8
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
:
,1 ,1
g
rhs
i;j; = U Z rhsi;j;
x,i y1Iei,1;1; +
[xi y1 + xi y1 I + (y1 + y1, )xi I]ei;1; +
g
y1+xiIei;2; + x+i y1Iei+1;1; = rhs
i;1;
(A.7)
j = 1; 1 < i < m
x,i yj Iei,1;j; + yj,xi Iei;j,1; +
[xi yj + xi yj I + yj xi I]ei;j; +
g
yj+ xiIei;j+1; + x+i yj Iei+1;j; = rhs
i;j; 1 < j < n; 1 < i < m
x,i ynIei,1;n; + yn,xiIei;n,1; +
[xi yn + xi ynI + (yn + yn+ )xi I]ei;n; +
g
x+i ynIei+1;n; = rhs
i;n;
j = n; 1 < i < m
Scriviamo ora le equazioni associate a ciascun autovalore k , ottenendo k sistemi lineari indipendenti:
8
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
:
x,i y1ei,1;1;k +
[xi y1 k + xi y1 + (y1 + y1, )xi ]ei;1;k +
g
y1+xi ei;2;k + x+i y1ei+1;1;k = rhs
i;1;k
j = 1; 1 < i < m
x,i yj ei,1;j;k + yj,xiei;j,1;k +
[xi yj k + xi yj + yj xi ]ei;j;k +
g
yj+xiei;j+1;k + x+i yj ei+1;j;k = rhs
i;j;k 1 < j < n; 1 < i < m
x,i ynei,1;n;k + yn, xi ei;n,1;k +
[xi ynk + xi yn + (yn + yn+)xi ]ei;n;k +
g
x+i yn ei+1;n;k = rhs
i;n;k
j = n; 1 < i < m
Il sistema puo essere scritto in modo piu compatto introducendo le seguenti
152
A. Fast Poisson Solver in 3D
matrici:
2
Y =
6
6
6
6
6
6
6
4
2
Rk =
6
6
6
6
6
6
6
4
y1
3
...
yj
...
y1 k + (y1, + y1 ) y1+
... ...
yn
7
7
7
7
7
7
7
5
(A.8)
3
...
7
7
7
7
7
7
7
5
yj, yj k + yj yj+
(A.9)
...
... ...
yn, ynk + (yn+ + yn)
Il sistema che si ottiene vale per 1 < i < m e 8j; k e risulta:
g
x,i Yei,1;;k + [xiRk + xi Y]ei;;k + x+i Yei+1;;k = rhs
i;;k (A.10)
Considerando le condizioni al contorno nella direzione x:
@ j ' 1;j;k , 0;j;k = 0 =) = 1;j;k
0;j;k 8j; k
x1 +x0
@x 0
2
@ j ' m+1;j;k , m;j;k = 0 =) m+1;j;k = m;j;k 8j; k
xm+1 +xm
@x lx
2
che sostituite nella (A.10) compongono i seguenti k sistemi lineari indipendenti:
8
>
<
g
[x1 Rk + (x,1 + x1 )Y]e1;;k + x+1 Ye2;;k = rhs
1;;k
,
+
e
e
e
g
x
Y
+
[
x
R
+
x
Y
]
+
x
Y
=
rhs
i
i
i
,
1
;
;k
k
i;
;k
i
+1
;
;k
i;
;k
i
i
>
: ,
+
e
e
g
xm Ym,1;;k + [xm Rk + (xm + xm )Y ]m;;k
= rhsm;;k
Moltiplichiamo m.a.m per Y,1 :
8
>
<
>
:
[x1 Y,1Rk + (x,1 + x1 )I]e1;;k +
,
xi Iei,1;;k +
[xi Y,1 Rk + xi I]ei;;k +
x,m Iem,1;;k + [xmY,1Rk + (x+m + xm )I]em;;k
I
x+1 e2;;k
+
xi ei+1;;k
I
g
= Y,1 rhs
1;;k
,
1
g
= Y rhs
i;;k
g
= Y,1 rhs
m;;k
153
Diagonalizziamo la matrice Y,1Rk :
S,k 1Y,1Rk Sk = k
bi;;k = S,k 1ei;;k ;
2
1;k
k =
6
6
6
6
6
6
6
4
...
(A.11)
,1
,1 g i;;k
d
rhs
i;;k = Sk Y rhs
(A.12)
3
j;k
...
n;k
7
7
7
7
7
7
7
5
(A.13)
8
>
<
d
[x1 k + (x,1 + x1 )I]b1;;k + x+1 Ib2;;k = rhs
1;;k
, Ibi,1;;k +
+ Ib
b
d
x
[
x
+
x
I
]
+
x
=
rhs
i
i
k
i;
;k
i
+1
;
;k
i;;k
i
i
>
: , b
+
b
d
xm Im,1;;k + [xm k + (xm + xm )I]m;;k
= rhsm;;k
Consideriamo quindi solo le equazioni caratterizzate da j;k :
8
>
<
d
[x1 j;k + (x,1 + x1 )]b1;j;k + x+1 b2;j;k = rhs
1;j;k
, bi,1;j;k +
+ b
b
d
x
[
x
+
x
]
+
x
=
rhs
i
i
j;k
i;j;k
i
+1
;j;k
i;j;k
i
i
>
: ,b
+
b
d
xm m,1;j;k + [xm j;k + (xm + xm )]m;j;k
= rhsm;j;k
Il problema si riduce quindi alla risoluzione di (n p) sistemi lineari tridiagonali
indipendenti:
d
Tj;kb;j;k = rhs
(A.14)
;j;k
dove Tj;k risulta essere del tipo:
2
3
x1 j;k + (x,1 + x1 ) x+1
6
7
... ...
...
6
7
6
7
6
7
,
+
Tj;k = 66
xi xi j;k + xi xi
7(A.15)
7
.
.
.
6
7
..
.. ..
4
5
x,m xm j;k + (x+m + xm )
L'algoritmo per la risoluzione dell'equazione di Poisson discretizzata e costituito da due fasi:
154
A. Fast Poisson Solver in 3D
La prefattorizzazione consiste in:
1. Costruire le matrici (A.2) e (A.3).
2. Soluzione del problema degli autovalori (A.6).
3. Costruire le matrici (A.8) e (A.9).
4. Soluzione del problema degli autovalori (A.11).
La risoluzione consiste invece in:
g.
1. Eseguire il prodotto matrice per vettore (A.7) per ottenere rhs
d.
2. Eseguire il prodotto matrice per vettore (A.12) per ottenere rhs
3. Risolvere gli n p sistemi lineari tridiagonali della (A.15) ottenendo
b.
4. Eseguire il prodotto matrice per vettore (A.12) per ottenere e.
5. Eseguire il prodotto matrice per vettore (A.7) per ottenere .
Bibliograa
[1] M.J. Quinn, Designing Ecient Alghorithms for Parallel Computers,
McGrow-Hill international Editions, pag. 18-20, 1987.
[2] M.J. Flynn, Very High Speed Computing Systems, Proceedings of the
IEEE, 54, pp. 1901-1909, 12-Dec-1966.
[3] A.J. Smits, The Interplay Between Experiments and Computation in the
Study of Turbulance, Experimental Thermal and Fluid Science, 5:579-585,
1992.
[4] P.A. Rigsbee, PVM Message-Passing Library Interface, Cray Research
Inc., Draft Version 6.0, 9-July-1993.
[5] D.M. Pase, T. MacDonald, A. Meltzer, MPP Fortran Programming
Model, Cray Research Inc., 29-March-1994.
[6] G.Erbacci, G.Paruolo, Introduzione alla Programmazione Parallela su
Cray T3D, Gruppo Supercalcolo, CINECA, Centro di Calcolo Interuniversitari, 1994.
[7] F.P. Incropera, A.L. Knox, Mixed convection ow and heat transfer in
the entry region of horizontal rectangular duct, Trans. ASME J. Heat
Transfer, 9:434-439, May 1987.
[8] S. Biringen, A.Hauser, Calculation of Two-Dimensional Shear-Driven cavity ows at High Reynolds Numbers, International Journal for Numerical
Methods in Fluids, vol.14,1087-1109(1992).
[9] B.A. Finlayson, The Method of Weighted Residuals and Variational Principles, Academic, 1972.
155
156
BIBLIOGRAFIA
[10] S.V. Patankar, Numerical Heat Transfer and Fluid Flow, McGrow-Hill
Book Company,1980.
[11] C.A.J. Fletcher, Computational Techniques for Fluid Dynamics, SpringerVerlag, 1990.
[12] P.M. Gresho, R. Sani, On pressure boundary conditions for the incompressible Navier Stokes equations, Int.j.numer.methods uids,7:1111,1987.
[13] A.Chorin, Numerical Solution of the Navier-Stokes Equations,
Math.Comput., 22:754,1969.
[14] A.Chorin, On the Convergence of Discrete Aproximations of the NavierStokes Equations, Math.Comput., 23:341,1969.
[15] P.M. Gresho, On the theory of semi-implicit projection methods for viscous incompressible ow and its implementation via nite element method
that also introduces a nearly consistent mass matrix. Part 1: theory,
Int.j.numer.methods uids, 11:578-620,1990.
[16] D. Bandelli, Metodi Time-Splitting e Projection in termouidodinamica:
Simulazione numerica e visualizzazione in problemi tridimensionali non
stazionari, Universita degli studi di Trieste, A.A. 1993/94.
[17] Buzbee, G.H Golub C.W. Nielson, On direct methods for Solving Poisson's
Equation, SIAM J.Numer.Anal.,Vol.7,No. 4, 1970.
[18] Babu, S.A. Korpela, On the Direct Solution of Poisson's Equation on
Non-uniform Grid, J. Computational Physics, Vol.104, 93-98,1993.
[19] A. Huser, S. Biringen, Calculation of Two-dimensional Shear-driven Cavity Flows at High Reynolds Numbers, International J. for Num. Methods
in Fluids, Vol.14, 1087-1109, 1992.
[20] R.J.A.Janssen, R.A.W.M.Henks and C.J. Hoogendoorn, Transition to
time-periodicity of a natural-convection ow in a 3D dierentially heated
cavity, Int.J.Heat Mass Transfer, Vol.36, No.11, pp.2927-2940,1993.
[21] T.Fusegi, J.M.Hyun and K.Kuwahara, Three-dimensional numerical simulation of periodic natural convection in a dierentially heated cubical
enclosure, Appl.Sci.Res., 49(3),271-282,1992.
BIBLIOGRAFIA
157
[22] R.K.Shah, A.L.London, Laminar Flow Forced Convection in Ducts, Academic Press,1978.
[23] I.Orlanski, A Simple Boundary Condition for Unbounded Hyperbolic
Flows, J.Comput.Phys., 21,251-269,1976.
[24] K.C.Chiu, F.Rosenberger, Mixed Convection Between Horizontal PlatesI. Entrance Eects, Int.J.Heat Mass Transfer, Vol.30, No.8, pp.16451654,1987.
[25] G.Evans, R.Greif, Unsteady three-dimensional mixed convection in a
heated horizontal channel with applications to chemical vapor deposition,
Int.J.Heat Mass Transfer, Vol.34, No.8, pp.2039-2051,1991.