Lattıce Boltzmann yönteminin Coarray fortran ile paralelleştirilmesi
PARALLELIZING THE LATTICE BOLTZMANN METHOD WITH CO ARRAY FORTRAN
Yazar: FADİLE YUDUM ÇÖMEZ ÖZGÜN
Danışman: PROF. DR. NEVSAN ŞENGİL
Türk Hava Kurumu Üniversitesi / Havacılık ve Uzay Bilimleri Enstitüsü / Makine ve Uçak Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Makine Mühendisliği = Mechanical Engineering ; Uçak Mühendisliği = Aircraft Engineering

Özet:
Lattice Boltzmann yönteminin (LBM), Navier-Stokes ve Euler gibi klasikleşmiş hesaplamalı akışkanlar dinamiğinde (HAD) kullanılan yöntemlere göre belirli avantajları vardır. Programcılar lattice Boltzmann yönteminin basit algoritması sayesinde, tek ve çok fazlı, karmaşık geometrili ve yüksek Knudsen sayılı akışlar için daha kısa sürede çözücü geliştirebilmektedir. Bu çalışmada lattice Boltzmann yönteminin Coarray Fortran (CAF) ile paralelleştirilmesi için çalışılmıştır. CAF'ın paralelleştirme için pek çok yararı vardır. Bunlardan ilki, MPI ve OpenMP gibi diğer çok bilinen paralelleştirme araçlarına göre daha az sayıda kod dizisi gerektirmesidir. İkincisi, geliştirilen kodun anlaşılırlığı ve takip edilebilirliği oldukça kolaydır. Lattice Boltzmann yönteminin paralel verimliliği, verilerinin yerel olması sayesinde, oldukça yüksektir. Çok çekirdekli iş istasyonunda geliştirilen ve çalıştırılan LBM çözücüsü için, alan parçalama tekniği kullanılmıştır. Alan parçalama tekniği ile hesaplama alanı parçalara bölümlenir ve her parça farklı çekirdeklerde hesaplanır. CAF'ın bir diğer özelliği ise, sınır örgü noktalarında veri değişimini otomatik olarak yapmasıdır. LBM kodu kapak tahrikli kovuk akışı üzerinde test edilmiştir. Testler, sekiz çekirdekli iş istasyonunda Intel Fortran derleyici kullanılarak gerçekleştirilmiştir. Bu çalışmada LBM D2Q9 modeli kullanıldı. Paralel LBM çözücü için, çözüm süresi ve paralel verimlilikler hesaplandı ve grafiklerle karşılaştırıldı.
Anahtar Kelimeler: kare çalışma alanı, lattice Boltzmann yöntemi, PGAS, Coarray Fortran

Abstract:
Lattice Boltzmann method has some distinct advantages compared to the conventional computational fluid dynamics methods such as Navier-Stokes and Euler. Program developers take advantage of the LBM's simple algorithm and implement Lattice Boltzmann method successfully to single and multiphase flows in the complex geometries and high Knudsen number regimes. LBM's unique programming structure is also makes the parallelization of the method quite practical. In this study we focused on the parallelization of the LBM with Coarray Fortran (CAF) technique. There are some benefits of the CAF. First, CAF requires less line of codes. Next, understanding and maintaining the code developed by CAF is easier. Finally, parallelization efficiency of the LBM is relatively high because of the locality of the data. We also aimed to develop and run our LBM solver on a multi-core workstation. Using domain decomposition technique, the whole computational domain is further divided to sub-domains and each sub-domain is assigned to a different core for calculations. Data exchanges between border lattice points are realized with the Coarray feature of the CAF. We decided on a lid-driven cavity flow to test our solver. Tests were realized on an eight-core workstation using Intel Fortran compiler. In these tests, we have used LBM D2Q9 model. After validation tests of the parallel LBM solver solution times and parallel efficiencies were calculated and plotted to show the parallel performance figures of the Coarray Fortran.
Key Words: cavity flow, lattice Boltzmann method, PGAS paradigm, Coarray Fortran.