dc.contributor.advisor | Çelebi, Mustafa Serdar | |
dc.contributor.author | Aboutalebi, Meysam | |
dc.date.accessioned | 2020-12-07T10:01:18Z | |
dc.date.available | 2020-12-07T10:01:18Z | |
dc.date.submitted | 2018 | |
dc.date.issued | 2018-11-28 | |
dc.identifier.uri | https://acikbilim.yok.gov.tr/handle/20.500.12812/128046 | |
dc.description.abstract | Teknolojideki geli¸smeler sonucunda artık hesaplamalı bilim ve mühendislikalanı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˘gunolarak kullanılmaktadır. Fakat bunun yanında grafik kartları GPU'lar (grafik i¸slembirimi) da oldukça yaygın kullanım alanına sahip olmu¸slardır. GPU'lar özelolarak grafik i¸slemleri için geli¸stirilmi¸slerdir ancak yıllar önce yapılan çalı¸smalarsonucu 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çingeli¸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 genelhesaplama 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 K20grafik kartını buna örnek olarak gösterebiliriz. Tesla K20 kartı grafik i¸slemlerindekullanılamadı˘gı gibi sadece hesaplama i¸slemlerinde kullanılabilmektedir. Bu tarzgrafik kartları ile gerçekle¸stirilen hesaplama i¸sine de GPGPU (Grafik ˙I¸slemcisindeGenel 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özealarak 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 olarakkullanılmaktadır. Ara¸stırmacılar genellikle algoritmaları GPU mimarisine özelolarak geli¸stirerek oldukça yüksek verim elde edebilmektedirler. Literatürde bugünekadar GPU ile birçok HAD uygulamaları gerçekle¸stirilmi¸s ve oldukça yüksekperformanslar elde edilmi¸stir. Biz de tez çalı¸smamızda açık kaynaklı bir kodolan OpenFOAM'ı kullanarak GPU üzerinde HAD simülasyonları gerçekle¸stirdik.OpenFOAM, nesneye dayalı programlama dili olan C++ kullanılarak kendine özel birmimaride geli¸stirilmi¸stir. OpenFOAM yazılımı, C++ sayesinde genel akı¸skan fizi˘ginibilgisayar 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'dakullanı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 yerinesadece matris sistem çözümleme kısmı ile ilgilenmektedirler.xxiMatris 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¸slemsırasında CPU ve GPU arasında haberle¸sme oldu˘gu, bilgi transferi gerçekle¸sti˘giiçin performansta dü¸sü¸se sebep olmaktadır. Bu yüzden mümkün oldu˘gundaCPU-GPU haberle¸smesi kısa tutularak, hesaplamanın yo˘gun oldu˘gu durumlardaGPU kullanımı önerilmektedir. Yani, zaman adımının kısa sürdü˘gü ve uzunzaman 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çinkullanılan bu kütüphaneler her zaman adımında CPU-GPU arasında bilgi transferigerçekle¸stirdi˘gi için kısa süren zaman adımlı simülasyonlarda haberle¸smeye harcanansürenin toplam hesaplama süresine oranı daha yüksek olaca˘gından, performanskazancı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 Paralutionkütüphaneleri bulunmaktadır. Bunun yanında CPU-GPU haberle¸smesini mümkünmertebe azaltmak için, OpenFOAM baz alınarak, geli¸stirilmi¸s bir ba¸ska yazılımolan RapidCFD'de HAD uygulamalarında verimli GPU hesaplaması yapmaya olanaksa˘glamaktadır. Bu yazılım da OpenFOAM'ın matris sistem çözümlemesine ek olarakKısmi Diferansiyel Denklem (PDE) ayrıkla¸stırmasını da GPU'da gerçekle¸stiriyor. Busayede GPU-CPU arasında gerçekle¸sen haberle¸smenin minimuma inmesi ve matrisformat de˘gi¸sikli˘gi/kopyalanması gibi i¸slemler de saf dı¸sı bırakıldı˘gı için performanstaoldukç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 çokfarklı HAD modelinde de˘gi¸sik ölçekteki simülasyonlar test edilerek kar¸sıla¸stırmalaryapılmı¸stır. Tez çalı¸smamızda, OpenFOAM'da birden çok GPU hesaplama yönteminitest etmemizin sebebi bu kütüphane ve yazılımların kendine has artı ve eksileribulunmasıdır. Örne˘gin, RapidCFD do˘gası gere˘gi yöntemler arasında yüksekperformansı 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¸stirenara¸stırmacılar RapidCFD'yi OpenFOAM'ın belli ba¸slı çözücülerini CUDA'ya adapteederek yayınlamı¸slardır. Bunun yanında Paralution'da oldukça kaliteli bir linearcebir kütüphanesi olmakla beraber tam kapsamlı Paralution yazılımına ula¸smakiçin lisans parası ödemek gerekmektedir. Örne˘gin, açık kaynak olan Paralutionsürümünde çoklu GPU kullanımı kısıtlanmı¸stır, yani, sadece tek GPU ile hesaplamalai¸slemi gerçekle¸stirilebilmektedir. Cufflink kütüphanesi ise açık kaynaklı ve çokluGPU kullanımına uygun olmasına ra˘gmen ilk yayınlanma sürümünden (0.0.1) sonrabir geli¸stirmeye tabi tutulmamı¸stır. Bunun yanında OpenFOAM'ın bir dalı olanfoam-extend için geli¸stirilen bir kütüphanedir. Bahsedilen yazılım ve kütüphanelerkullanılarak OpenFOAM'ın üç ayrı test vakası için simülasyonlar gerçekle¸stirilerekperformans kıyaslaması yapılmı¸stır. Bu test vakalarının ilkinde pitzDaily modeliningeometrisi kullanılarak nonNewtonianIcoFoam, non-Newtonian sıkı¸stırılamaz laminarakı¸s çözümleyicisi kullanılarak gerçekle¸stirilmi¸stir. Ikinci olarak da plateHolevakasının üstünde, solidDisplacementFoam çözümleyicisinin farklı yöntemlere göreGPU performans kıyası yapılmı¸stır. Son olarak da klasik lidDriven vakasındaicoFoam, 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üphanesininxxiibir güzel yanı da aslında foam-extend için geli¸stirilmi¸s olmasıdır. Çünkü OpenFOAMdünyasında Sıvı-Katı Etkile¸sim (FSI) modelleri foam-extend için geli¸stirilmi¸stir. Buyüzden herhangi bir FSI simülasyonunu GPU'da çözmek istersek bunu Cufflinkkullanarak 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üzdenbireysel geli¸stirmelerde veya daha güncel CUDA kütüphanelerini OpenFOAM'aintegre 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ümlenmesineincelemektir. 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ı kanakı¸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ükoldu˘gu yerlerde daha baskın olarak kan akı¸sına daha çok non-Newtonian bir etkiyaratmaktadır. Bizim kullandı˘gımız HAD çözümleyicisi, kırmızı kan hücreleriningösterdi˘gi non-Newtonian viskozite modelini içerdi˘gi için kırmızı kan hücreleriningözlemlenmesi mümkün olmaktadır. Bu viskozite modeli sadece kan akı¸sı içingerçekle¸stirilen deneyler sonucunda ortaya çıkan veriler kullanılarak geli¸stirildi˘gi içintoplardamarlarda 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-Yashudamodel 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ükhı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ücrelerininviskozitesi için deneysel veriler sonucu elde edilmi¸s modifiye Carreau-Yashuda modelikullanılırken di˘ger plazma fazı için de Newtonian akı¸skan kabulü olan sabit viskoziteliakı¸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ücrelerininhacim 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-Stokesdenklemi fazlar arası parametreler dahil edilerek her faz için çözümlenmektedir.Simülasyonlarda kullandı˘gımız viskozite modeli OpenFOAM'ın kütüphanelerindebulunmadı˘gı için ekstra bir kodlama ile eklenmi¸stir. Bu modeli OpenFOAM'akendimiz 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 kullanantwoPhaseEulerFoam çözümleyicisini kullandık. Bu çözümleyici bahsetti˘gimiz gibi ikiayrı Navier-Stokes denklemlerini her faz için fazlar arası etkile¸sim parametrelerini dedahil ederek çözümlemektedir ve bu i¸slemler OpenFOAM içinde zaten tanımlanmı¸sbulunmaktadır. Biz, sadece kırmızı kan hücrelerinin viskozite modeli için ekstradankod eklemesi yapmı¸s bulunmaktayız. Toplardamarlarda kan akı¸sı simülasyonundanönce, twoPhaseEulerFoam çözümleyicisini kullanarak OpenFOAM'ın bubbleColumnisimli 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 testederek 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¸stirebiliyorolmamı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ıntamamen gerçekçi olarak ortaya konulmasında elzemdir. Tez çalı¸smamızdaki asılamacı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. | |
dc.description.abstract | With the advancement in hardware technology, we are able to reach unprecedentedcomputational scalability and performance. Computational Science and Engineeringapplications now have highly effective computational resources other than CPUclusters. GPUs now have an important role in Computational Science and Engineeringapplications. In this study we have shown the efficiency of the usage of GPUs inComputational Fluid Dynamics (CFD). As CFD contains several numerical methodsto solve Partial Differential Equations (PDE), some of the numerical methods aresuitable for the usage of GPUs. Due to its computational architecture, GPUs canprovide rather good performance in some algorithms. The CFD software we usedfor this thesis is OpenFOAM, an open source leading CFD software. As most of theexpensive computational part of CFD takes place in the linear system solver, we haveused tools such as Cufflink and Paralution which are able to integrate with OpenFOAMand uses GPU only in the linear system solver part of CFD applications. Other thanthese tools, there is other software called RapidCFD, based on OpenFOAM, that isdeveloped to use GPUs for CFD applications in which GPU does not only take care oflinear system solution but also discretization of PDEs and other calculations to preparematrix system. All these tools have pros and cons as there is not one tool which isbetter than all, therefore, these softwares are compared in terms of their performance.We prefer to use Cufflink because it is developed for foam-extend which has FluidStructure Interaction functionality which is sometimes important for some blood flowapplications. The main purpose of this study is to make use of GPUs in blood flowespecially using two-phase mixture flow approach. Therefore, we have also developedtwo-phase blood flow model with a specific non-Newtonian model for Red BloodCells (RBCs) called modified Carreau-Yashuda Model. This realistic model has beenestablished after experimental data for only blood flow, especially RBCs. Eventually,our blood flow model is expected to be used with FSI functionality for the flow in deepveins where venous valve mechanism is present. Two-phase blood flow modellingwith the phases of RBCs and plasma is important to investigate the non-Newtonianbehaviour of RBCs dispersed in plasma. Eventually, this thesis is focused on the usageof GPUs using OpenFOAM, mainly for the blood flow in deep veins. | en_US |
dc.language | English | |
dc.language.iso | en | |
dc.rights | info:eu-repo/semantics/openAccess | |
dc.rights | Attribution 4.0 United States | tr_TR |
dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | |
dc.subject | Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol | tr_TR |
dc.subject | Computer Engineering and Computer Science and Control | en_US |
dc.title | Heteregeneous computing for multi-phase blood flow simulations | |
dc.title.alternative | Çok-fazlı kan akış simülasyonları için heterojen hesaplama | |
dc.type | masterThesis | |
dc.date.updated | 2018-11-28 | |
dc.contributor.department | Hesaplamalı Bilimler ve Mühendislik Anabilim Dalı | |
dc.identifier.yokid | 10198885 | |
dc.publisher.institute | Bilişim Enstitüsü | |
dc.publisher.university | İSTANBUL TEKNİK ÜNİVERSİTESİ | |
dc.identifier.thesisid | 520078 | |
dc.description.pages | 89 | |
dc.publisher.discipline | Diğer | |