Çok-fazlı kan akış simülasyonları için heterojen hesaplama
Bu tez size mi ait?
Bu kayıt toplu arşivden geldi. Sizinse profilinize bağlayın.
Özet (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.
Yazar
Meysam Aboutalebı
Kurum
Bu Yayına Nasıl Atıf Yapılır
Meysam Aboutalebı (Yüksek Lisans Tezi). Çok-fazlı kan akış simülasyonları için heterojen hesaplama, 2018, İstanbul Technical University.
Anahtar Kelimeler
Lisans
Tüm Hakları Saklıdır
Bu eser belirtilen lisans koşulları altında paylaşılmaktadır.
İstanbul Technical University tezlerinden daha fazlası
- Investigation Of Stretching Effect With Mixed Finite Element Formulations For Laminated Beams And Plates(2023)
- Moebius elektrolizi anot çamurlarından platin grubu metallerin uzaklaştırılması ve geri kazanımı(2015)
- Metrolarda yangın güvenlik önlemleri(2015)
- Bir eylem/eğlen[ce] laboratuvarı olarak fun palace: Mekansal deneyim açılımları ve yansımaları(2015)
- Dynamic analysis of adaptive aircraft wings modelled as thin-walled composite beams(2015)
- Darpa Suboff denizaltı modeli ile bu modelden yeni türetilen formların hesaplamalı akışkanlar dinamiği (HAD) ile sayısal direnç hesabı(2015)