10. luento

Transcription

10. luento
261
10 Virtaussimulointiympäristön
vaatimukset
Jotta virtaussimulointia olisi mielekästä lähteä tekemään, on ensin luotava edellytykset kunnollisten simulaatioiden tekemiseksi. Tämä on käsitettävä monelta kannalta, sillä pelkästään riittävän suuren tietokoneen ja ’maailman johtavan ohjelmiston’ hankkiminen eivät täytä tätä määritelmää. On ajateltava myös esi- ja jälkikäsittelyn mukanaan tuomia vaatimuksia, eikä suinkaan pidä väheksyä asiantuntemuksen hankkimista. Parhaatkin laitteistot ja ohjelmistot ovat hyödyttömiä, ellei ole
käsitystä siitä mitä ja miten niillä voidaan tehdä. Laitteistojen käsittely oppimateriaalissa on hyvin hankalaa, koska tilanne muuttuu koko ajan ja varhaisempi teksti alkaa nopeasti vaikuttaa vanhanaikaiselta. Seuraavassa tarkastellaan kuitenkin lyhyesti erilaisia virtauslaskijan tarvitsemia apuvälineitä. Myös niiden historiasta saadaan ehkä jonkinlainen käsitys tekstissä säilytettyjen vanhentuneiden esimerkkien
avulla.
10.1 Tietokoneet
Mikrotietokoneiden kapasiteetin valtaisa kasvu viimeisen 20 vuoden aikana on tuonut virtaussimuloinnin vaatiman laskentakapasiteetin tavallisiin pöytätietokoneisiin.
Tietokoneiden jako käyttötarkoituksen mukaan on vaihdellut niiden historian aikana. Eräät termit kuten ’minitietokone’ ovat jo kadonneet kielenkäytöstä. 1990-luvun
alussa oli tapana ryhmitellä tietokoneet karkeasti neljään ryhmään:
I: Mikrotietokoneet (PC, Mac)
II: Työasemat (Sun, IBM, SGI jne.)
III: Yhteiskäyttöön ajatellut suurkoneet eli ns. mainframe koneet
10.1. TIETOKONEET
262
IV: Supertietokoneet
Näistä mikrot olivat henkilökohtaisia tietokoneita, joilla otettiin pääteyhteys keskuskoneeseen tai työasemaan, jolla varsinainen laskenta oli määrä tehdä. Tulosten
raportointi ja mahdollisesti osa esi- ja jälkikäsittelystä tehtiin tuolloin enimmäkseen
tämän ryhmän koneilla. Mikrotietokoneluokka jakaantui edelleen IBM:n aikoinaan
julkistamaan PC-arkkitehtuuriin ja Applen MacIntosh-koneisiin.
Työasemat olivat erityisesti vaativaan graafiseen työskentelyyn ja mahdollisesti
ohjelmiston kehitykseen käytettyjä laitteita. 1990-luvun alkupuolella työasemat olivat enimmäkseen työryhmäkohtaisia yhteiskäytössä olevia laitteistoja. Ne erosivat
mikrotietokoneista myös prosessorin rakenteen vuoksi, koska niissä käytettiin 64bittistä ns. RISC-arkkitehtuuria (Reduced Instruction Set Computer). Mikrotietokoneissa taas käytettiin CISC-arkkitehtuuria (Complex Instruction Set Computer),
joka perinteisesti oli 32-bittinen (IA-32 -arkkitehtuuri), mutta nykyisin sekin on 64bittinen (esimerkiksi ’Intel 64 Architecture’). Myös käyttöjärjestelmät olivat erilaisia, työasemakoneilla UNIX, mikrotietokoneilla Windows. Itanium-prosessorien
arkkitehtuuria kutsutaan nimellä IA-64 ja se luotiin aikoinaan vastineeksi RISCprosessoreille. Nykyaikaiset CISC-prosessorit pilkkovat käskyjä lyhyemmiksi, kun
taas RISC-prosessoreissa on hyödynnetty CISC-prosessoreiden piirteitä. Erot ovat
siten vähenemässä.
Suurkoneet olivat tyypillisesti isojen organisaatioiden omaan käyttöön hankittuja numeronmurskausvälineitä, joiden tehtävä oli olla nopeita liukulukulaskennassa. Tällaiseen suurkoneeseen saattoi olla integroituna sen ajan mittapuun mukaan
poikkeuksellisen tehokas visualisointilaitteisto tai sellainen asennettiin välittömästi
itse suurkoneen yhteyteen. Joka tapauksessa kokonaisuus muodosti laitteiston, jota
käytettiin isoissa organisaatioissa. Esimerkkinä voidaan mainita TKK:n IBM 3090,
jolla FINFLO-ohjelmankin kehitys aikoinaan aloitettiin. Suurkoneissa oli yleensä
laitteistovalmistajien oma käyttöjärjestelmä, esimerkiksi IBM:ssä VM/SP.
Supertietokoneiden aika alkaa vuodesta 1976, jolloin esiteltiin ensimmäinen
vektorointiin perustuva tietokone Cray-1S. Termiä käytetään edelleen, mutta sen
merkitys on nykyisin erilainen. Tehokkaimmat koneet julkaistaan maailman 500
kärjessä -listalla. Superkoneet oli ja on yhä kaikkein nopeimpien koneiden luokka,
joka on olemassa vain ja ainoastaan massiivisten numeeristen ongelmien ratkomista varten. Tällaisia laitteistoja ei Suomen kokoisessa maassa yleensä ole yhtä tai
kahta useampaa samanaikaisesti ja niitä käsitellään yleensä kansallisina resurssei-
10.1. TIETOKONEET
263
na. Tällainen laitteisto oli vuonna 2000 CSC:n Cray-T3E superkone, jossa oli 512
prosessoria. Myös 128-prosessorinen SGI Origin-2000-kone voitiin silloin luokitella superkoneeksi. Nykyisin superkoneiden nopeus on luokkaa TFlop/s sekunnissa.
Koneita käytetään biotieteiden, fysiikan, kemian ja insinööritieteiden laskentatehtäviin. Ilmatieteen laitoksen ensimmäinen superkone oli vuonna 2006 hankittu 304prosessorinen SGI Altix, joka sekin jonkin aikaa viivähti 500 kärjessä -listalla. Supertietokoneiden kohtalona on pudota listalta varsin nopeasti. Maaliskuussa 2013
CSC:n uusi Kajaaniin sijoitettu Cray XC30 laitteisto (’Sisu’) koostuu 11 776:sta
laskentaytimestä. Prosessorina on Intel Xeon 2,6 GHz E5–2670. Vuonna 2014 laitteistoa laajennetaan. CSC:llä on myös lähes samantasoinen HP supercluster (’Taito’), jossa on aluksi 9215 laskentaydintä.
Supertietokoneiden käyttöjärjestelmä oli aikaisemmin yleensä Unix-pohjainen,
nykyisin se on lähes aina jokin Linux-versio. Varhaisissa supertietokoneissa käytettiin vektoriprosessoreita, jotka edellyttivät ohjelmakoodilta vektoroituvuutta. Nykyisin supertietokoneet ovat rinnakkaiskoneita, jotka puolestaan edellyttävät ohjelman rinnakkaistamista. Kalleimmat supertietokoneet saattavat edelleen koostua rinnakkaisista vektoriprosessoreista, kun taas esimerkiksi Suomessa käytössä olevat
laitteet perustuvat lähes samaan arkkitehtuuriin kuin henkilökohtaiset työasematkin. Oleellinen ero tulee prosessorien liittämisestä yhteen nopean kytkentäväylän
avulla.
Tietokoneiden tehon kasvuun liittyy useita tekijöitä. Usein viitataan Mooren lakiin, joka koskee mikropiirien sisältämän transistorimäärän kehitystä. Lain mukaan
samalla hinnalla tehdyn piirin transistorimäärä kaksinkertaistuu puolessatoista vuodessa. Transistorimäärä ei ole suoraan verrannollinen laskentatehoon, mutta yleisesti ajatellaan tietokoneiden kapasiteetin kaksinkertaistuvan likimain samassa ajassa.
’Kapasiteetti’ tarkoittaa myös keskus- ja levymuistin määrää, joiden on oltava riittäviä, kun lasketaan entistä suurempia tehtäviä.
Prosessoritehon jatkuva kehitys ja siitä seuraava laskentatehon hinnan aleneminen on johtanut kolmen ensin mainitun tietokoneryhmän välisten rajojen hämärtymiseen. Nykypäivän halvimmatkin mikrot ovat selvästi tehokkaampia kuin 1990luvun alun järeimmät supertietokoneet. Erot muodostuvatkin lähinnä prosessoreiden määrästä ja väyläratkaisujen nopeudesta. Kehitys on siten johtanut tilanteeseen,
jossa yllä esitetyn listan mukainen luokittelu on miltei mahdotonta. Henkilökohtaiset tietokoneet kuuluvat nykyisin perinteiseen työasema-kategoriaan, vaikka ne ovat
ns. PC-koneita. Työasema-nimikettä käytetäänkin nykyisin kaikista hyötykäytössä
10.2. PROSESSORIT
264
olevista koneista. Erot tulevat siitä, mikä käyttöjärjestelmä niihin asennetaan ja millaiset oheislaitteet niihin hankitaan.
10.2 Prosessorit
Edellä mainittiin RISC-, CISC- ja vektoriprosessorit. Nämä termit ovat vielä toistaiseksi olemassa, mutta prosessoreissakin muut ominaisuudet ovat tulossa tärkeämmiksi ja raja-aidat ovat osittain katomassa. Maailman nopeimpien koneiden joukossa on vielä muutama perinteinen vektoritietokone. Nämä ovat japanilaisia ja hyvin
kalliita. Konetyypille on ominaista se, että koodin vektoroinnista tuleva hyöty (nopeuden lisäys) voi olla monikymmenkertainen verrattuna skalaarilaskentaan. Craytietokoneet kuuluivat aiemmin tähän kategoriaan, mutta nykyisin niissäkin käytetään Intelin tai AMD:n prosessoreita.
Vektorointi on nykyisin lisäominaisuutena tavallisissa mikroprosessoreissa, mutta niissä vain melko lyhyet silmukat vektoroidaan. Toisaalta yksittäisten prosessoreiden laskentanopeudet ovat kasvaneet hyvin suuriksi. Aikaisemmin tämä tapahtui
lähinnä kellotaajuuden kasvun myötä, nykyisin nopeuden kasvu perustuu rinnakkaislaskentaan. Laskentanopeuden kasvu ja hyvin tehokkaat näytönohjaimet ovat
pudottaneet kalliit RISC-koneet lähes kokonaan markkinoilta. Niiden valmistajat
ovat siirtyneet tai siirtymässä Intelin tai AMD:n prosessoreihin. Merkittäviä RISCprosessoreita ovat (v. 2013) IBM:n Power ja Sunin Sparc.
Kaikki prosessorit suorittavat useita liukulukuoperaatiota sekunnissa. Prosessorin kannalta oikeastaan tyyppiä
y =a∗x+b
(10.1)
olevaa toimitusta vastaa yksi liukulukuoperaatio. Prosessorien laskentanopeuteen
vaikuttaa tehtyjen liukulukuoperaatioiden lukumäärä kellojaksoa kohden, mikä on
otettava huomioon valinnassa.
Perinteinen RISC-koneiden etu oli 64-bittisyys. Ennen suurin osa tietokoneista
oli 32-bittisiä, jolloin niiden osoiteavaruus oli maksimissaan neljä gigatavua. Tämä
ei ole enää suuri muistikoko virtauslaskennassa ja siksi entinen rajoitus oli suuri haitta virtauslaskennassa. Intelillä on 32- ja 64-bittiset arkkitehtuurit (IA-32 ja
IA-64), joita vastaavat prosessorit ovat Pentium ja Itanium2. Näistä viimeksi mainittua käytetään jonkin verran nykyisissä supertietokoneissa. Itanium2-koneet ovat
10.2. PROSESSORIT
265
kuitenkin huomattavasti kalliimpia kuin IA-32 arkkitehtuurin Pentium ja siitä moniprosessorilaskentaan kehitetty Xeon. Tavallisiin pöytäkoneisiin on puolestaan tarkoitettu AMD64-arkkitehtuuri, joka on nyt yleistynyt myös työasemakäyttöön tarkoitetuissa koneissa ja supertietokoneissa. Intel toi markkinoille pian AMD64:n jälkeen Em64T-nimellä kulkevan laajennuksen Pentium- ja Xeon-prosessoreihin. Kun
nykyään on käytössä 64-bittinen arkkitehtuuri, muistin teoreettinen yläraja on kadonnut, mutta säilyy fyysisesti riippuen muistipaikkojen määrästä ja muistikampojen koosta. Pöytäkoneeseen saa tällä hetkellä (v. 2011) ainakin 64 gigatavun muistin, mikä riittää varsin pitkälle sekä laskennassa että mahdollisesti vielä suurempien
superkoneella laskettujen tehtävien jälkikäsittelyssä.
Prosessorit on siis perinteisesti jaettu seuraavasti:
I: Vektoriprosessorit (Nec)
II: RISC-prosessorit (Power, Sparc)
III: CISC-prosessorit (Pentium, Xeon, Itanium2, AMD)
Tämä lista saattaa olla virtauslaskijan kannalta muuttumassa. GPU (Graphics
Processing Unit) eli grafiikkaprosessori tarjoaa mahdollisuuden saavuttaa suuri laskentanopeus halvalla hinnalla. Grafiikkaprosessoreita varten ei ole juuri ollut saatavilla kääntäjiä, esimerkki näistä on Nvidian CUDA Fortran kääntäjä. Ansys julkisti
11.4.2014 uutisen, jonka mukaan Fluent 15.0 ohjelma pystyy hyödyntämään Nvidian grafiikkaprosessoreita. Intelin vastine Nvidialle on Xeon Phi -prosessori, joka
on suunniteltu superkoneiden lisäksi työasemiin sopivaksi. Xeon Phi -prosessorissa
on 64 ydintä ja sen huipputeho on noin 1 TFlops. Xeon Phi on ollut käytössä 2013
lähtien käytössä grafiikkaprosessorien ohella CSC:n Bull-tietokoneessa.
Kuten edellä todettiin, CISC- ja RISC-prosessoreidenkin erot ovat niiden sisäisessä rakenteessa pienenemässä. Jatkossa kaikki ovat 64-bittisiä. Eroja on väylänopeuksissa ja ns. välimuistien koossa. Välimuistia on yleensä monella eri tasolla.
Ykköstason (Level 1) välimuisti löytyy suoraan prosessorin sisältä ja sitä on yleensä erikseen käskykannalle ja datalle suurusluokkaa 10-100 kilotavua. Kakkostason
(Level 2) välimuisti saattaa löytyä edelleen prosessorin kanssa samalta piiriltä mutta ei ole varsinaisesti enää suoraan prosessorin sisällä. Sen määrä on yleensä 1-2
megatavua. Itanium2-prosessorissa on myös kolmannen (Level 3) tason välimuistia
ennen varsinaista muistia. Itanium2:ssa kolmannen tason välimuisti on integroitu
prosessoriin, yleensä kolmannen tason muisti, jos sitä on, löytyy emolevyltä.
10.3. RINNAKKAISLASKENTA
266
Laskentakoodin nopeuteen vaikuttaa myös kääntäjä ja sen suorittama optimointi. Esimerkiksi Fortran90-kielen eri versioita niiden myyjät kehuvat kilvan nopeimmiksi. Kokemuksen mukaan koneen nopeutta on vaikea arvioida sen suoritusarvojen perusteella virtauslaskentasovelluksessa. Nopeus on yksinkertaisesti pakko kokeilla ja erikokoiset tehtävät saattavat vielä toimia varsin eri nopeudella. Suuri laskentanopeuteen vaikuttava tekijä on edelleen kellotaajuus. Virtausratkaisijat rinnakkaistuvat yleensä hyvin, joten laskentaytimien lukumäärää kasvattamalla saadaan
nopeus moninkertaiseksi. Periaatteessa kahden ytimen prosessorin voisi kuvitella
jopa kaksinkertaistavan laskentanopeuden, mutta nopeuden kasvu hidastuu ytimien
lukumäärän kasvaessa. Vain hyvin rinnakkaistuvassa tilanteessa kannattaa ytimien
lukumäärää kasvattaa useisiin satoihin. Usein järkevämpi tapa on ajaa useita simulaatioita rinnan.
Koneen valinta ei siis ole helppo ja yksikäsitteinen tehtävä, siihen palataan vielä kohdassa 10.10. Jos on mahdollista kokeilla erilaisia koneita, valinta on tietenkin
helpompaa. Tässä yhteydessä on syytä korostaa, että eri prosessoreilla on erilaisia ominaisuuksia. Virtauslaskijalle Xeon on yleinen valinta, koska se mahdollistaa
moniprosessoroinnin samassa koneessa. Erään vanhentuneen testin mukaan pienissä tehtävissä Xeon oli Pentiumia hitaampi, mutta suurissa tilanne oli päinvastainen.
Prosessorit saavuttavat tyypillisesti maksiminopeuden tietyn pituisilla laskentasilmukoilla, minkä jälkeen teho voi aleta paljonkin ja tämä aleneminen näyttäisi olevan Xeonilla hitaampaa kuin Pentiumilla.
Myös AMD:n ja Intelin prosessoreissa on eroja, jotka selviävät täsmällisesti
vasta koeajojen avulla. Tätä kirjoitettaessa (v. 2011) Intelin uudet prosessorit ovat
AMD:n vastaavia nopeampia virtauslaskennassa, mutta tilanne voi muuttua tulevaisuudessa.
10.3 Rinnakkaislaskenta
Yli kymmenen vuoden ajan on rinnakkaislaskenta ollut suosituin tapa nopeuttaa laskentaa. Prosessoreiden nopeutuminen on näyttänyt jatkuvan keskeytyksettä, mutta
selkein tehonlisäys suurten probleemoiden laskennassa on saavutettavissa rinnakkaislaskennan avulla. Rinnakkaislaskenta tarkoittaa sitä, että laskentatyö jaetaan
osiin, joiden laskentaan käytetään useita prosessoreita. Tämän toteuttamisessa on
erilaisia tapoja, joista selostetaan tässä yleisimmät. Käytettävissä olevat rinnakkais-
10.3. RINNAKKAISLASKENTA
Muisti
267
Muisti
Muisti
Muisti
Muisti
Kytkentäväylä
Prosessori 0
Prosessori 1
Prosessori n
Kuva 10.1: Jaetun muistin arkkitehtuuri.
tustavat riippuvat myös siitä millainen laiteympäristö on käytettävissä. Rinnakkaislaskentaa voidaan suorittaa monessa eri mittakaavassa. Työasemakoneen 4–6 ydintä voidaan laittaa yöksi laskemaan rinnan tai kytketään muutama pöytäkone yhteen.
Erilaiset yleensä Linux-käyttöjärjestelmää käyttävät klusterit ovat yleistymässä ja
monilla laitevalmistajilla on kohtuuhintaisia räkkiversiota tarjolla. Monet ns. supertietokoneet ovat samanlaisia klustereita. Myös valmistajan kiinteämmin yhteen
sitomia laitteita, jotka muistuttavat enemmän perinteistä superkonetta, on saatavilla.
10.3.1 Jaetun muistin koneet
Jaetun muistin koneet (Shared Memory System) ovat tietokoneita, joissa kaikki prosessorit ovat yhteisen kytkentäväylän välityksellä suorassa yhteydessä samaan muistiin kuvan 10.1 osoittamalla tavalla. Tällaisessa tilanteessa on mahdollista kirjoittaa
ohjelma siten, että kaikki prosessit käsittelevät samaa muistiavaruutta ja näin olleen kaikki tieto on siis suoraan kaikille käytettävissä. Tällaisessa tapauksessa ratkaisualue jaetaan yleensä osiin, joiden virtausratkaisun määrittäminen annetaan eri
prosessoreille. Ratkaisijoissa, jotka käyttävät rakenteellisia monilohkoisia laskentahiloja, tällainen työn jakaminen on luontevaa. Rakenteettomia hiloja käyttävien ratkaisijoiden tulee itse jakaa työ jollakin automaattisella tavalla. Jaetun muistin kone
on SGI UV 2000, joka on saatavissa sekä Linux- että Windows käyttöjärjestelmällä.
Tässä koneessa laskentasolmuja yhdistävä verkko on NUMAlink 6, jonka nopeus
on 240 Gb/s.
10.3.2 Hajautetun muistin koneet
Hajautetun muistin järjestelmässä (Distributed Memory System) kullakin prosessorilla on oma prosessorikohtainen muistinsa, joka ei ole muiden prosessoreiden käy-
10.3. RINNAKKAISLASKENTA
268
Kytkentäväylä
Prosessori 0
Prosessori 1
Prosessori n
Muisti
Muisti
Muisti
Kuva 10.2: Hajautetun muistin arkkitehtuuri.
tettävissä. Menetelmän etu on, että prosessorin ja muistin välinen liikenne voidaan
järjestää nopeammaksi kuin väylän yli operoitava liikenne jaettuun muistiin. Koko
muistin käyttöön ottaminen vaatii luonnollisesti työn jakamista useammalle prosessorille ja toisaalta eri prosessien täytyy kommunikoida keskenään, jotta tarvittava
tieto vaihtuisi. Työn jakaminen osiin toteutuu muilta osin aivan samoin kuin jaetun
muistin ympäristössä, mutta tiedon vaihtaminen vaatii eksplisiittisiä toimenpiteitä. Kuva 10.2 havainnollistaa hajautetun muistin käsitettä. Useimmat supertietokoneet, kuten edellä mainittu Cray, ovat tätä tyyppiä. Hajautetun muistin tapauksessa
ei kyseessä ole oikeastaan yksi tietokone, vaan useammasta koneesta nopealla verkolla yhdistetty kokonaisuus. Joskus käytetään termiä ’klusteri’, mutta sen ja ’varsinaisen supertietokoneen’ ero on hämärtymässä. Tavallisimmin laskentasolmujen
välinen verkko toteutetaan joko perinteisillä Ethernet- tai nopeammilla Infinibandkytkimillä. Yhden gigabitin verkko siirtää solmujen välillä tietoa nopeudella 1 Gb/s
ja QDR-Infiniband-verkko nopeudella 40 Gb/s. Kuten aiemmin todettiin NUMAlink 6 -verkon nopeus on tätä kirjoitettaessa (v. 2014) kaikkein suurin eli 120 Gb/s.
Rinnakkaistamisen teho suurella ydinmäärällä on suuresti riippuvainen kytkentäverkon nopeudesta. Ethernetiin perustuva klusteri ei todennäköisesti toimi hyvin
kuin alle sadalla laskentaytimellä. On kuitenkin muistettava, että teho riippuu myös
simulointitehtävästä.
10.3.3 Rinnakkaistamistekniikat
Rinnakkaistamiseen on käytettävissä kaksi eri peruslähtökohtaa: Toinen on kääntäjädirektiivien käyttäminen ja toinen on rinnakkaistaminen käyttäen viestinvälityskirjastoja. Ensin mainitussa lähdekoodiin laitetaan kääntäjälle tarkoitettuja erikoiskoodeja, jotka kertovat mitkä osiot ovat ajettavissa rinnakkain ja miten. Direktiivit
10.4. KÄYTTÖJÄRJESTELMÄT
269
voivat sisältää myös tietoa datan jakamisesta eri prosessien kesken jne. Periaatteessa tämä lähestymistapa on mahdollinen myös hajautetun muistin koneessa käyttäen
HighPerformance Fortran kieltä, mutta yleisemmin se on käytettävissä vain jaetun
muistin koneessa. Hajautetun muistin järjestelmässä kääntäjän tulisi direktiivien perusteella päätellä mihin kohtiin lähdekoodia tulee sijoittaa viestinvälitystä.
Viestinvälitystä käytettäessä prosessien välinen kommunikointi hoidetaan eksplisiittisesti ja jokainen prosessi on täysin itsenäinen. Tämä tarkoittaa sitä, että mikään muuttujan arvon vaihtuminen ei välity muille prosesseille, ellei sitä erikseen
lähetetä niille. Tämän vuoksi rinnakkaistaminen viestinvälityksellä on varsin koneläheistä, koska kaikki tiedonvälitys on tehtävä eksplisiittisesti. Toisaalta se tarjoaa
myös vapauksia siinä suhteessa, että prosesseja ei synkronoida, ellei niin erikseen
vaadita.
Ohjelmistojen rinnakkaistumisen tehoissa on eroja, joita ei niiden nopean kehityksen vuoksi voida tässä esittää. Mikäli aiotaan tehdä massiivisesti rinnakkaista laskentaa, on ohjelman tehokkuus varmistettava etukäteen. Optimaalisessa tilanteessa saadaan täydellinen skaalautuvuus eli laskentanopeus kasvaa samassa tahdissa kuin laskentaytimien määräkin.
10.4 Käyttöjärjestelmät
Eräs koneiden jakotapa on tarkastella niiden käyttöjärjestelmää. 1990-luvulla käytettiin paljon Unix-käyttöjärjestelmää (Linux , Solaris, IRIX, UNICOS, AIX, jne.)
tutkimuslaitosten RISC-koneissa. Se on sittemmin korvautunut lähes kokonaan Unixin
kotitekoisella versiolla (Linux) ja PC-koneilla. Myös moni perinteinen valmistaja
on siirtynyt Linuxin käyttöön, Sunilla on ainakin vielä oma Solaris-käyttöjärjestelmänsä.
Windows-95/98/NT/XP/jne. käyttöjärjestelmä on vallitseva systeemi tavanomaisessa toimistotyössä ja mitä laajemmalle virtaussimulointien teko on levinnyt, sitä suuremmaksi on Windowsin osuus niissä tullut. Uppoutumatta sen syvemmälle
käyttöjärjestelmien hienouksiin, voidaan näistä todeta seuraavaa:
• Linux on toimiva perinteinen moniajojärjestelmä, jota käytetään myös maailman nopeimmissa tietokoneissa. Windows on superlaskennassa harvinaisempi vaihtoehto.
10.4. KÄYTTÖJÄRJESTELMÄT
270
• Linux-koneeseen on mahdollista ottaa ssh-yhteys ulkopuolelta esimerkiksi
verkon välityksellä ja käyttää konetta aivan kuin olisi ottanut yhteyttä konsolilta. Windows-koneessa vastaava SSH-etäkäyttöohjelma on PuTTY.
• Linux on suunniteltu vain järjestelmän käynnissä pitämiseen. Windows on
ajateltu työntekijän integroiduksi työpöydäksi. Tätä tarkoitusta varten Linuxmaailmassa on erilliset ikkunointiohjelmistot.
Monilta osin Windowskin sisältää Unixin piirteitä, mutta käytännössä järjestelmä ei ole yhtä stabiili. Ongelmat eivät sinänsä läheskään aina ole kiinni käyttöjärjestelmästä, vaan niiden päällä ajettavat sovellusohjelmat saattavat sivuvaikutuksena hyydyttää koko muun järjestelmän. Valitettavan usein niinkin arkinen sovellus
kuin tekstinkäsittelyohjelma saattaa jumiutua ja sivuvaikutuksena lamauttaa koko
järjestelmän. Periaatteessa sama saattaa tapahtua Linuxissakin, mutta ainakin toistaiseksi Linux tarjoaa paremmat työkalut ongelmista toipumiseen. Windowsin eräs
kiusallinen piirre ovat virukset, jotka aiheuttavat paljon lisätyötä.
Unix-pohjaisista käyttöjärjestelmistä puhuttaessa nykyisin yleensä tarkoitetaan
Linux-käyttöjärjestelmää. Se on PC-koneisiin kehitetty ilmainen Unix, jonka suosio
on kasvanut erityisesti laskentapalvelimissa ja teknisissä sovelluksissa vuoden 1996
jälkeen. Se tarjoaa mahdollisuuden yhdistää mikro- ja työasemamaailmojen parhaat
puolet, koska sen voi asentaa käytännöllisesti katsoen mihin tahansa PC-koneeseen,
mutta siinä ei ole eräitä Windowsin rasitteita. Haittapuolena on vastuun ottavan kaupallisen organisaation puute, tämä näkyy erityisesti ohjelmisto- ja ajuritarjonnassa.
Linuxiin saa kaikista virtaussimuloinnissa tarvittavat ohjelmat, mutta esimerkiksi
taulukkolaskentaohjelma on LibreOfficessa (entinen OpenOffice) vieläkin heikompi kuin Excel. Myös epäyhteensopivuus muun konttorikonekannan kanssa hankaloittaa Linuxin käyttöä.
Linux on kuitenkin varteenotettava vaihtoehto harkittaessa virtauslaskentaympäristön rakennetta. Peruslaitteistoon pääsee kiinni varsin pienillä hankintakustannuksilla ja useasta Linux-työasemasta on helppo toteuttaa työasemaklusteri, jossa
rinnakkaislaskenta on suhteellisen vaivatonta. Linux-ympäristön selkeä etu on kohtuullisen laaja ilmaisohjelmien saatavuus. Linuxin käyttöönottokynnys on madaltunut merkittävästi valmispakettien kehityksen myötä. Tätä nykyä kuka vain voi
kohtuullisen pienellä vaivalla asentaa itselleen täysiverisen Linux-järjestelmän, joka pitää sisällään tekstinkäsittelyohjelmiston (GNU-Emacs, TEX / LATEX), toimistoohjelmat (LibreOffice), C- ja/tai Fortran-kääntäjän ja erilaisia graafisia työkalu-
10.5. TIETOKONEEN PERUSVARUSTUS
ja (xv, okular, gsview/ghostscript).
271
Virtauslaskentaohjelmaksi voi ladata ilmai-
sen OpenFOAM-ohjelmiston, jolle on saatavissa myös esi- ja jälkikäsittelyohjelmia. Tällainen Linux-pohjainen järjestelmä on erittäin suositeltava vaihtoehto, koska kokemuksen mukaan tutkimusmaailmassa on henkisesti helpompaa operoida
Windows-maailman ulkopuolella.
Kaupallisista ohjelmista on saatavissa versiot kaikille yleisesti sovellettaville
käyttöjärjestelmille. Sekä Linux että Windows soveltuvat henkilökohtaisessa työasemassa käytettäväksi, kyse on lähinnä henkilökohtaisista tottumuksista ja siitä
minkälaisia vitsauksia on tottunut kestämään. Windowsin kanssa tulee monenlaista ongelmaa ja sen käyttäjä on usein ns. IT-ammattilaisten armoilla. Jotkin vikatilanteet voivat kestää päiväkausia. Linux-käyttäjä pääsee monessa suhteessa vähemmällä, mutta joutuu sietämään epäyhteensopivuuksia toimisto-ohjelmissa ja hankittu uusi hieno näyttö saattaakin jäädä mustaksi. IT-väki ei yleensä ole riesana, mutta
käyttäjällä on syytä olla itsellään käyttöjärjestelmän perustuntemus, muuten hän on
todennäköisesti erittäin pahassa pulassa. Tietojenkäsittelymaailmaa ei tällä hetkellä
voi pitää valmiiksi rakennettuna. Mielenkiintoinen vaihtoehto saattaa olla Mac, jossa on Unix-pohjainen käyttöjärjestelmä. MacIntosh-koneita ei kuitenkaan juuri ole
virtauslaskennassa käytössä.
10.5 Tietokoneen perusvarustus
Hankittaessa konetta virtaussimulaatioita varten, on koneen kapasiteetti mitoitettava
kaikin puolin vastaamaan asetettua vaatimustasoa. Muistia on syytä olla riittävästi
ja vastaavasti levytilaa on oltava sujuvan työnteon edellyttämä määrä. Näytönohjain
on yllättävän tärkeä visualisoitaessa suuria tehtäviä. Se mitä koneen vaatimukset numeroiksi puettuna ovat, riippuu ratkaisevasti ajateltujen virtauslaskujen laajuudesta.
Toinen seikka, joka myös vaikuttaa asiaan, on käytetty virtausratkaisija. Seuraavat
arviot tarvittavasta kapasiteetista on tämän vuoksi otettava suuruusluokka-arvioina,
ei absoluuttisena totuutena. Ne perustuvat FINFLO-virtausratkaisijan tilavarauksiin
erilaisissa virtaustilanteissa. Tietokoneen hintaa ajatellessa kannattaa suhteuttaa se
muihin kuluihin, kuten ohjelmistolisenssien hintaan tai palkkoihin. Lisäksi on hyvä
muistaa, että jonkin verran kalliimpi laitteisto on myös pidempään käyttökelpoinen.
Jonkinlaisena karkeana nyrkkisääntönä voidaan pitää, että miljoonan laskentatilavuuden tietokoneajo vaatii vähintään yhden gigatavun verran muistia. Tämä riip-
10.6. OHEISLAITTEET
272
puu tietenkin paitsi ohjelmasta, tehtävän luonteesta ja valitusta ratkaisumenetelmästä. Fluentilla tiheys- ja painepohjaiset ratkaisut vaativat eri määrän muistia. Neljään
gigatavuun rajautuvalla 32-bittisellä koneella voitiin siis jo laskea kohtalaisen kokoisia tehtäviä, mutta tällä hetkellä muistia kannattaa hankkia moninkertainen määrä. Varsinkin, jos koneessa on useampia prosessoreita, muistia tarvitaan enemmän.
Levytila on nykyään halpaa ja sitä on paljon tarjolla. Järeän luokan työasemakoneisiin jopa teratavuluokkaa. Levyjä voi olla useita kappaleita, mikä saattaa olla
järkevää, jos halutaan säilyttää systeemilevy vain käyttöjärjestelmälle ja kotihakemistolle varattuna ja pitää paljon dataa sisältävä työlevy erillisenä. Eräänä nyrkkisääntönä on kuitenkin se, ettei levytilaa loppujen lopuksi ole koskaan tarpeeksi.
Virtauslaskijan työasemaan on varattava usean sadan gigatavun kokoinen levy tai
levyjä.
Jos työasemalla tehdään samanaikaisesti simulointia ja muuta työtä, on tarkoituksenmukaista hankkia kahdella prosessorilla ja mahdollisimman monella ytimellä varustettu malli. Konetta voidaan tällöin käyttää rinnakkaislaskennassa tai ajaa
useampaa tehtävää kerralla. Jos muistia on riittävästi, konetta voidaan käyttää laskennan aikana esimerkiksi visualisointiin. Järjestely on todettu erittäin hyvin toimivaksi ja siitä annetaan vielä historiallinen esimerkki kohdassa 10.10.2.
Tietokoneen eräs tärkeimmistä osista on näytönohjain, jonka rajat tulevat suuria tehtäviä visualisoitaessa vastaan. 1990-luvulla käytettiin RISC-työasemia, joiden graafiset ominaisuudet olivat siihen aikaan ylivoimaisia. Sen jälkeen on PCkoneissa käytetty erikoisnäytönohjaimia (esimerkiksi Wildcat), kuten luvun 10.10.2
käytännön esimerkissä. Runsas pelikäyttö on nopeuttanut näytönohjaimien kehitystä ja ajanut esimerkiksi 3DLabsin Wildcatin kaltaisten erikoisohjaimien ohi. Virtaussimulointia varten ohjain on kuitenkin hankittava valikoiman kalliimmasta päästä ja mieluiten insinöörisovelluksia varten tarkoitettu malli. Peliohjaimissa korostetaan nopeutta tarkkuuden kustannuksella, visualisointikäytössä tarvitaan molempia.
10.6 Oheislaitteet
Pelkän tietokoneen avulla ei virtauslaskentaympäristö ole vielä valmis. Jotta laskennan tuloksista saataisiin mitään mustaa valkoiselle, tarvitaan vähintäänkin jonkinlainen tulostin. Käytännössä järkevä hankinta nykypäivänä on PostScript lasertulostin,
koska useimmat sovellusohjelmistot tuottavat mm. PostScript formaattia.
10.7. OHJELMISTOT
273
Miellyttävä — nykyisin ehkä välttämätön — lisävaruste on korkeatasoinen väritulostin. Hyvin usein tuloksista on kohtuullisen vaivatonta generoida värikuvia,
mutta ne on syytä voida myös tulostaa paperille. Tähänkin tarkoitukseen PostScripttulostin on hyvä vaihtoehto. Värikuvien ajateltu käyttötarkoitus vaikuttaa siihen
minkä tyyppinen väritulostin on paras.
Tärkeä osa mitä hyvänsä tietokoneympäristöä on varmuustallennuslaitteisto. Näin
mm. siksi, että tietokonejärjestelmän muuttuvasta datasta on syytä voida ajaa varmuuskopiot määrävälein. Toinen syy on tietojen siirtäminen muualle uuteen laitteistoon, sillä aina verkko ei ole oikea ratkaisu, ja joskus se ei ole edes vaihtoehto.
Edullinen ratkaisu tähän tarkoitukseen on ns. DAT-nauhuri (Digital Audio Tape),
mutta kapasiteetiltaan ja nopeudeltaan merkittävästi parempia vaihtoehtoja ovat ns.
DLT-nauhuri (Digital Linear Tape) ja LTO-nauhuri (Linear Tape Open). Valitettavasti laatu ja luotettavuus näkyvät myös tuotteiden hinnoissa.
Pakollinen arkistointiväline on polttava CD- tai DVD-asema, jonka avulla tiedostojärjestelmän osista on mahdollista tehdä kopioita CD- tai DVD-levylle. Yleistymässä on Blu-ray, jonka tallennuskapasiteetti on edellisiä suurempi. Levyille voidaan arkistoida probleemakokonaisuuksia dokumentaatioineen siten, että koko arkistoitu tiedostojärjestelmä on käsiteltävissä suorasaantitiedostona. Kokemus on nimittäin osoittanut, ettei kovalevytilaa ole koskaan liikaa, harvoin edes tarpeeksi.
Tämän vuoksi kokonaisten hakemistorakenteiden tallettaminen helposti saatavissa
olevaan muotoon on koneen käyttäjäkunnan yhteinen etu.
10.7 Ohjelmistot
Laitteiston mukana hankittavat ohjelmistot määräytyvät jossakin määrin hankitun
laitteiston tyypin ja käyttöjärjestelmän perusteella. Tässä ei kuitenkaan ole aikomus luetella tyypillisiä konttoriohjelmistoja vaan niitä, jotka voivat merkittävästi
edistää virtauslaskentaympäristön toimivuutta. Jos lähtökohtana on oman virtauslaskentaohjelmiston kehittäminen ja käyttäminen, on jonkinlaisen kehitysympäristön perustaminen välttämätöntä. Tähän palataan lähemmin kohdassa 10.8.
Virtausratkaisijan lisäksi tarvitaan esikäsittelijät geometriamallin luomiseen ja
jälkikäsittelijät tulosten visualisointiin. Sellaiset ovat yleensä integroituna kaupalliseen virtauslaskentaohjelmistoon, mutta lähes aina eteen tulee tilanteita, joissa ne
eivät kuitenkaan generoi kaikkia haluttuja suureita. Tällaisissa tilanteissa omat esi-
10.8. KEHITYSYMPÄRISTÖ
274
ja jälkikäsittelyohjelmistot ovat pistämätön apu. Niiden kirjoittamiseen tarvitaan
väistämättä kääntäjä, mutta alkuvaiheessa tällainen ei siis ole ehdottoman välttämätöntä.
Usein on niin, että ratkaisijaan integroidut esi- ja jälkikäsittelijät täyttävät ns. perustarpeet, mutta kokemuksen mukaan niiden rajoittuneisuus tulee kuitenkin vielä
nykytilanteessa helposti vastaan monimutkaisissa virtaustapauksissa. Tämän vuoksi
usein pitkän päälle toimivin ratkaisu on hankkia erilliset ohjelmistot, jotka on suunniteltu geometrian mallinnukseen ja toisaalta tulosten visualisointiin. Näin kussakin
työvaiheessa käytetään tehokkaita välineitä eikä aikaa hukata puutteellisten ohjelmistojen kanssa rimpuiluun. Näihin valintoihin palataan vielä kohdassa 10.9.
Riippuen siitä millainen laskentaympäristö perustetaan, saattaa olla tarpeellista hankkia joitakin ohjelmistoja koneiden välisen verkottamisen helpottamiseksi.
Yksi tällainen on NFS (Network File System), jolla tiedostojärjestelmiä voidaan jakaa verkon yli. Joissakin käyttöjärjestelmissä NFS tulee mukana, mutta joihinkin se
täytyy hankkia erikseen. Toinen mahdollisesti tarvittava ohjelmisto on MPI (Message Passing Interface), jonka avulla rinnakkaislaskenta verkon yli on mahdollista.
MPI:stä on olemassa ilmaisia toteutuksia, mutta useimmat laitteistotoimittajat tarjoavat myös omaa toteutustansa korvausta vastaan.
10.8 Kehitysympäristö
Jos lähtökohtana on joko oman virtauslaskentaohjelmiston tai simulointiin liittyvien apuohjelmien kehittäminen ja käyttäminen, on laitteiston mukana syytä hankkia kääntäjät mieluiten sekä C- että Fortran-kielelle. Kuten aiemmin ilmeni, Linuxympäristöön on saatavilla ilmaiset C- (gcc) ja f90-kääntäjät. Vaikka aikomus olisikin vain käyttää kaupallista valmisohjelmaa, voi tämän lisäksi piakkoin tulla eteen
jonkun kääntäjän hankkiminen, jotta omia jälkikäsittelyohjelmia voisi kätevästi kirjoittaa. Toinen käytännön tilanne, jossa kääntäjän hankkiminen voi osoittautua välttämättömäksi, on esimerkiksi oman konvertterin kirjoittaminen.
Lopputulos on se, että toimiva kääntäjä ja siihen liittyvät kehitystyökalut on
hyvä hankkia. Näillä tarkoitetaan lähinnä toimivaa debuggeria ja lähdekoodianalysaattoria. Usein yksinkertaiset tällaiset työkalut tulevat kääntäjän mukana, joten
erillistä työkalua ei välttämättä tarvitse hankkia. Lisävarusteena kehitysympäristössä on hyvä olla profilointiohjelmisto, jolla voidaan analysoida kirjoitetun ohjelman
10.9. JÄLKIKÄSITTELY-YMPÄRISTÖ
275
Esikäsittelijä / hilan generointi
Virtausratkaisija
Konversio−ohjelmisto
Visualisointi ja analysointi
Lopulliset tulokset
Kuva 10.3: Virtaussimulaatioprosessin eri vaiheet.
proseduurien viemää aikaa.
10.9 Jälkikäsittely-ympäristö
Varsin keskeinen osa virtauslaskentaa on tulosten jälkikäsittely, jota tarkastellaan
lähemmin seuraavassa luvussa. Se pitää sisällään kaiken mikä tapahtuu sen jälkeen
kuin varsinainen virtausratkaisu on laskettu. Tyypillisiä toimenpiteitä ovat paineja nopeusjakaumien tarkastelu, mutta hyvin pian kiinnostaviksi muodostuvat monimutkaisemmat toimenpiteet kuten virtaviivojen laskenta, virtauskentän mielivaltaisten poikkileikkausten tarkastelu tai eri suureiden perusteella määritettyjen tasaarvopintojen tarkastelu. Kuvassa 10.3 on esitetty virtaussimulaation eri vaiheet,
joista useampi voi tapahtua yhden integroidun työkalun avulla.
Jälkikäsittelyn apuna ja tulosten käsittelemisessä voidaan käyttää taulukkolas-
10.9. JÄLKIKÄSITTELY-YMPÄRISTÖ
276
kentaohjelmistoja sekä niiden piirto-ominaisuuksia, mutta niiden kanssa ongelmaksi saattaa muodostua datan siirtäminen sopivassa formaatissa. Oletetaan nyt kuitenkin, että formaattiongelmat on saatu tavalla tai toisella ratkaistuksi. Tällöin taulukkolaskentaohjelmistolla, kuten Excelillä tai vastaavalla, voi kohtuullisen vaivattomasti piirtää käyriä datasta siinä muodossa kuin se on ratkaisusta saatu ulos.
Yleensä tämä tarkoittaa suureiden arvoja laskentahilan solmupisteissä, jotka taas
eivät välttämättä ole tasavälisesti tai edes samalla suoralla. Jonkinlaisia jakaumakuvia voidaan näin kuitenkin tehdä, ja lisäsuureiden laskeminen aritmeettisin kaavoin
tunnetusta ratkaisusta on Excelillä helpohkoa.
Taulukkolaskentaohjelmiston rajat tulevat kuitenkin vastaan nopeasti, eikä kaikkea haluttua saada näkyviin. Kaiken vähänkään 3D-visualisointiin viittaavan tekeminen ilman kunnollisia visualisointityökaluja on hyvin työlästä. Kaikki tasoleikkaukset ja suureiden interpoloinnit mielivaltaisiin pisteisiin ovat äärimmäisen vaativia operaatioita.
Eräs vaihtoehtoinen lähestymistapa Excel-tyyppiselle jälkikäsittelylle on kirjoittaa omia jälkikäsittelyohjelmistoja, jotka laskevat datasta haluttuja suureita ja tulostavat ne sopiviin tiedostoihin. Näitä voidaan sitten käyttää lähtötiedostoina yleisille
käyränpiirto-ohjelmille, joita on jopa saatavilla ilmaiseksi. Tällaisia ovat esimerkiksi gnuplot ja DISLIN. Myös Python-ohjelmointikieli sisältää kuvien piirtoon
sopivia työkaluja. Tämän lähestymistavan etu on, että halutut laskelmat koskien johdannaissuureita voidaan tehdä erillisellä ohjelmalla, joka ei riipu mitenkään käytetystä piirto-ohjelmasta. Tällöin piirto-ohjelman ei tarvitse tietää mitään siitä miten
numerot on luotu ja se voidaan optimoida tekemään oma työnsä mahdollisimman
tehokkaasti.
Vaativia visualisointeja varten on käytettävä kaupallista ohjelmistoa, jonka ominaisuudet on räätälöity ajatellen virtaussimulaatioiden jälkikäsittelyä. Tällaisia ovat
mm. EnSight ja FIELDVIEW. Paraview on vapaan lähdekoodin ohjelma, jota käytetään erityisesti OpenFOAMin yhteydessä. Tällaiset ohjelmat osaavat yleensä tehdä kaikkia niitä jälkikäsittelyoperaatioita, joista virtauslaskija on kiinnostunut kuten esimerkiksi virtaviivojen laskenta, tasa-arvopintojen ja -käyrien laskenta, tasolla leikkaaminen ja tavanomaisimpien johdannaissuureiden laskeminen. Lisäksi
ne osaavat lukea yleisimpiä datan tallennusformaatteja, joten mikäli käytössä oleva virtausratkaisija tuottaa datat jossakin yleisesti tunnetussa formaatissa, on varsin
todennäköistä, ettei väliin enää tarvita konversio-ohjelmaa. Näin on tilanne esimerkiksi EnSightin kohdalla, joka osaa lukea mm. PLOT3D-formaatissa olevia tiedos-
10.10. VIRTAUSLASKENNAN TYÖVÄLINEET
277
toja. TKK:n CFD-ryhmän kehittämä FINFLO tuottaa tuloksensa tässä formaatissa,
minkä ansiosta mitään konvertteria ei tarvita.
Kaupallisissa virtauslaskentaohjelmistoissa on integroituna melko korkeatasoiset visualisointityökalut. Näin on esimerkiksi FLUENTissa ja ANSYS CFX:ssä. Aina ei aivan kaikkia haluttuja asioita ei pystytä visualisoimaan näillä työkaluilla ja
joudutaan turvautumaan omiin jälkikäsittely- ja piirto-ohjelmiin. Tämä vaihe voikin sitten olla hankala, koska ohjelmiston tuottamien tiedostojen formaattia ei välttämättä ole dokumentoitu julkisesti.
10.10 Virtauslaskennan työvälineet
10.10.1 Esimerkkejä simulointiympäristöistä
Tässä luvussa aiemmin esitetyn materiaalin perusteella ja perustuen kirjoittajan
omiin kokemuksiin esitetään nyt kannanotto siihen millainen kalusto tarvitaan virtauslaskentaa varten. Ensin esitetään minimivaatimustaso eli ns. "köyhän miehen
laitteisto"(kts. kuva 10.4), ja seuraavaksi laajemman työryhmän laiteympäristö, joka on tässä tapauksessa laadullisesti TKK:n CFD-ryhmän laitteiston kuvaus (kuva
10.5). CFD-ryhmän laitteisto ei sinällään vastaa täysin todellisuutta, mutta edustaa tässä tutkimusryhmälle soveltuvaa kokonaisuutta. On lisäksi huomautettava, että laitteisto on varsin kohtuuhintainen.
"Köyhän miehen laitteisto"
• Kohtuullisen tehokas työasema. Prosessoritason referenssiarvona voinee pitää n. 3 GHz AMD- tai Xeon-prosessoria. Suositeltavaa valita kahden prosessorin malli ja riittävä määrä laskentaytimiä. Vapaata levytilaa käyttäjän datoja
varten yli 1 TB ja keskusmuistia mielellään vähintään 8 Gt. Näytönohjaimen
ja monitorin olisi syytä olla muuta kuin tavaratalon halvin malli.
• Tulostin.
• DAT- tai vastaava edullinen nauhuri.
• Virtauslaskentaohjelmisto.
• Alan kirjallisuus
• Virtausmekaniikkaa, tietokoneita ja ohjelmointia harrastava taitava käyttäjä.
10.10. VIRTAUSLASKENNAN TYÖVÄLINEET
278
Kuva 10.4: Virtauslaskijan perustyövälineet vuonna 2000.
"CFD-ryhmän laitteisto"
• Tehokas laskentapalvelin varsinaisia tuotantoajoja varten. TKK:n CFD-ryhmällä oli v. 2006 klusteri-tyyppinen tietokone, joka koostui 6 erillisestä tietokoneesta. Tietokoneet olivat 5 cm korkeita, joten niitä mahtui kaappiin useita päällekkäin. Jokaisessa tietokoneessa oli 2 kappaletta 64-bittisiä 3,4 GHz
kellotaajuudella toimivia Intel Xeon-prosessoreja. Prosessorien väylänopeus
oli 800 MHz ja niissä oli 2 Mt välimuisti. Jokaisessa koneessa oli DDR2tyyppistä keskusmuistia 3 Gt ja 160 Gt kiintolevy. Käyttöjärjestelmänä oli
Redhat Linux 4 ES. Vastaava laitteisto on nykyään tehokkaampi ja halvempi.
• Jokaisella tutkijalla henkilökohtaisena tehokas graafinen työasema, jossa paikallista laskentatehoa kohtuullisesti. Keskusmuistia 10 Gt ... 20 Gt ja kiintolevyjen koot yli 500 Gt.
• Korkealuokkainen väritulostin (PostScript).
• Korkealuokkainen mustavalkotulostin (PostScript).
• Varmuuskopiointiin DLT-nauhuri.
• Virtauslaskentaohjelmisto
10.10. VIRTAUSLASKENNAN TYÖVÄLINEET
279
Kuva 10.5: Esimerkki virtauslaskentaa harrastavan tutkimusryhmän laitteistosta vuonna
2006 (TKK:n CFD-ryhmä).
• Esi- ja jälkikäsittelyohjelmistoja (omia ja kaupallisia). TKK:n CFD-ryhmällä
on perinteisesti ollut käytössä mm. EnSight, IGG, Pointwise ja FIELDVIEW,
joiden lisäksi itse tehdyt convergence, finplo ja draw. Nykyisin käytetään myös OpenFOAM- ja Paraview-ohjelmia.
• Riittävä määrä kääntäjiä ja ohjelmakirjastoja. TKK:n CFD-ryhmällä on käytössä DISLIN ja gnuplot.
• Virtausmekaniikkaa, tietokoneita ja ohjelmointia harrastavia taitavia käyttäjiä.
Edellä esitetyn listan kohdista on keskusteltu aiemmin tässä luvussa. Monet
asiat ovat mieltymys- ja valintakysymyksiä, eikä yksikäsitteistä ohjetta ole mahdollista kirjoittaa. Jos käyttäjää kiinnostaa touhuta tietokoneiden kanssa, Linux-
10.10. VIRTAUSLASKENNAN TYÖVÄLINEET
280
perustainen ratkaisu on erittäin houkutteleva. Toisaalta taas PC/Windows-maailmassa viihtyvälle käyttäjälle on todennäköisesti järkevää hankkia samaan ympäristöön
sopivat työkalut.
10.10.2 Käytännön esimerkki
Tarkastellaan seuraavaksi käytännön esimerkkinä simulointiympäristön luomista lähtien lähes puhtaalta pöydältä. Kyseinen tapaus on todellinen ja liittyy Turun Aluetyöterveyslaitoksen aloittamaan projektiin sisäilmastoinnin tutkimiseksi mm. virtauslaskennan avulla. Projekti aloitettiin jo vuonna 1998, joten nykyään on samalla panostuksella saatavissa aivan eri tasoisia laitteistoja. Vastaava tietokonetyyppi on edelleen markkinoilla, mutta nyt siihen hankittaisiin n. 3 GHz moniydinprosessoripari ja näytönohjaimeksi jokin muu kuin Wildcat.
Tässä luvussa käytetyn terminologian mukaan hankittu tietokone oli ns. PC (Intergraph TDZ GX1). Prosessoreita oli kaksi (Pentium II Xeon 450 MHz) ja muistia 1 Gt. Näytönohjain oli jossain vaiheessa PC-puolen tehokkaimpiin kuulunut
Wildcat 3d. Kaksiprosessorinen kone oli erittäin hyvä laskentakäytössä. Ajon pyöriminen toisella prosessorilla ei näy koneen nopeudessa samanaikaisessa jälkikäsittelytai muussa työssä. Nykyisin saadaan vielä suurempi tehokkuus moniydin-tekniikalla.
Tuloksia ei myöskään tarvitse siirrellä koneelta toiselle raportointia varten. Tässä
yhteydessä kannattaa kiinnittää huomiota muistin määrään, jota varattiin olosuhteet
ja ajankohta huomioon ottaen riittävästi. Oheislaitteina on ollut käytössä HP Deskjet 970 Cxi ja Lexmark värilaser.
Käyttöjärjestelmänä koneessa oli Windows NT 4. Käytössä oli CFX-ohjelma,
joka poikkeaa FLUENTista eräissä suhteissa. Aikoinaan ohjelmistopaketti sisälsi
erilliset ohjelmaversiot rakenteellisille ja rakenteettomille hiloille. Mukana oli lisäksi pyöriville virtauslaitteille tehty erityisohjelma TASCflow. Esikäsittelijä oli CFX
Build. Rakenteellisen ohjelmaversion jälkikäsittelijä on CFX View, joka oli melko
yksinkertainen. Rakenteettoman ohjelman jälkikäsittelijä oli puolestaan CFX Visualise. Jälkikäsittelijän tukena käytettiin Exceliä ja Originia.
Edellä olevalla laitteistolla voitiin ajaa jo kohtuullisen vaativia tehtäviä, jotka
1990-luvun alkupuoliskolla olisivat vaatineet supertietokoneen tehoa. Rakenteellisella ohjelmalla tehdyistä ajoista voidaan antaa seuraavat esimerkit: 12-lohkoinen
hila 60 000 laskentakoppia, k − ǫ-turbulenssimalli vaati noin 5000 iteraatiokierrosta. Laskenta-aikaa tähän kului 20 tuntia (käkikello) ja muistin kulutus oli 80 mega-
10.11. VIRTAUSSIMULOINNIN SUORITTAJAT
281
tavua. Hieman tarkempi ajo (480 000 laskentatilavuutta) vaati niinikään 5000 kierrosta ajoajan ollessa 85 tuntia ja muistin kulutuksen 400 megatavua. Käytetyllä laitteistolla CFX-ohjelmalla pystyi ajamaan noin miljoonan kopin ajon, jolloin 5000
kerrosta vaati likimain viikon laskenta-aikaa. On huomattava, että käytännössä ajot
kannattaa suorittaa lyhyemmissä pätkissä ja tarkastella tuloksia kunkin osa-ajon jälkeen, jolloin voi paljastua meneekö jotain vinoon. Jopa usean miljoonan kopin simulointia voidaan vuorokaudessa suorittaa kohtuullinen pätkä ja tietokonelaitteistojen osalta tilanne muuttuu koko ajan paremmaksi. 1990-luvun alkupuolella olisivat vastaavat ajot olleet mahdollisia supertietokoneella, mutta koska yhteiskäytössä
olevasta koneesta ei ole helppoa saada suuria resursseja irti, ajon suorittaminen olisi
saattanut silloisissa oloissa hyvinkin kestää pari viikkoa (kalenteriaika).
Edellä oleva esimerkkikokoonpano on ensimmäisiä, jolla ns. pöytätietokoneella voitiin ajaa RANS-simulointi riittävällä resoluutiolla. Sen jälkeen kehitys on
mennyt huimasti eteenpäin, mutta useat valmistajat tarjoavat edelleen järeitä Xeonpohjaisia työasemia, jotka ovat sopivia virtaussimulointiin ja tulosten jälkikäsittelyyn. Vastaavalla kokoonpanolla voidaan nyt ajaa yli kymmenen miljoonan laskentatilavuuden simulointeja edellyttäen, ettei simuloinnin kestoaika ole kovin kriittinen.
10.11 Virtaussimuloinnin suorittajat
Virtaussimuloinnin suorittaminen on vaativa tehtävä ja ainakaan tämän kirjoittajan kokemuksien mukaan sitä ei voida verrata esimerkiksi rakenneanalyysin suorittamiseen. Kummallakin alueella kouluttamaton ja asiantuntematon henkilö voi
saada aikaan pahaa jälkeä, mutta virtauslaskennassa todennäköisyys tähän on paljon suurempi. Tämä johtuu siitä, ettei virtausprobleema miltään osin ole kunnolla
määritelty moniin muihin laskentatehtäviin verrattuna. Olemme aikaisemmin todenneet esimerkiksi reunaehtojen osalta FLUENTin valikoiman sekä puutteelliseksi että olemassa olevien vaihtoehtojen osalta epärobustiksi (esimerkiksi ulosvirtauksessa virtauksen kääntymisen aiheuttamat ongelmat). Reunaehtojen osalta tilanne ei
ole oleellisesti erilainen muissakaan yleisohjelmissa. TASCflow:n kaltaisissa yhteen
tarkoitukseen suunnatuissa ohjelmissa tilanne on ollut tässä suhteessa ehkä parempi.
Toisena ongelmana on fysikaalisen tilanteen kuvaus. Usein aineominaisuudet tunnetaan huonosti tai joudutaan tekemään approksimaatioita esimerkiksi faasimuu-
10.11. VIRTAUSSIMULOINNIN SUORITTAJAT
282
tosten osalta. Myös virtauksen numeerinen laskenta on ongelmallista eikä tilanne
taida siltäkään osalta saavuttaa pitkään aikaan, jos koskaan, samanlaista kypsynyttä
tasoa kuin rakenneanalyysissä on saavutettu viime vuosikymmeninä. Ja lopuksi vielä kaikkien ongelmien äiti, joka pitää huolen siitä, etteivät virtauslaskijalta huolet
lopu: turbulenssi ja sen mallinnus.
Virtauslaskenta koostuu siis monista erilaisista osatekijöistä ja on selvä, ettei
kukaan voi kaikkia alueita hallita hyvin. Mutta vaikka tehtäisiinkin vain ns. käytännön laskuja valmisohjelmalla, kunnollinen lopputulos vaatii valitettavasti tietoja ja
taitoja monilta eri alueilta. Koska näitä alueita on useita, parasta olisi, että virtauslaskennan parissa työskentelisi kokonainen ryhmä, jolloin laajemman kokonaisuuden hallinta onnistuu. Tällä kurssilla samoin kuin Shaw’n kirjassa ’Using Computational Fluid Dynamics’ on pyritty antamaan jonkinlainen yleiskuva virtaussimuloinnista. Ohjelman käyttöä opetetaan ohjelmistotalojen pitämillä kursseilla. Hyvin
yleinen käsitys alan ammattilaisilla on kuitenkin se, etteivät tämänkaltaiset esitiedot ole riittäviä, vaikka ohjelmistotalot nykyisin pyrkivät luomaan mielikuvan ohjelmien helppokäyttöisyydestä ja yleispätevyydestä. Shaw’n mukaan virtaussimuloinnin suorittajilla pitäisi olla seuraavat esitiedot:
• matemaattiset taidot. Analyysien tekijän olisi ymmärrettävä laskentaohjelmassa käytettävien numeeristen menetelmien ja ratkaistavien yhtälöiden ominaisuudet.
• laskennalliset taidot tarkoittavat kaikkia niitä tilanteita, joiden eteen tietokonetta käytettäessä joutuu. Hyvin usein käy niin, että tuloksia on tavalla tai
toisella käsiteltävä. Ne on siis uutettava ohjelmistosta ulos ja on ehkä kirjoitettava omia ohjelman pätkiä tulosten käsittelyä varten. Ohjelmien kanssa
joutuu myös liemeen käyttöjärjestelmien ja installoinnin osalta. Kokonaisuudessaan voidaan todeta, että vaikka esitteissä luvattaisiin ’helppokäyttöisyyttä ennennäkemättömällä tavalla’, niin virtauslaskijalta tai joltain ryhmän jäseneltä edellytetään huomattavasti paremmat tietokoneen käsittelytaidot kuin
jonkin muun alan simulointia harrastavalta.
• hyvät kommunikointitaidot tarvitaan siinä, että yleensä simulointitulosten hyödyntäjät ja tilaajat eivät ole virtauslaskennan asiantuntijoita ja tällöin virtauslaskentatehtävästä muodostuu ’projekti’, jossa asioita joudutaan setvimään ja
selvittämään perin pohjin. Laskijalle ei analysoitava tilanne useinkaan ole tuttu, mikä aiheuttaa uskottavuusongelmia tilaajan puolelta.
10.12. VIRTAUSSIMULOINNIN INTEGROINTI
SUUNNITTELUYMPÄRISTÖÖN
283
• insinööritaidot. Koska virtauslaskenta on hankalaa, tuloksen hyvyyden ratkaisee lopulta se, ymmärtääkö simuloinnin suorittaja tilanteen fysiikkaa, kemiaa ja simuloitavien laitteiden toimintaa. Laivojen ja lentokoneiden virtausjakaumien laskenta ei todennäköisesti johda minkäänlaiseen käyttökelpoiseen
lopputulokseen, ellei niitä ole suorittamassa henkilö, jolla on riittävät perustiedot alalta. Sama koskee vielä suuremmassa määrin tilanteita, joihin liittyy
monimutkaisia mallinnettavia ilmiöitä, kuten palamista.
Uusien CFD-asiantuntijoiksi koulutettavien henkilöiden palkkaaminen on hankalaa, koska juuri kellään ei voida katsoa olevan kaikkia lueteltuja perustietoja. Tässä auttaa ryhmän koko. Mutta koska virtauslaskenta on lisäksi suhteellisen uusi ala,
sen koulutus ei ole monessakaan maassa kunnolla järjestetty, mikä aiheuttaa lisäongelmia. Eräs tapa järjestää asia on käyttää ulkopuolisia konsultteja. Suomeenkin on
syntynyt ja todennäköisesti syntyy vielä lisää insinööritoimistoja, jotka ovat erikoistuneet virtauslaskentaan. On myös mahdollista hyödyntää alan tutkimuslaitoksia ja
korkeakouluja. Ongelmaksi tässä tulee taas kentän laajuus, minkä vuoksi tehtäviä on
varsin erilaisia, mutta asiantuntijaorganisaatiot ovat kuitenkin varsin kapea-alaisia.
10.12 Virtaussimuloinnin integrointi suunnitteluympäristöön
Shaw’n kirjassa (1991) todetaan, että CFD on hyödyllinen väline, mutta sen integroiminen suunnitteluprosessiin vaatii vielä huomattavasti parannuksia erityisesti
esikäsittelyn osalta. Nyt yli 20 vuotta myöhemmin voimme todeta suurin piirtein
asian samoin. Hyvin monella alalla on käynyt niin, ettei virtauslaskenta ole odotuksia vastaavasti lunastanut siihen asetettuja toiveita. Toisaalta laskenta on koko ajan
vallannut yhä uusia alueita, joille se tuodaan samalla tavoin lupaavana tekniikkana
käytännön ongelmien ratkaisuun.
Aiemmin on todettu, että CFD on koko ajan menossa kustannusefektiivisempään suuntaan erityisesti tietokoneiden osalta. Enää ei tarvita supertietokoneita,
vaan vaatimattomalla laitteistolla voidaan suorittaa isoja Reynolds-keskiarvotettuihin yhtälöihin perustuvia analyysejä. Laskijat ovat kuitenkin taitavia työntämään
rajoja yhä pitemmälle ja suora simulointi tai LES pitävät huolen siitä, että supertietokoneita tarvitaan aina tutkimuskäytössä.
10.12. VIRTAUSSIMULOINNIN INTEGROINTI
SUUNNITTELUYMPÄRISTÖÖN
284
Tietokoneiden käytön halventuessa on takaiskuja tullut turbulenssin mallintamisesta. Mitä pitemmälle kehitys on turbulenssitutkimuksessa edennyt, sitä kauemmaksi horisontin taakse on kysymyksen ns. lopullinen ratkaisu paennut. Uusia
malleja kehitetään, mutta niiden käyttö vaatii yhä suurempaa ammattitaitoa. Varsinainen tulosten luotettavuus paranee täten hyvin hitaasti, mutta kuitenkin varmasti.
Lähes kaikissa tilanteissa, joissa CFD:tä haluttaisiin soveltaa suunnittelutyössä,
pullonkaulaksi muodostuu kuitenkin esikäsittely, geometrian luonti ja laskentahilan
generointi. Tässä edistyminen on ollut toivottua hitaampaa. Eräänä syynä on jälleen
erilaisten virtaustilanteiden hyvinkin erilaiset vaatimukset. Eniten kehityspanosta
laitetaan nykyisin rakenteettomiin hiloihin, joita kehitetään adaptiivisiksi. Tällöin
laskennan suorittajan ei periaatteessa tarvitsisi välittää laskentaverkon laatuun liittyvistä asioista mitään. Tällä hetkellä vaikuttaa, ettei tällainen utopia toteudu lähitulevaisuudessa. Ainoa ratkaisu tällä hetkellä on laskennan suorittajan ammattitaito.
Jos esikäsittelijäohjelmien kaikkia piirteitä osataan hyvin käyttää, prosessiin kuluva aika putoaa murto-osaan. Jos lasketaan aina likimain samantapaista geometriaa,
pystytään esikäsittelyvaihe hyvin pitkälle myös automatisoimaan. Mutta jälleen tarvitaan ammattitaitoa, jopa ’valmiin automatisoidun hilangeneroinnin’ käytössä.
Valitettavan usein vielä 2000-luvullakin käy niin, että laskentaa sovelletaan demonstratiivisesti johonkin, mutta sen jälkeen se todetaan liian kalliiksi ja jopa hyödyttömäksi. Tällöin kyseessä on ammattitaidon puute, mikä näkyy jo siinä, että tuloksia on odotettu liian nopeasti. Maailmanlaajuisesti CFD on ollut osa suunnittelua
eräillä alueilla jo pitkään. Esimerkkeinä voidaan mainita lentokoneiden ja kaasuturbiinien suunnittelu. Myös Suomessa on teollisuudessa useita aloja, joilla virtauslaskentaa sovelletaan. Yhteistä näille kaikille esimerkeille on riittävän suuri ja pitkäjänteinen satsaus. Mitä kauemmin laskentaa on suoritettu riittävän isolla ja osaavalla ryhmällä, sitä enemmän siitä saadaan hyötyä. Mutta kynnys uusille aluevaltauksille suunnittelutyössä on virtauslaskennan osalta suurempi kuin yleisesti halutaan
uskoa.
10.13. KERTAUS
285
10.13 Kertaus
• Käyttöjärjestelmän valinta dominoi monia jatkotoimenpiteitä. Valintaa tehtäessä on siksi pohdittava huolella omat tarpeet ja resurssit.
• Prosessoreiden nopeudet kaksinkertaistuvat 1,5 vuodessa. Tämän vuoksi kaikkein nopeimpaan ei yleensä kannata investoida.
• Muistia ei ole koskaan liikaa. Prosessoritehon kasvusta seuraa ohjelmistojen
paisuminen, mikä johtaa jatkuvasti kasvavaan muistin tarpeeseen.
• Kovalevyä on käytännössä aina liian vähän. Tämä on seurausta edellisistä
kohdista.
• Varmuustallennuslaitteiston hankinta on syytä tehdä heti eikä ensimmäisen
levyvaurion jälkeen.
• CD- tai DVD-laitteisto on välttämätön.
• Kalleinkin laitteisto on hyödytön ilman ammattitaitoista käyttäjää.
• tietokoneiden jatkuva kehittyminen on tehnyt niiden perinteisen luokittelun
mahdottomaksi.
• Unix-käyttöjärjestelmästä on useita versioita ja lisäksi ilmaisversio Linux
• Linuxin käyttö on hyvin toimiva vaihtoehto virtaussimuloinneissa
• tietokone tarvitsee myös oheislaitteita
• supertietokoneet ovat nykyisin aina rinnakkaiskoneita, jotka koostuvat yleensä skalaariprosessoreista, joskus vektoriprosessoreista
• rinnakkaislaskennalla saadaan laskentatehoa nostetuksi tehokkaasti
• rinnakkaiskoneet ovat joko jaetun tai hajautetun muistin koneita
• rinnakkaislaskennassa tarvitaan viestinvälityskirjastoja
10.13. KERTAUS
286
• virtauslaskijan työasemassa on hyvä olla kaksi prosessoria
• suositus (vuonna 2011) ainakin 8 Gt keskusmuistia
• levytilaa yli 1 Tt
• nopea näytönohjain
• virtauslaskenta on hankalaa, koska hyvin monet sen osa-alueista ovat huonosti määriteltyjä
• laskennalla on helposti mahdollista saada uskottavan näköisiä kuvia, joilla ei
ole paljon tekemistä todellisuuden kanssa
• ongelmien pohjalla: turbulenssi ja sen mallinnus
• virtauslaskija tarvitsee tietoja ja taitoja monelta eri osa-alueelta
• CFD-ihmisten löytäminen on vaikeaa ja koulutus huonosti järjestetty
• virtauslaskenta vaatii enemmän satsauksia ja henkisiä resursseja kuin yleisesti
halutaan myöntää
• ne alueet, joilla laskenta on osa suunnitteluprosessia, panostavat myös voimakkaasti CFD:hen
• simuloinnin hyödyt näkyvät usein melko hitaasti, mutta ajan mittaan ne ovat
merkittäviä
Päivitetty 18.3.2014