Master'sOpen Access

Çok-fazlı kan akış simülasyonları için heterojen hesaplama

Is this your thesis?

This record came from a bulk archive import. If it’s yours, link it to your profile.

2018
0 views
0 downloads

Abstract (TR)

Teknolojideki geli¸smeler sonucunda artık hesaplamalı bilim ve mühendislik alanında yapılan çalı¸smalarda oldukça büyük ölçekli simülasyonlar yapılabilmektedir. Günümüzde, bilgisayar kullanılan hesaplamalarda i¸slemci olarak hala CPU'lar yo˘gun olarak kullanılmaktadır. Fakat bunun yanında grafik kartları GPU'lar (grafik i¸slem birimi) da oldukça yaygın kullanım alanına sahip olmu¸slardır. GPU'lar özel olarak grafik i¸slemleri için geli¸stirilmi¸slerdir ancak yıllar önce yapılan çalı¸smalar sonucu grafik algoritmaları dı¸sında da birçok alanda kullanılmaya ba¸slamı¸stır. Buna öncülük eden en büyük geli¸sme Nvidia firmasının özel olarak kendi kartları için geli¸stirdi˘gi programlama dili CUDA'nın (hesaplamalı birle¸sik donanım mimarisi) ortaya çıkmasıdır. CUDA ile beraber kullanıcılar özel algoritmalar dı¸sında genel hesaplama i¸slemleri de yapabilme yetene˘gi kazandılar. Bununla birlikte grafik kartları da de˘gi¸sik mimarilerde üretilmeye ba¸slanmı¸stır. Bu tezde kullandı˘gımız Tesla K20 grafik kartını buna örnek olarak gösterebiliriz. Tesla K20 kartı grafik i¸slemlerinde kullanılamadı˘gı gibi sadece hesaplama i¸slemlerinde kullanılabilmektedir. Bu tarz grafik kartları ile gerçekle¸stirilen hesaplama i¸sine de GPGPU (Grafik ˙I¸slemcisinde Genel Amaçlı Hesaplama) denilmektedir. Tesla K20 donanımının enerji çıkı¸sı dı¸sında herhangi bir çıkı¸s slotu bulunmamakla birlikte bilgisayara da PCI-Express (Çevresel bile¸sen ba˘glantısı) ile ba˘glanmaktadır. Buna ek olarak birden çok GPU aynı anda kullanılarak aynı hesaplama i¸sini daha hızlı yapmak için kullanılabilmektedir. GPU'nun günümüzde mühendislik hesaplamalarında bu kadar kullanılmasını göze alarak biz de bu verimli hesaplama kartlarını Hesaplamalı Akı¸skanlar Dinami˘gi (HAD) uygulamalarında test ettik. HAD uygulamaları için oldukça yo˘gun hesaplamala zamanına, haliyle güçlü donanımlara ihtiyaç duyulabilmektedir. GPU'nun verimlili˘gi Molekül Dinami˘ginden, Yapay zeka algoritmalarına kadar birçok alanda ispatlanmı¸s ve yo˘gun olarak kullanılmaktadır. Ara¸stırmacılar genellikle algoritmaları GPU mimarisine özel olarak geli¸stirerek oldukça yüksek verim elde edebilmektedirler. Literatürde bugüne kadar GPU ile birçok HAD uygulamaları gerçekle¸stirilmi¸s ve oldukça yüksek performanslar elde edilmi¸stir. Biz de tez çalı¸smamızda açık kaynaklı bir kod olan OpenFOAM'ı kullanarak GPU üzerinde HAD simülasyonları gerçekle¸stirdik. OpenFOAM, nesneye dayalı programlama dili olan C++ kullanılarak kendine özel bir mimaride geli¸stirilmi¸stir. OpenFOAM yazılımı, C++ sayesinde genel akı¸skan fizi˘gini bilgisayar ortamına çok güzel adapte edilmi¸s ve oldukça kaliteli bir HAD çözücü olarak ortaya koyulmu¸stur. CPU i¸slemcisine göre geli¸stirilen bu yazılımın GPU'da kullanılması dı¸sarıdan eklenen kütüphaneler kullanılarak gerçekle¸stirilebilmektedir. Bu kütüphaneler HAD simülasyonundaki hesaplamanın tamamı ile ilgilenmek yerine sadece matris sistem çözümleme kısmı ile ilgilenmektedirler. xxi Matris sistem çözümleri HAD uygulamalarında hesaplama süresinin %80 ve üstü kısmını kapsamaktadır. Bu yüzden matris sistem çözümünün hızlandırılması di˘ger genel i¸slemlere göre daha fazla önem arzetmektedir. Fakat bu i¸slem sırasında CPU ve GPU arasında haberle¸sme oldu˘gu, bilgi transferi gerçekle¸sti˘gi için performansta dü¸sü¸se sebep olmaktadır. Bu yüzden mümkün oldu˘gunda CPU-GPU haberle¸smesi kısa tutularak, hesaplamanın yo˘gun oldu˘gu durumlarda GPU kullanımı önerilmektedir. Yani, zaman adımının kısa sürdü˘gü ve uzun zaman adımlarının gerekti˘gi simülasyonlardan çok zaman adımının uzun sürdü˘gü simülasyonlarda GPU kullanımı performanstan kazanç sa˘glayabilir. Tabi yorum özel olarak OpenFOAM'da GPU kullanımı için yapılmaktadır. GPU için kullanılan bu kütüphaneler her zaman adımında CPU-GPU arasında bilgi transferi gerçekle¸stirdi˘gi için kısa süren zaman adımlı simülasyonlarda haberle¸smeye harcanan sürenin toplam hesaplama süresine oranı daha yüksek olaca˘gından, performans kazancından çok muhtemelen CPU'dan daha dü¸sük bir performans gösterebilir. Bu ¸sekilde OpenFOAM'a eklenebilen olan kütüphaneler olarak Cufflink ve Paralution kütüphaneleri bulunmaktadır. Bunun yanında CPU-GPU haberle¸smesini mümkün mertebe azaltmak için, OpenFOAM baz alınarak, geli¸stirilmi¸s bir ba¸ska yazılım olan RapidCFD'de HAD uygulamalarında verimli GPU hesaplaması yapmaya olanak sa˘glamaktadır. Bu yazılım da OpenFOAM'ın matris sistem çözümlemesine ek olarak Kısmi Diferansiyel Denklem (PDE) ayrıkla¸stırmasını da GPU'da gerçekle¸stiriyor. Bu sayede GPU-CPU arasında gerçekle¸sen haberle¸smenin minimuma inmesi ve matris format de˘gi¸sikli˘gi/kopyalanması gibi i¸slemler de saf dı¸sı bırakıldı˘gı için performansta oldukça artı¸s gösterebilmektedir. Bu kütüphane ve yazılımların çalı¸sma sistemi de göz önüne alınarak birden çok farklı HAD modelinde de˘gi¸sik ölçekteki simülasyonlar test edilerek kar¸sıla¸stırmalar yapılmı¸stır. Tez çalı¸smamızda, OpenFOAM'da birden çok GPU hesaplama yöntemini test etmemizin sebebi bu kütüphane ve yazılımların kendine has artı ve eksileri bulunmasıdır. Örne˘gin, RapidCFD do˘gası gere˘gi yöntemler arasında yüksek performansı göstermesi beklenmektedir fakat OpenFOAM'ın bütün fonksiyonlarını kapsamamaktadır çünkü kendi ba¸sına bir yazılım oldu˘gu için bu yazılımı geli¸stiren ara¸stırmacılar RapidCFD'yi OpenFOAM'ın belli ba¸slı çözücülerini CUDA'ya adapte ederek yayınlamı¸slardır. Bunun yanında Paralution'da oldukça kaliteli bir linear cebir kütüphanesi olmakla beraber tam kapsamlı Paralution yazılımına ula¸smak için lisans parası ödemek gerekmektedir. Örne˘gin, açık kaynak olan Paralution sürümünde çoklu GPU kullanımı kısıtlanmı¸stır, yani, sadece tek GPU ile hesaplamala i¸slemi gerçekle¸stirilebilmektedir. Cufflink kütüphanesi ise açık kaynaklı ve çoklu GPU kullanımına uygun olmasına ra˘gmen ilk yayınlanma sürümünden (0.0.1) sonra bir geli¸stirmeye tabi tutulmamı¸stır. Bunun yanında OpenFOAM'ın bir dalı olan foam-extend için geli¸stirilen bir kütüphanedir. Bahsedilen yazılım ve kütüphaneler kullanılarak OpenFOAM'ın üç ayrı test vakası için simülasyonlar gerçekle¸stirilerek performans kıyaslaması yapılmı¸stır. Bu test vakalarının ilkinde pitzDaily modelinin geometrisi kullanılarak nonNewtonianIcoFoam, non-Newtonian sıkı¸stırılamaz laminar akı¸s çözümleyicisi kullanılarak gerçekle¸stirilmi¸stir. Ikinci olarak da plateHole vakasının üstünde, solidDisplacementFoam çözümleyicisinin farklı yöntemlere göre GPU performans kıyası yapılmı¸stır. Son olarak da klasik lidDriven vakasında icoFoam, laminar sıkı¸stırılamaz akı¸s çözümleyicisi, kullanılarak kıyas yapılmı¸stır. Bütün çalı¸smalar sonucu elde etti˘gimiz verilerle üç ayrı GPU hesaplama yönteminin; Cufflink, Paralution ve RapidCFD kıyaslanması yapılmı¸stır. Cufflink kütüphanesinin xxii bir güzel yanı da aslında foam-extend için geli¸stirilmi¸s olmasıdır. Çünkü OpenFOAM dünyasında Sıvı-Katı Etkile¸sim (FSI) modelleri foam-extend için geli¸stirilmi¸stir. Bu yüzden herhangi bir FSI simülasyonunu GPU'da çözmek istersek bunu Cufflink kullanarak gerçekle¸stirebilmekteyiz. Cufflink kütüphanesinin çalı¸sma prensibi, CUDA'ya ait olan Cusp ve Thrust kütüphanelerini ba˘glamaya dayalıdır. Bu yüzden bireysel geli¸stirmelerde veya daha güncel CUDA kütüphanelerini OpenFOAM'a integre etme çalı¸smalarında güzel bir örnek te¸skil etmektedir. Tez çalı¸smamızın asıl amacı, iki-fazlı kan akı¸sı modellenmesinin GPU ile çözümlenmesine incelemektir. Iki-fazlı kan akı¸sı modellememizi, Kırmızı Kan Hücreleri (RBCs) ve plazma fazını iki ayrı akı¸skan kabul ile gerçekle¸stirmekteyiz. Iki-fazlı kan akı¸sı modellemesi daha çok toplardamarlarda, kan akı¸s hızının dü¸sük oldu˘gu yerlerde, daha çok önem arzetmektedir çünkü kırmızı kan hücreleri kan akı¸sının hızının dü¸sük oldu˘gu yerlerde daha baskın olarak kan akı¸sına daha çok non-Newtonian bir etki yaratmaktadır. Bizim kullandı˘gımız HAD çözümleyicisi, kırmızı kan hücrelerinin gösterdi˘gi non-Newtonian viskozite modelini içerdi˘gi için kırmızı kan hücrelerinin gözlemlenmesi mümkün olmaktadır. Bu viskozite modeli sadece kan akı¸sı için gerçekle¸stirilen deneyler sonucunda ortaya çıkan veriler kullanılarak geli¸stirildi˘gi için toplardamarlarda oldukça gerçekçi kan akı¸sı fizi˘gi ortaya koyabilmektedir. Kırmızı kan hücrelerinin viskozite için kullanılan bu modelin ismi modifiye Carreau-Yashuda model olarak geçmekte ve aslında üç fazlı kan akı¸sı (kırmızı kan hücreleri, plazma, beyaz kan hücreleri) için tanıtıldı˘gı gibi iki fazlı kan akı¸sı (kırmızı kan hücreleri, plazma) için de uyarlanabilmektedir. Bu model toplardamarlarda oldu˘gu gibi dü¸sük hızdaki kan akı¸sı için uygun bir yakla¸sım vermektedir. Non-newtonian karaktere sahip olan iki-fazlı kan akı¸sında, kırmızı kan hücrelerinin viskozitesi için deneysel veriler sonucu elde edilmi¸s modifiye Carreau-Yashuda modeli kullanılırken di˘ger plazma fazı için de Newtonian akı¸skan kabulü olan sabit viskoziteli akı¸skan modeli kullanılmı¸stır. Kullandı˘gımız modelde non-Newtonian faz olan kırmızı kan hücrelerinin viskozitesi, karı¸sım halinde olan kandaki kırmızı kan hücrelerinin hacim oranına (hematokrit) ve kayma oranına (shear rate) göre de˘gi¸smektedir. Iki fazlı kan akı¸sı modelimiz karı¸sım teorisine göre, yani iki ayrı Navier-Stokes denklemi fazlar arası parametreler dahil edilerek her faz için çözümlenmektedir. Simülasyonlarda kullandı˘gımız viskozite modeli OpenFOAM'ın kütüphanelerinde bulunmadı˘gı için ekstra bir kodlama ile eklenmi¸stir. Bu modeli OpenFOAM'a kendimiz ekledi˘gimiz için literatürde bulunan bir deneysel veri ile validasyon çalı¸sması gerçekle¸stirilmi¸stir. Simülasyonlar için OpenFOAM'da karı¸sım teorisini kullanan twoPhaseEulerFoam çözümleyicisini kullandık. Bu çözümleyici bahsetti˘gimiz gibi iki ayrı Navier-Stokes denklemlerini her faz için fazlar arası etkile¸sim parametrelerini de dahil ederek çözümlemektedir ve bu i¸slemler OpenFOAM içinde zaten tanımlanmı¸s bulunmaktadır. Biz, sadece kırmızı kan hücrelerinin viskozite modeli için ekstradan kod eklemesi yapmı¸s bulunmaktayız. Toplardamarlarda kan akı¸sı simülasyonundan önce, twoPhaseEulerFoam çözümleyicisini kullanarak OpenFOAM'ın bubbleColumn isimli test modelinde GPU hesaplama çalı¸sması gerçekle¸stirdik ve akabinde iki-fazlı akı¸s modelimizin do˘grulamasını bir deneysel çalı¸sma ile kıyaslayarak gerçekle¸stirdik. Son olarak da do˘gruladı˘gımız kan akı¸sı modelimizi Cufflink ile GPU üstünde test ederek toplardamar içinde iki-fazlı kan akı¸sı yakla¸sımıyla simülasyonumuzu gerçekle ¸stirdik. Cufflink kullanmamızın sebebi ise foam-extend için geli¸stirilmi¸s olması ve haliyle gelecekteki FSI simülasyonlarında GPU kullanımını gerçekle¸stirebiliyor olmamız. Toplardamardaki kan akı¸sında FSI özelli˘gi oldukça önem arzetmekte çünkü toplardamarlarda bulunan venöz mekanizmalarının da modellenmesi kan akı¸sının tamamen gerçekçi olarak ortaya konulmasında elzemdir. Tez çalı¸smamızdaki asıl amacımız toplardamardaki kan akı¸sının GPU kullanılarak simüle edilmesi oldu˘gu için çalı¸smamızda daha çok Cufflink kütüphanesine önem verilmi¸stir.

Author

Meysam Aboutalebı

How to Cite

Meysam Aboutalebı (Yüksek Lisans Tezi). Çok-fazlı kan akış simülasyonları için heterojen hesaplama, 2018, İstanbul Technical University.

Keywords

License

Tüm Hakları Saklıdır

This work is shared under the specified license terms.

More theses from İstanbul Technical University