GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ...

76
+ GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ MODELLENMESİNDE KULLANILMAK ÜZERE PRECONDITIONED CONJUGATE GRADIENT ALGORİTMASI GERÇEKLEŞTİRİMİ IMPLEMENTATION OF PRECONDITIONED CONJUGATE GRADIENT ALGORITHM FOR GROUNDWATER MODELLING ON GRAPHICAL PROCESSING UNIT YİĞİTCAN AKSARI Hacettepe Üniversitesi Lisansüstü Eğitim Öğretim ve Sınav Yönetmeliğinin BİLGİSAYAR Mühendisliği Anabilim Dalı İçin Öngördüğü YÜKSEK LİSANS TEZİ olarak hazırlanmıştır. 2010

Transcript of GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ...

Page 1: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

+

GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ MODELLENMESİNDE KULLANILMAK

ÜZERE PRECONDITIONED CONJUGATE GRADIENT ALGORİTMASI GERÇEKLEŞTİRİMİ

IMPLEMENTATION OF PRECONDITIONED CONJUGATE GRADIENT ALGORITHM FOR

GROUNDWATER MODELLING ON GRAPHICAL PROCESSING UNIT

YİĞİTCAN AKSARI

Hacettepe Üniversitesi

Lisansüstü Eğitim – Öğretim ve Sınav Yönetmeliğinin

BİLGİSAYAR Mühendisliği Anabilim Dalı İçin Öngördüğü

YÜKSEK LİSANS TEZİ

olarak hazırlanmıştır.

2010

Page 2: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

ÇOK ÇEKİRDEKLİ MİMARİDE YERALTI SU KAYNAKLARININ ANALİZİ VE MODELLENMESİNDE

KULLANILMAK ÜZERE BİR UYGULAMA TASARIMI VE GERÇEKLEŞTİRİMİ

DESIGN AND IMPLEMENTATION OF AN APPLICATION FOR GROUNDWATER ANALYSIS AND MODELLING ON

MULTIPROCESSOR ARCHITECTURE

YİĞİTCAN AKSARI

Hacettepe Üniversitesi

Lisansüstü Eğitim – Öğretim ve Sınav Yönetmeliğinin

BİLGİSAYAR Mühendisliği Anabilim Dalı İçin Öngördüğü

YÜKSEK LİSANS TEZİ

olarak hazırlanmıştır.

2010

Page 3: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

Fen Bilimleri Enstitüsü Müdürlüğü’ne,

Bu çalışma jürimiz tarafından BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI’nda YÜKSEK LİSANS TEZİ olarak kabul edilmiştir.

Başkan : ...............................................

(Prof.Dr. Ali Saatçi)

Üye (Danışman) : ...............................................

(Yrd.Doç.Dr. Harun Artuner)

Üye : ...............................................

(Yrd.Doç.Dr. Levent Tezcan)

Üye : ...............................................

(Yrd.Doç.Dr. Kayhan İMRE)

Üye : ...............................................

(Dr. Ahmet Burak CAN)

ONAY

Bu tez ...../...../..... tarihinde Enstitü Yönetim Kurulunca kabul edilmiştir.

Prof.Dr. Adil Denizli

FEN BİLİMLERİ ENSTİTÜSÜ

MÜDÜRÜ

Page 4: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

...,

Page 5: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

i

BAŞLIK

Yiğitcan AKSARI

ÖZ

Conjugate Gradient yöntemi doğrusal denklem dizgelerinin çözümünde kullanılan

bir sayısal çözümleme algoritmasıdır. Yöntemin yakınsamasını hızlandırmak

amacıyla preconditioner’lar geliştirilmiştir. Preconditioned conjugate gradient

yöntemi doğrudan yöntemlerle çözülmesi zor sorunların çözülmesinde etkin bir

şekilde kullanılmaktadır. Yeraltı su kaynaklarının modellenmesi de bu sorunlardan

biridir.

Bu yöntemlerin hızlandırılması büyük zaman tasarrufu sağlamaktadır, fakat

bilgisayar kümeleri ile yapılan gerçekleştirimler küçük bir kesimin erişiminde

olabilmektedir. Vektör bilgisayar benzeri yapılara sahip olan Grafik İşlem

Birimleri(GİB) kullanarak ise bu hızlanmaların ucuz maliyetle son kullanıcıya

ulaştırılması mümkündür.

Tez çalışmasında iki preconditioning algoritması ile çalışabilen conjugate gradient

yöntemi GİB üzerinde gerçekleştirilmiştir. Yeraltı su kaynaklarının

modellenmesinde kullanılan MODFLOW uygulaması ile bütünleştirilmiş halde

geliştirilen yöntem mevcut uygulama ile karşılaştırılmış ve başarım açısından

incelenmiştir.

Anahtar Kelimeler: CUDA, Koşut Programlama, Conjugate Gradient Yöntemi,

Sonlu Fark Yöntemi

Danışman: Yrd. Doç. Dr. HARUN ARTUNER, Hacettepe Üniversitesi, Bilgisayar

Mühendisliği Bölümü

Page 6: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

ii

BAŞLIK

Yiğitcan AKSARI

ABSTRACT

….

Keywords: CUDA, Parallel Programming, Conjugate Gradient Method, Finite

Difference Method

Advisor: Asst. Professor HARUN ARTUNER, Hacettepe University, Department of

Computer Engineering.

Page 7: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

iii

TEŞEKKÜR

...

Page 8: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

iv

İÇİNDEKİLER DİZİNİ

Sayfa

ÖZ i ABSTRACT ............................................................................................................. ii TEŞEKKÜR ............................................................................................................ iii

İÇİNDEKİLER DİZİNİ ............................................................................................. iv

ÇİZELGELER DİZİNİ ............................................................................................. ix

SİMGELER VE KISALTMALAR DİZİNİ .................................................................. x

1. GİRİŞ ........................................................................................................ 1

2. GRAFİK İŞLEM BİRİMLERİ İLE KOŞUT PROGRAMLAMA ................... 3

2.1. Grafik İşlem Birimlerinin Tarihsel Gelişimi ..................................................... 3

2.2. GİB Mimarisi ................................................................................................. 5

2.3. Örnek Bir GİB Mimarisi - CUDA .................................................................... 5

2.3.1. Nvidia GeForce GTX 200 Mimarisi ...................................................... 6

2.3.1.1. Warp İçi Dallanmaların Etkileri ...................................................... 7

2.3.1.2. Single Instruction Multiple Thread (SIMT) ..................................... 8

2.3.2. CUDA Programlama Modeli................................................................. 8

2.3.2.1. İş Parçacığı Sıradüzeni ................................................................. 9

2.3.2.2. Bellek Sıradüzeni ........................................................................ 11

3. MODELLEME ......................................................................................... 14

3.1. Örnek çalışma: Yeraltı Su Kaynaklarının Bilgisayar Yardımıyla

Modellenmesi ..................................................................................................... 14

3.2. Yeraltı Su Kaynaklarının Modellenmesinde Kullanılan Yazılımlar ............... 14

3.2.1. MODFLOW ........................................................................................ 14

3.2.2. Diğer Yazılımlar ................................................................................. 14

3.3. Yeraltı Su Akışı Denklemlerinin Çözümünde Kullanılan Yöntemler ............ 15

3.3.1. Preconditioned Conjugate Gradient Yöntemi ..................................... 15

Page 9: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

v

Yeraltı su kaynaklarının modellenmesinde, kısmi diferansiyel denklemler

çözümünde kullanılan sonlu fark ve sonlu eleman metodları da bu

özelliklere sahip sistemler oluşturur [1]. ...................................................... 15

3.3.1.1. Modified Incomplete Cholesky Preconditioner(MICCG) .............. 17

3.3.1.2. Least-squares Polynomial Preconditioner (POLCG) ................... 18

4. GERÇEKLEŞTİRİM................................................................................ 20

4.1. Sonlu Fark Yöntemi .................................................................................... 20

4.2. Conjugate Gradient Gerçekleştirimi ............................................................ 20

4.2.1. Conjugate Gradient Yönteminde Bellek ve İşlem İyileştirmeleri ......... 20

4.2.2. Conjugate Gradient Yönteminde Matrislerin Bellekte Saklanma Şekli21

4.2.3. P'nin hesaplanması............................................................................ 23

4.2.4. A Matrisi ile P vektörünün çarpılıp V'de saklanması ve PAP ile

ALPHA'nın hesaplanması.............................................................................. 24

4.2.5. Head ve Residual vektörlerinin hesaplanması ve en büyük değerlerinin

saklanması ..................................................................................................... 25

4.2.6. Kayan Noktalı Sayılarla Birikimli Toplama Gerçekleştirimi ................. 25

4.2.6.1. Kayan Noktalı Sayılarla Birikimli Toplama Hataları ..................... 26

4.2.6.2. GİB’de Kayan Noktalı Sayıların Birikimli Toplanması .................. 27

4.2.6.3. Kayan Noktalı Sayıların Toplanmasının Hız ve Hassasiyet

Açısından GİB ve AİB’nin Karşılaştırılması ................................................. 28

4.3. MICCG ........................................................................................................ 30

4.3.1. Forward ve Back Substitution Gerçekleştirimi.................................... 31

4.3.2. Forward Substitution’ın üç boyutlu sonlu fark yöntemi için koşut

çözülmesi ....................................................................................................... 33

4.3.3. Modelin GİB üzerinde yerleştirimi ...................................................... 33

4.3.4. Modelin GİB üzerindeki yerleştirimine bağlı yöntemler ...................... 34

4.3.4.1. Satır-sütun-katman(SSK) yerleştirimi .......................................... 35

Page 10: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

vi

4.3.4.2. Katman-satır-sütun(KSS) yerleştirimi .......................................... 36

4.3.4.3. Yerleştirim yöntemlerinin başarımlarının karşılaştırılması ........... 37

4.3.4.4. Modelin GİB üzerinde yerleştirimi hakkında sonuçlar .................. 40

4.3.4.5. Modelin blok içinde yerleştirimi .................................................... 40

4.3.4.6. Blok içi yerleştirimde koşutluğun arttırılması için kullanılan

yöntemler .................................................................................................... 41

4.3.4.7. Blok içi yerleştirim yöntemlerinin karşılaştırılması ....................... 44

4.3.5. Modelin GİB üzerindeki yerleştiriminden bağımsız bir yöntem........... 46

4.3.5.1. GİB yerleşiminden bağımsız yöntemin başarımı ve diğer

yöntemlerle karşılaştırılması ....................................................................... 48

4.3.6. MICCG Gerçekleştiriminin Başarımı .................................................. 52

4.4. POLCG Gerçekleştirimi ve Başarımı ........................................................... 53

4.5. MICCG ve POLCG Yöntemleri ile Preconditioned Conjugate Gradient

Gerçekleştirimin Başarımlarının Karşılaştırılması .............................................. 53

5. SONUÇ VE ÖNERİLER ......................................................................... 57

6. KAYNAKLAR ......................................................................................... 59

Page 11: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

vii

ŞEKİLLER DİZİNİ

Şekil 2.1 GİB ve AİB İçin Saniyedeki Kayan Noktalı İşlem ve Bellek Bant

Genişlikleri(4) .......................................................................................................... 4

Şekil 2.2 AİB ve GİB’de Aritmetik İşlem Birimlerinin(şekilde ALU) Dağılımı(4) ... 5

Şekil 2.3 GeForce GTX 280 Koşut İşlem Mimarisi(5) ......................................... 6

Şekil 2.4 Warp’ta Dallanma Örneğinin Akış Çizelgesi ........................................ 7

Şekil 2.5 CUDA Iş parçacığı sıradüzeni ............................................................ 10

Şekil 2.6 Farklı Bellek Türlerinin Farklı Bağlamlardan Erişilebilirlikleri .............. 12

Şekil 4.1 A matrisinin görünümü(13).(NCOL modeldeki sütun sayısı, NROW

modeldeki satır sayısı)........................................................................................... 22

Şekil 4.2 Şekil 4.3’teki modelin UT matrisi......................................................... 31

Şekil 4.3 Örnek bir model ................................................................................. 32

Şekil 4.4 Örnek modelin koşut işletilmesindeki bağlılıklar ve aşamalar ............ 33

Şekil 4.5 128x64 boyutlarındaki bir modelin GİB üzerinde gösterimi. ............... 34

Şekil 4.6 48 satır, 32 sütun ve 4 katmandan oluşan bir modelin GİB üzerine

satır-sütun-katman yerleştirimi .............................................................................. 36

Şekil 4.7 48 satır, 32 sütun ve 4 katmandan oluşan bir modelin GİB üzerine

katman-satır-sütun yerleştirimi .............................................................................. 37

Şekil 4.8 Sütun sayısı 100-2000 aralığında değiştirilen 1000 satır ve 8

katmandan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre ........ 38

Şekil 4.9 Satır sayısı 100-2000 aralığında değiştirilen 1000 sütun ve 8

katmandan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre ........ 38

Şekil 4.10 Katman sayısı 1-16 aralığında değiştirilen 1000 satır ve 1000

sütundan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre ........... 39

Şekil 4.11 KSS yönteminin AİB’ye göre hızlanması ........................................ 40

Şekil 4.12 GİB’de blok içi iş parçacıklarının yerleşimi ......................................... 41

Şekil 4.13 4 satır ve 16 sütundan oluşan bir modelin tek boyutlu 16’lık blok

yerleştirimi(üst) ve 4x4 boyutlarında bir alt matris yerleştirimi(alt) ile çözülmesi. ... 42

Şekil 4.14 Bir warp’ta çözüm için gereken aşama sayısının, bloğun sütun

sayısına göre değişimi ........................................................................................... 44

Page 12: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

viii

Şekil 4.15 Sütun sayısı 100-2000 aralığında değiştirilen 1000 satır ve 8

katmandan oluşan modelin iki yöntem için forward subs’ın aldığı süre ................. 45

Şekil 4.16 Satır sayısı 100-2000 aralığında değiştirilen 1000 sütun ve 8

katmandan oluşan modelin iki yöntem için forward subs’ın aldığı süre ................. 46

Şekil 4.17 GİB’de dört katmanlı bir modelin yerleştirimi...................................... 47

Şekil 4.18 Paylaşımlı bellekte saklanan 푥 × 푦 boyutlarındaki veriyi işleyen(푥 +

1) × (푦 + 1) boyutlarındaki alt matris. Turuncu kareler komşu bloklardan gelen,

mavi kareler blok içinde hesaplanan değerleri tutmaktadır. ................................... 48

Şekil 4.19 Farklı model boyutlarına bağlı hızlanma oranları. Ölçümler alınırken

diğer boyutlar 100 değerine sabitlenmiş şekilde belirtilen boyutun büyüklüğü

değiştirilmiştir. 49

Şekil 4.20 Küp bir modelin farklı kenar boyutlarına bağlı hızlanma oranları. ...... 50

Şekil 4.21 Değişik satır ve sütun sayılarına sahip modellerde yeni yöntem ile

KSS'ye göre elde edilen hızlanma. Ölçüm alınırken katman 8’e, diğer boyut ise

1000’e sabitlenmiştir. ............................................................................................. 51

Şekil 4.22 Değişik katman sayılarına sahip modellerde KSS'ye göre elde edilen

hızlanma. Modelin diğer boyutları 1000'e sabitlenmiştir. ....................................... 52

Şekil 4.23 Double Veri Tipi Biçimi(16) ............................................................. 26

Şekil 4.24 16 adet değerin 푂(log2)’de toplanması.............................................. 28

Şekil 4.25 Dizi Boyutuna Göre KTA’nın Aldığı Sürenin Farklı Ortamlara göre

Karşılaştırılması ..................................................................................................... 29

Page 13: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

ix

ÇİZELGELER DİZİNİ

Çizelge 2.1 GeForce GTX 200 GİB’lerinde Eşzamanlı Çalıştırılabilecek İş

Parçacığı Sayısı ...................................................................................................... 7

Çizelge 2.2 Vektör Toplaması Yapan Örnek Bir CUDA Koşut İşlev’i ve C

Dilinden Çağrılması ................................................................................................. 8

Çizelge 2.3 GİB’deki Bellek Çeşitlerinin Yazma/Okuma Özellikleri ve Kullanım

Amaçlarına Göre Sınıflandırılması ........................................................................ 13

Çizelge 4.1 SRNEW değerinin ve P matrisinin hesaplanmasının AİB ve GİB

üzerinde gerçekleştirimlerinin aldığı süre ve hızlanma oranları ............................. 24

Çizelge 4.2 V ve PAP ile ALPHA'nın hesaplanmasının AİB ve GİB üzerinde

gerçekleştiriminin aldığı süre ve hızlanma oranı .................................................... 24

Çizelge 4.3 Head ve Residual vektörlerinin hesaplanmasının AİB ve GİB üzerinde

gerçekleştiriminin aldığı süre ve hızlanma oranı .................................................... 25

Çizelge 4.4 MICCG yöntemi ile preconditioned matrisin elde edilmesi için AİB ve

GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı................................. 52

Çizelge 4.5 POLCG yöntemi ile preconditioned matrisin elde edilmesi için AİB ve

GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı................................. 53

Çizelge 4.6 MICCG ve POLCG yöntemleri ile conjugate gradient yönteminin bir iç

yinelemesi için AİB ve GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı

.............................................................................................................................. 54

Çizelge 4.6 MICCG ve POLCG yöntemleri ile bir yinelemenin ek yükü için AİB ve

GİB üzerinde harcanan süre ve hızlanma oranı .................................................... 54

Çizelge 4.5 Farklı Boyutlarda Double Türündeki Sayı Dizilerinin KTA Kullanılarak

Kümülatif Toplanması için Geçen Süre(ms) ve AİB’ye Göreli Hızlanma ............... 28

Çizelge 4.6 Fortran Ardıl Toplama ve CUDA KTA ile hesaplanan değerlerin

Fortran KTA ile hesaplanan değerlere göre Mean Absolue Percentage Error’ları . 30

Çizelge 4.7 Conjugate Gradient CUDA Gerçekleştirimi için Fortran Ardıl

Toplama ve CUDA KTA ile hesaplanan değerlerin Fortran KTA ile hesaplanan

değerlere göre Mean Absolue Percentage Error’ları ............................................. 30

Page 14: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

x

SİMGELER VE KISALTMALAR DİZİNİ

AİB Ana İşlem Birimi

CUDA Compute Unified Device Architecture

GAGİBP Genel Amaçlı Grafik İşlem Birimi Programlama

GİB Grafik İşlem Birimi

KTA Kahan Toplama Algoritması

Page 15: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

1

1. GİRİŞ

Sayısal çözümleme, matematiksel sorunların çözülmesi için geliştirilmiş sayısal

kestirim yöntemlerini içeren bilim dalıdır. Bu yöntemler kullanılarak doğrudan

yöntemlerle çözümü zor olan sorunlar, sonuca yakınsamaya çalışılarak

çözülmektir. Conjugate gradient de sayısal çözümleme alanında yaygın olarak

kullanılan bir yöntemdir. Conjugate gradient yöntemi kullanılarak belli şartları

sağlayan doğrusal denklem dizgeleri çözülebilmektedir [1]. Yeraltı su kaynaklarının

modellenmesi de bu yöntemin kullanım alanlarından biridir [2].

Yinelemeli olarak kullanılan bu sayısal çözümleme yöntemi büyük doğrusal

denklem dizgelerinin çözülmesi için uzun işletim zamanı gerektirmektedir. Bu

sebeple yöntemin koşut olarak çözülmesi MPI (Message Passing Interface) [3]

kullanılarak gerçekleştirilmiştir [4]. Ancak sayısal çözümleme yöntemlerinin

yakınsaması da önemli bir başarım ölçütüdür. Bu sebeple conjugate gradient

yöntemi kullanılarak çözülebilen fakat yine de uzun işletim süreleri gerektiren

sorunlar için yakınsamayı hızlandıran preconditioner’lar geliştirilmiştir [5].

Preconditioner kullanan yöntemler de, süper bilgisayarlar ve vektör bilgisayarlar

kullanılarak gerçekleştirilmiştir [6]. Fakat süper bilgisayar gerektiren algoritmaların

ve buna bağlı yazılımların yüksek maliyetli donanım ihtiyacı sebebiyle yaygın

kullanım kazanamamaktadır. Bu donanımların yerine son zamanlarda maliyeti

daha düşük olan Grafik İşlem Birimleri(GİB) kullanılmaktadır.

GİB’ler günümüzde gelişkin görsel işlemler yerine getirmek için çok çekirdekli ve

koşut bir yapıya evrilmişlerdir. Grafik kütüphanelerinin amaç dışı kullanılmasıyla

GİB’ler üzerinde genel amaçlı programlama yapılabilmekteydi. Bu durum Nvidia’nın

2007’de CUDA’yı (Compute Unified Device Achitecture) duyurması ile değişmiştir

[7]. CUDA sayesinde, GİB’i genel amaçlı programlama için grafik işlemlerinden

soyutlanmış şekilde kullanmak mümkün olmuştur.

Tez çalışması kapsamında preconditioned conjugate gradient yöntemi CUDA

kullanılarak GİB üzerinde gerçekleştirilmiştir. Bu gerçekleştirimin yapılması için hali

Page 16: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

2

hazırda yaygın şekilde yeraltı su kaynaklarının modellenmesinde kullanılan bir

yazılım olan MODFLOW temel alınmıştır. MODFLOW’daki conjugate gradient

yöntemi ve iki preconditioning yöntemi GİB’de gerçekleştirilmiştir. Conjugate

gradient yöntemi genel olarak koşut programlamaya uygun, veri bağımsız bir

algoritmadır. Fakat GİB mimarisinde sorun çıkaran; tekil bir değere birikimli

toplama ve yakınsama kararının verilmesi için en büyük değerin bulunması

işlemlerini de içermektedir. Ayrıca iki preconditioning yönteminden daha yüksek

başarıma sahip olan yöntemin gerçekleştirimi için back ve forward substitution

algoritmalarına ihtiyaç duyulmaktadır. Back ve forward substitution ve

preconditioned conjugate gradient yöntemi MODFLOW’da kullanılan sonlu fark

yöntemi için bilgimize göre ilk defa bizim tarafımızdan GİB’lerde gerçekleştirilmiştir.

Tez metni, GİB’lerin tarihsel gelişimi, Nvidia tarafından geliştirilmiş olan CUDA’nın

özellikleri ve GİB mimarisi anlatılarak başlayacaktır. Kesim 2’de conjugate gradient

yöntemi ve preconditioning yöntemleri anlatılacaktır. Kesim 3’te ise bu

matematiksel yöntemlerin bilgisayar ortamında GİB kullanılarak gerçekleştirilmesi

ve başarımları üzerine eğilinecektir. Öncelikle conjugate gradient yönteminin

gerçekleştirimi ve kayan noktalı sayılarla birikimli toplama için geliştirilen yöntem ile

elde edilen başarım değerlendirilecektir. Ardından Modified Incomplete Cholesky

Preconditioner(MICCG) gerçekleştirimi kapsamında forward ve back substitution

algoritmalarının GİB üzerinde yerleştirime bağlı ve bağımsız yöntemlerle

gerçekleştirimi anlatılacak ve başarım ölçümleri verilecektir. Diğer preconditioning

algoritması olan Least-squares Polynomial Preconditioner’ın (POLCG) GİB

üzerinde gerçekleştirimi anlatıldıktan ve başarım ölçümleri verildikten sonra iki

yöntem ve toplam başarım karşılaştırılacaktır. Son kesimde ise yapılan çalışmanın

sonuçlarından ve devamında yapılabilecek geliştirmelerden bahsedilecektir.

Page 17: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

3

2. GRAFİK İŞLEM BİRİMLERİ İLE KOŞUT PROGRAMLAMA

2.1. Grafik İşlem Birimlerinin Tarihsel Gelişimi

Ekran kartları grafik sorunlarına çözüm üretmek için geliştirilmiştir. Fakat 1999'da

Nvidia'nın Geforce 256 ekran kartı ile donanımsal olarak aydınlatma ve

dönüştürme işlemlerini gerçekleştirmeye başlaması ile ekran kartları Grafik İşlem

Birimi(GİB) olarak adlandırılmaya başladı [8]. 2001'de Nvidia tarafından Geforce 3

Serisi GİB'lerin piyasaya sürülmesi ile genel işlemler için GİB'lerin kullanılabilmesi

mümkün hale gelmiştir. Bu donanımlarda üzerinde işlem yapılacak dizi ya da

matrisler doku formuna dönüştürülmekte ve üzerlerinde işlem yapılmaktaydı [9].

Bunun için genellikle OpenGL kullanılmaktaydı. Örneğin bir OpenGL doku türü

seçilmekte ve aslen renk bilgilerinin olması gereken yere sayısal değerler

atanmaktaydı. Yani RGBA (Red-Green-Blue-Alpha) renk kanallarına sahip bir

dokuda, bu değerlerin her biri float değişkenler olarak tutulmaktaysa her doku

pikseline işlem yapılacak dört değerin atanması ve haritalanması gerekmekteydi.

Bu atanma işlemi yapıldıktan sonra işlemler yapılması için kernel’ler (koşut işlev)

yazılmaktadır.

Koşut işlevler Nvdia'nın Cg [10] adını verdiği basit bir C benzeri programlama dili

ile yazılmakta ve en azından GİB'e gönderilen veriler üzerinde yapılacak genel

amaçlı işlemlerin karmaşık shader işlemleriyle gerçekleştirilmesinden

kurtarmaktadır. Fakat koşut işlev içinde sağlanan bu rahatlık gene de geçilen doku

türünün bilinmesi ve ona göre programlama yapılmasını gerektiriyordu. Ayrıca

doku türleri ve mimarilerin seriden seriye değişmiş olması tüm donanımlar üzerinde

hatasız ve değişikliksiz kod yazılmasını zorlaştırmakta ve sorunlara sebep

olmaktaydı. Aynı zamanda genel amaçlı programlama yapmak için gerekli grafik

programlama bilgisi öğrenme koşullarını zorlaştırmaktaydı.

Nvidia GİB’lerinin Intel ana işlem birimleri(AİB) ile tarihsel olarak karşılaştırılması

için Şekil 2.1 incelenebilir;

Page 18: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

4

Şekil 2.1 GİB ve AİB İçin Saniyedeki Kayan Noktalı İşlem ve Bellek Bant

Genişlikleri [7]

Page 19: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

5

2.2. GİB Mimarisi

GİB’lerin AİB’lerinden mimarileri yaptıkları işler sebebiyle farklılaşmıştır. Bu farklar

da Şekil 2.1’de görüldüğü üzere kayan noktalı sayı işlemlerinde oluşmuştur. Bu

konuda böyle büyük bir fark oluşmasının sebebi, GİB’lerin grafik işlemlerinin temeli

olan doku kaplama işlemlerinin, işlem yoğun ve yüksek seviyede koşutluk

gerektirmesidir. Bu sebeple akış denetimindense veri işlemeye Şekil 2.2’de de

görülebileceği gibi GİB’lerde AİB’lerden çok daha fazla yer ayrılmıştır.

Şekil 2.2 AİB ve GİB’de Aritmetik İşlem Birimlerinin(şekilde ALU) Dağılımı [7]

GİB’ler bu sebeple işlem yoğun sorunlara çözüm üretebilmekte etkilidirler. İşlem

yoğun sorunlar; aynı programın yüksek miktarda veri birimi için koşut olarak

gerçekleştirilmesi gereken, bellek erişiminin az, aritmetik işlemlerin yoğun olduğu

sorunlar olarak özetlenebilir. Her veri birimi için aynı kod işletildiğinden akış

denetiminde basit çözümler yeterlidir. Aynı zamanda aritmetik işlem yoğun olduğu

için bellek erişimlerinde kaybedilen zaman büyük önbellek alanlarına ihtiyaç

olmadan hızlı kayan noktalı işlem başarımı sayesinde gözardı edilebilmektedir.

2.3. Örnek Bir GİB Mimarisi - CUDA

CUDA, NVIDIA şirketi tarafından geliştirilen GİB’ler için grafik kodlarına ihtiyaç

duymadan genel amaçlı programların geliştirilmesini sağlayan bir yazılım geliştirme

ortamıdır [7]. CUDA, eski Genel Amaçlı Grafik İşlem Birimi Programlama(GAGİBP)

diyalektiğinden farklı olarak üzerinde çalışılan ortamın bir GİB olduğunu

Page 20: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

6

kullanıcıdan soyutlamaktadır. Bu soyutlama sayesinde koşut yazılımlar

geliştirilirken grafik programlamaya dair bilgiye sahip olmaya ya da genel amaçlı bir

matrisi ekran kartı üzerinde işlenecek hale getirmek için fazladan kod yazmaya

gerek yoktur. Bu sebeplerle CUDA gittikçe gelişen ve ekran kartlarını gün geçtikçe

daha çok yardımcı işlemci konumuna yaklaştıran bir görev üstlenmektedir.

2.3.1. Nvidia GeForce GTX 200 Mimarisi

Tezde kullandığımız Nvidia GTX 280 model ekran kartı, Nvidia’nın Haziran

2008’de piyasaya sürdüğü GTX 200 mimarisine sahip ekran kartları ailesinden

gelmektedir. GAGİBP, GİB mimarisine çok bağlı olduğu için bu bölümde kullanılan

ekran kartının mimarisine değinilecektir. GTX 280 ekran kartının koşut işlem

mimarisi Şekil 2.3’te görülebilir.

Şekil 2.3 GeForce GTX 280 Koşut İşlem Mimarisi [11]

Page 21: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

7

Şekil 2.3’te siyah kutularla gösterilmiş şekiller İş Parçacığı İşleme Kümesi(Thread

Processing Cluster) olarak adlandırılmaktadır. Bu kümelerin içinde açık yeşille

belirtilmiş Streaming Processor(SP)lar bulunmaktadır. Bu çekirdekler sekizer adet

gruplandırılmış ve bir Streaming Multiprocessor(SM) içinde bulunmaktadır. Her

Streaming Processor 32 adet iş parçacığının eşzamanlı çalışmasını sağlayan warp

yapısına sahiptir. SM’ler de eğer yönettikleri SP’lerin her biri aynı kodu işletiyor ve

kodda dallanma olmuyorsa aynı anda 32 adet warp’ı birden yönetebilirler.

Çizelge 2.1 GeForce GTX 200 GİB’lerinde Eşzamanlı Yönetilebilecek İş

Parçacığı Sayısı

Yonga TPC SM / TPC İş Parçacığı / SM Toplam İş Parçacığı / Yonga

GeForce GTX 200 10 3 1.024 30.720

Az önce belirttiğimiz varsayıma göre iş parçacıklarının tümü eşzamanlı olarak (her

SP 32 iş parçacığı, her SM 32 warp) yönetilebilirse Çizelge 2.1’de çıkarıldığı gibi

GeForce GTX 280’de eşzamanlı olarak 30.720 adet iş parçacığı çalıştırılabilir.

2.3.1.1. Warp İçi Dallanmaların Etkileri

Bir SP’de 32 iş parçacığının aynı anda çalışabilmesi ancak aynı kod satırının

dallanma olmaksızın çalıştırabilmesi ile mümkündür. Eğer dallanma belli iş

parçacıklarının birbirine bağlılığına dayalıysa koşutluktan ödün verilmek zorunda

kalınır.

Şekil 2.4 Warp’ta Dallanma Örneğinin Akış Çizelgesi

else

0 nolu thread bekler diğer thread'ler çalışır

if(threadIdx.x = 0)

0 nolu thread çalışır diğer thread'ler bekler

Page 22: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

8

Şekil 2.4’teki gibi bir dallanma iki dallanmada da aynı sürenin harcandığı

varsayılırsa işlemin dallanmasız halinin iki katı kadar süre alır. Dallanmaların

homojen dağılması kabul edilebilir süre kayıplarına sebep olur. Fakat dallanma

heterojenliği arttıkça ve en kötü koşullarda ardıllaştığında başarım azalır.

Dallanmaların farklı sürelerde işletilebileceği de hesaba katılırsa dallanmaların

toplam maliyeti her bir dallanmanın işletim süresinin toplamı olarak hesaplanabilir.

Bu sebeple warp içinde dallanmaları azaltmak başarıma katkıda bulunmaktadır.

2.3.1.2. Single Instruction Multiple Thread (SIMT)

Nvidia, GİB’lerinde iki farklı koşut işlem mimarisi gerçekleştirmiştir. TPC’lerdeki

işletim MIMD mimarisi kullanılırken, SM’lerdeki işletimde SIMT yapısı

kullanılmaktadır. Bu yapı SIMD’e yakın olsa da, hem başarım hem de

programlama kolaylığı sağlamaktadır. SIMT, iş parçacıklarının rastgele dağılımına

olanak sağlar ve verilerin vektör olarak tanımlanmasına gerek duymaz. SIMT her iş

parçacıklarının dallanmasına olanak sağladığı ve dallanmaları donanım tarafında

ele aldığı için programlama kolaylığı sağlar. Bu dallanmalar ardıl olarak ele alınır

ve çok parçalı dallanmalarda başarım kaybına sebep olur.

2.3.2. CUDA Programlama Modeli

CUDA Programlama Modeli, C dilini genişleterek GİB’deki birimlere erişimi ve kod

yazılmasını kolaylaştırmayı amaçlamaktadır. Bu amaçla CUDA, C genişletmesi ile

GİB’de çalışmak üzere koşut işlev’ler yazılabilmektedir.

Çizelge 2.2 Vektör Toplaması Yapan Örnek Bir CUDA Koşut İşlev’i ve C Dilinden

Çağrılması //koşut işlev tanımı

__global__ void VekTop(float* A, float* B, float* C)

{

int i = threadIdx.x;

C[i] = A[i] + B[i];

Page 23: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

9

}

int main(){

// koşut işlev çağrısı

VekTop<<<1, N>>>(A, B, C);

}

Çizelge 2.2’de görüldüğü üzere koşut işlev tanımlanırken __global__ tanım

belirteci kullanılır. Ayrıca <<<...>>> sözdizimi kullanılarak koşut işlevin kaç iş

parçacığı ile hangi yapıda düzenlenmiş iş parçacıklarıyla çalışabileceği

tanımlanmaktadır. Bu sözdizimi koşut işlevin çalışacağı ızgarayı tanımlamaktadır.

2.3.2.1. İş Parçacığı Sıradüzeni

Izgara, CUDA’da tanımlanan iş parçacığı sıradüzeninin en üstünde bulanan

yapıdır. Iş parçacığı sıradüzenini CUDA’da yazılım geliştirme mantığında önemli bir

rol oynamaktadır. Iş parçacığı sıradüzenini, ızgara, blok ve iş parçacığı olarak üç

adımda incelenebilir. Şekil 2.5’te bu yapıların yerleşimi incelenebilir.

Page 24: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

10

Şekil 2.5 CUDA Iş parçacığı sıradüzeni

Izgara, tek ya da iki boyutlu olarak tanımlanabilen ve içinde blokları barındıran

yapıdır. Izgara temelde verinin boyutlarına ve şekline bağlıdır, fakat blokların sayısı

ve içlerinde bulundurduğu iş parçacığı sayıları da boyutları belirleyen

etkenlerdendir. Izgaranın en fazla alabileceği boyut 65535(2 ) ile sınırlıdır. Izgara

Page 25: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

11

GİB’de eşzamanlı çalıştırılabilecek blok ve iş parçacığı sayısını geçecek şekilde

tanımlanabilir, bu durum donanım tarafından ele alınmaktadır.

Blok, bir SP içerisinde çalıştırılacak iş parçacıklarının sayısını ve yerleşim şeklini

tanımlamak için kullanılan yapıdır. Tek, iki veya üç boyutlu olarak tanımlanabilir ve

en fazla 512 adet iş parçacığı içerebilir. Mevcut Nvidia GİB’leri, iş parçacıkları 32’lik

gruplar yani warp’lar halinde çalıştırdıkları için bu iş parçacıklarının hepsinin

eşzamanlı çalışması sözkonusu değildir.

Yüksek başarım elde edebilmek için blok boyutunun SP’nin tüm kaynaklarını etkin

kullanabilecek şekilde tanımlanması gereklidir. SP başına ayrılmış paylaşımlı

bellek boyutu ve yazmaç adeti, tüm GİB üzerinde doluluk sağlanması için dikkat

edilmesi gereken etmenlerdir.

Bloklar birden çok SP üzerine bölüştürülemezler, fakat bir SP üzerinde birden çok

blok çalışabilir. Bu durum da donanımsal olarak ele alınır ve GİB’de tam doluluk

sağlama amaçlı bir uygulamadır.

2.3.2.2. Bellek Sıradüzeni

Nvidia GİB’lerinde üç farklı bellek türü tanımlamıştır. Bunlar; global, paylaşımlı ve

yerel bellektir.

Global bellek, GİB’in RAM’idir. Her blok tarafından okuma ve yazma yapılabilir

fakat önbellekli olmadığı için erişim hızı yavaştır. Ancak AİB’den GİB’e ya da

GİB’den AİB’ye veri kopyalanmasında ve bloklar arası iletişim kurulmasında gerekli

ve etkilidir.

Paylaşımlı bellek, SM’lerde bulunur ve bellek SM’de çalışan bloklar arasında eşit

olarak paylaştırılır. Global bellekten hızlıdır fakat ancak blok içinden erişim

mümkündür. Tekrarlı erişimler gereken veriler için tekrar tekrar global belleğe

erişim maliyetini ortadan kaldırır. Aynı zamanda blok içinde haberleşme

sağlayabilecek bir yapıya sahiptir

Page 26: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

12

Yerel bellek, RAM’de her iş parçacığı için ayrılmış bir bellektir. Erişim hızı global

bellekle aynıdır. Yazmaçlarda yer kalmadığı durumlarda derleyici bazı değişkenleri

ya da paylaşımlı bellekte yer tutması beklenen verileri yerel belleğe atmaktadır.

Şekil 2.6 Farklı Bellek Türlerinin Farklı Bağlamlardan Erişilebilirlikleri

Bunlar dışında iki farklı bellek türü tanımlanmıştır. Bunlar sabit ve doku belleğidir.

Bu bellek türleri önbelleklidir fakat ikisi de salt okunurdur. Bu sebeple tüm ızgara

tarafından ihtiyaç duyulan skalar ya da dizi sabitleri tutmak amacıyla kullanılabilir.

Son olarak GİB’lerde belirli sayıda yazmaç bulunur. Bu yazmaçlarda, koşut işlev

içinde tanımlanan değişkenler tutulur. Çok hızlı fakat kısıtlı sayıdadırlar.

Tüm bellek türlerinin kullanım amaçlarına göre sınıflandırılması aşağıdaki

çizelgede incelenebilir;

Page 27: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

13

Çizelge 2.3 GİB’deki Bellek Çeşitlerinin Yazma/Okuma Özellikleri ve Kullanım

Amaçlarına Göre Sınıflandırılması

Kullanım Amacı Yazma/Okuma Bellek Çeşidi Tüm ızgara tarafından ihtiyaç duyulan bir

sabit Salt Okunur Sabit Bellek

Tüm ızgara tarafından ihtiyaç duyulan dizi

yapısında bir sabit Salt Okunur Doku Belleği

Blok için paylaşım Yaz/Oku Paylaşımlı Bellek Koşut işlev içi değişkenler Yaz/Oku Yazmaçlar Girdi ve çıktı Yaz/Oku Global Bellek

Page 28: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

14

3. MODELLEME

3.1. Örnek çalışma: Yeraltı Su Kaynaklarının Bilgisayar Yardımıyla Modellenmesi

3.2. Yeraltı Su Kaynaklarının Modellenmesinde Kullanılan Yazılımlar

Yeraltı su kaynaklarının modellenmesi, yüksek miktarda işlem gerektirdiği ve küçük

bir bölgenin bile insan eliyle modellenmesi uzun süreler aldığı için bu konuda pek

çok modelleme yazılımı geliştirilmiştir.

3.2.1. MODFLOW

MODFLOW, yeraltı su kaynaklarının modellenmesi için kullanılan sonlu-fark yeraltı

su kaynakları model’inin kısaltmasıdır. 1981’den bu yana USGS(US Geological

Survey) tarafından geliştirilmektedir. Birimsel bir yapıda geliştirildiği için 1984

yılında yayımlanan ilk sürümü ile günümüzde temel kodları benzerdir. 1988 yılında

yazılım Fortran-66 dilinden Fortran-77’ye uyum sağlayacak hale getirilerek

MODFLOW-88 adı altında yayımlanmıştır. [12]

Ardından 90’lı yıllarda tezde de üzerinde çalıştığımız conjugate gradient

yöntemlerini içeren birimler ve farklı birimler eklenmiş ve MODFLOW-96 adıyla

yayımlanmıştır. Ardından pek çok yeni birimin ana koda eklemlenmesi ile 2000 ve

2005 yılında iki yeni sürüm daha yayımlanmıştır. Günümüzde bu iki sürüm de

güncellenmekte ve yaygın olarak kullanılmaktadır.

3.2.2. Diğer Yazılımlar

ABD kaynaklı MODFLOW haricinde yeraltı su kaynaklarının modellenmesinde

kullanılan diğer yazılımlar arasında HydroGeoSphere [13], FEFLOW [14] ve MIKE

SHE [15] sayılabilir. Bunlar Avrupa kaynaklı yazılımlardır. Bu tezde MODFLOW

yazılımının tercih edilme sebebi ücretsiz olarak dağıtılması ve kaynak kodunun

Page 29: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

15

açık olmasıdır. Diğer yazılımlar ya açık kaynak kodlu olmadıkları ya da ücretli

oldukları için tercih edilmemiştir.

3.3. Yeraltı Su Akışı Denklemlerinin Çözümünde Kullanılan Yöntemler

Tezde faydalandığımız MODFLOW programı hidrolik head’ler için oluşturulan

model tarafından üretilen denklemleri çözmek için preconditioned conjugate

gradient yöntemini kullanmaktadır [2]. LEVENT HOCA

3.3.1. Preconditioned Conjugate Gradient Yöntemi

Conjugate gradient yöntemi Eş. 3.1’teki gibi ifade edilebilen sistemler için etkili

çalışabilektedir.

퐴푥 = 푏 Eş. 3.1

Bu eşitlikte kullanılan değişkenler aşağıda açıklanmıştır.

퐴 : Değerleri bilinen, kare, simetrik ve positive-definite (ya da positive-indefinite) matristir.

x : Değerleri bilinmeyen bir vektördür. b : Değerleri bilinen bir vektördür.

Yeraltı su kaynaklarının modellenmesinde, kısmi diferansiyel denklemler

çözümünde kullanılan sonlu fark ve sonlu eleman metodları da bu özelliklere sahip

sistemler oluşturur [1].

Eş. 3.1 eşitliğinde bahsedilen A matrisi, yapısal olmayan büyük bir seyrek katsayı

matrisidir. Doğrusal yöntemlerle çözümün uzamasına sebebiyet veren bu

özelliklere sahip matrisler, conjugate gradient ve benzeri iteratif yöntemlerle daha

kısa sürede çözülebilmektedir. Conjugate gradient yöntemi, preconditioning ile

kullanılarak çözüme yakınsaması hızlandırılabilmektedir. Takip eden bölümlerde

preconditioned conjugate gradient yöntemi ele alınacaktır.

Page 30: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

16

İteratif yöntemlerde Amatrisi’nin, iki matrise parçalanabileceği ve bu matrislerin

toplamı olarak ifade edilebileceği farzedilir [16]. Buna göre 퐴 matrisi şöyle de ifade

edilebilir; 퐴 = 푀 + 푁. Yeni ifadede 푀 matrisi 퐴’nın preconditioned hali olarak

çağrılır. Amaç evrilmesi (invert) kolay olan ve 퐴 matrisini en iyi şekilde temsil eden

bir 푀 matrisi elde etmektir. 푀matrisi farklı yöntemlerle elde edilebilir, bu

yöntemlere Bölüm 3.3.1.1 ve Bölüm 3.3.1.2’de değinilecektir. A matrisinin ikiye

bölünebilmesi kuralı ve Eş. 3.1 ile birleştirilebilir. Bunun sonucunda da 푘’ncı

adımdaki yineleyen eşitliğe ulaşılabilir;

푀푥 = 푀푥 + 푏 − 퐴푥 Eş. 3.2

Bu eşitlik Eş. 3.3 ve Eş. 3.4 eşitlikleri kullanılarak sadeleştirilebilir;

푟 = 푏 − 퐴푥 Eş. 3.3

푠 = 푥 − 푥 Eş. 3.4

Bu sadeleştirmenin sonucunda Eş. 3.5 eşitliğine ulaşılır;

푠 = 푀 푟 Eş. 3.5

Bu çıkarımların eşliğinde conjugate gradient yöntemleri öncelikle işe residual’ı

hesaplayarak başlar. Bu Eş. 3.6 ile hesaplanabilir;

푟 = 푏 − 퐴푥 Eş. 3.6

Conjugate gradient yöntemi ilk residual’ı hesapladıktan sonra Eş. 3.7‘den

başlayarak her yineleme için alttaki eşitlikleri uygular;

푠 = 푀 푟 Eş. 3.7

푘 = 0푖ç푖푛푝 = 푠 Eş. 3.8

Page 31: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

17

푘 > 0푖ç푖푛 훽 = 푠 푟

푠 푟푝 = 푠 + 훽 푝

Eş. 3.91

훼 =푠 푟푝 퐴푝

Eş. 3.10

푥 = 푥 + 훼 푝 Eş. 3.11

푟 = 푟 − 훼 퐴푝 Eş. 3.12

Eş. 3.3 göz önünde bulundurulursa beklenen bir derecede (10 ya da 10 gibi)

푟 ’nın sıfıra yakınsaması algoritmanın sonlandırılması için koşul olarak

kullanılmakta olduğu görülebilir. Bu denkliği sağlayan yinelemede hesaplanan 푥

vektörü de conjugate gradient yönteminin sonuç vektörünü oluşturur.

3.3.1.1. Modified Incomplete Cholesky Preconditioner(MICCG)

MICCG’de preconditioning matrisi Eş. 3.13’deki gibi tanımlanır.

푀 = 푈 퐷푈 Eş. 3.13

푈 ana köşegeninde ve 퐴 matrisinde sıfır olmayan değerlerin eşit olduğu bir üst

üçgen matristir. 푈 ve 퐴 matrisi arasında Eş. 3.14’deki gibi bir bağlantı kurulabilir.

푗 > 푖푖ç푖푛푢 = 푎 Eş. 3.14

퐷 pozitif bir köşegen matristir ve değerleri Eş. 3.15’teki gibidir.

푑 = Eş. 3.15

퐷 matrisinin hesaplanması için Eş. 3.15’ten görüleceği üzere 푈 matrisinin ana

köşegeni hesaplanmalıdır. Ana köşegenin hesaplanması Eş. 3.16‘da belirtilen

yineleyen ilişki ile hesaplanabilir. Bu eşitlikte 푟,푐,푣 değerleri 퐴 matrisindeki ana

1 Üst indis olarak gösterilen T, matrisin devrik hali anlamına gelmektedir.

Page 32: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

18

köşegen haricindeki konumlarda bulunan değerlerdir ve satıra bağlı oldukları için

tek indis ile gösterilmişlerdir.

푢 = 푎

푢 = 푎푟 (푟 − 푐 − 푣 )

푢 = 푎푟 (푟 − 푐 − 푣 )

...

Eş. 3.16

푀 matrisinden 푠 ’ya ulaşılması için Eş. 3.17 eşitliğinin çözülmesi iki adımda

gerçekleşmektedir. Bunun için öncelikle Eş. 3.18 eşitliği forward substitution ile 푣

için çözülmeldir. Ardından Eş. 3.19 eşitliği backward substitution ile 푠 için

çözülmelidir.

푈 퐷푈푠 = 푟 Eş. 3.17

푈 퐷푣 = 푟 Eş. 3.18

퐷푈푠 = 퐷푣 Eş. 3.19

3.3.1.2. Least-squares Polynomial Preconditioner (POLCG)

POLCG ile tanımlanan preconditioning matrisinin evrik hali, A matrisinin evrik

halinin Neuman serisine göre kuvvet serisi açılımıdır [2].

푀 = 퐼 + 퐴 + 퐴 + ⋯+ 퐴 Eş. 3.20

Yaklaşık bir çözüm terimlerin ağırlıklandırılması ve 푙’nin 3 olarak alınması ile alttaki

gibi olmaktadır. 푐 , 푐 ve 푐 katsayıları algoritmanın yakınsamasını iyileştirmek için

seçilmiştir.

푠 = 푀 푟 = 푐 푟 + 푐 푟 퐴 + 푐 푟 퐴 + 푟 퐴 Eş. 3.21

Page 33: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

19

Değerlerin tekrar hasaplanmaması için Eş. 3.21 üç adımda alttaki gibi

hesaplanmaktadır.

푧 = 푐 푟 + 푟 퐴

푧 = 푐 푟 + 푧 퐴

푠 = 푐 푟 + 푧 퐴

Eş. 3.22

Page 34: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

20

4. GERÇEKLEŞTİRİM

4.1. Sonlu Fark Yöntemi

4.2. Conjugate Gradient Gerçekleştirimi

Preconditioned conjugate gradient yönteminin gerçekleştirimi preconditioner’ların

ve conjugate gradient yönteminin gerçekleştirilmesi olarak ikiye ayrılabilir. Bu

kesimde de preconditioner gerçekleştirimleri hariç gerçekleştirimler ele alınacaktır.

Gerçekleştirim kesimi boyunca conjugate gradient yönteminin denenmesinde

%40’ından fazlası dolu 317 × 638 × 8 boyutlarında bir yeraltı su akış modeli

kullanılmıştır. Bu kısımda verilecek başarım ölçümleri aksi belirtilmediği sürece bu

model kullanılarak elde edilmiştir.

4.2.1. Conjugate Gradient Yönteminde Bellek ve İşlem İyileştirmeleri

Conjugate gradient yönteminin gerçekleştirilmesi için kullanılan eşitlikler, vektör-

matris ya da vektör-vektör çarpımları gerektirdiği için bu işlemlerin mümkün

olduğunca az tekrarlanması ve sonuçların tekrar kullanılabilirliği önem

kazanmaktadır.

Eş. 3.9 ve Eş. 3.10’da tekrarlanan 푠 ve 푟 vektörünün çarpım(푠 푟 ) işlemi sadece

Eş. 3.9’da hesaplanmaktadır. Bu işlemin sonucu skalar bir değişkende tutulmakta

ve Eş. 3.9’da gerekli olan bu çarpımların bir önceki yinelemedeki değeri de, başka

skalar değişkende saklanması ile hesaplanmaktadır. Buna göre önceden belirtilen

eşitlikler şöyle değişmektedir;

푆푅푁퐸푊 = 푠 푟 Eş. 4.1

푘 > 0푖ç푖푛 훽 = 푆푅푁퐸푊푆푅푁퐸푊

푝 = 푠 + 훽 푝 Eş. 4.22

2 푆푅푁퐸푊푘−1 ile kastedilen değer aslen tek bir skalar değişken olup sadece önceki

yinelemedeki 푆푅푁퐸푊푘 değerini saklamaktadır.

Page 35: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

21

훼 =푆푅푁퐸푊푝 퐴푝

Eş. 4.3

Aynı şekilde Eş. 3.10 ve Eş. 3.12 eşitliklerinde tekrarlanan 퐴 matrisi ile 푝

vektörünün çarpım işleminin (퐴푝 ) ara çözümü 푉 adında bir matriste tutulmaktadır.

Böylece Eş. 3.10 ve Eş. 3.12 üstteki değişlikler de hesaba katıldığında alttaki gibi

değişmektedir;

푉 = 퐴푝 Eş. 4.4

훼 =푆푅푁퐸푊푝 푉

Eş. 4.5

푟 = 푟 − 훼 푉 Eş. 4.6

Gerçekleştirimde bu değişiklikler sağlandığında iki adet vektör-vektör çarpımından

ve bir adet matris-vektör çarpımından tasarruf edilmektedir.

4.2.2. Conjugate Gradient Yönteminde Matrislerin Bellekte Saklanma Şekli

Conjugate gradient yöntemi ile çözülmeye çalışan A matrisi seyrek bir matristir. A

matrisin boyutunu yeraltı su kaynaklarının modellenmesinde kullanılan üç boyutlu

modelin boyutları belirler.

푁 = (푛 × 푚 × 푘) Eş. 4.7

Bu eşitlikte kullanılan değişkenler aşağıda açıklanmıştır.

푁 : A matrisinin boyutu 푛 : Modelin satır sayısı 푚 : Modelin sütun sayısı 푘 : Modelin katman sayısı.

A matrisi modelin boyutunun büyümesinden çok fazla etkilendiği için A matrisinin

dolu elemanlarının oluşturduğu şekilden faydalanılmaktadır [17]. Yeraltı su

kaynaklarının üç boyutlu modellenmesinde her hücrenin en fazla altı adet komşusu

olmaktadır. Bu altı adet komşuluk bir hücrenin iki dikey ve dört yatay komşularını

Page 36: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

22

içermektedir. Bu komşuluklar bir matris(A matrisi) ile ifade edildiğinde Şekil 4.1 A

matrisinin görünümü.Şekil 4.1‘deki gibi görünmektedir.

Şekil 4.1 A matrisinin görünümü [17].(NCOL modeldeki sütun sayısı, NROW

modeldeki satır sayısı)

Şekil 4.1’deki E ile isimlendirilmiş ana köşegen modeldeki hücreleri tutmaktadır.

Matrisin üst ve üst üçgeninde üçer adet anlamlı köşegen vardır. Üst üçgen ele

alındığında F ile gösterilen ve ana köşegenin komşusu olan köşegen yatay ve bir

sonraki komşuyu tanımlamaktadır. H ile gösterilen köşegen ana köşegenin yatay

komşularından alttaki komşuyu tanımlamaktadır. S köşegeni ise dikey

komşulardan bir alttaki katmandaki komşuyu tanımlamaktadır.

Page 37: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

23

A matrisi üç boyutlu matrisi tek boyutlu bir dizi gibi tanımlamaktadır. Bu sebeple

şekilde de görülebileceği gibi H köşegenindeki bir eleman -modelde bir alt satırdaki

komşu- A matrisinde modelin sütun sayısı kadar ötede bulunmaktadır. Aynı şekilde

katman bağlamındaki komşu modelin bir katmanındaki hücre sayısı kadar

ötededir(sütun sayısı x satır sayısı).

A matrisi simetrik bir matris olduğu için üst üçgendeki köşegenler ile alt üçgendeki

köşegenler aynıdır. Bu sebeple ana köşegen haricinde üç adet köşegenin

tutulması A matrisini özelliklerini kaybetmeden saklamayı olanaklı kılar. Ana

köşegen harici köşegenler ana köşegenden küçük boyutlara sahiptir, fakat bunların

farklı boyutlarda saklanması sınır taşma hatalarının kontrolünü gerektireceği için

her bir köşegen ana köşegen boyutlarında tanımlanmıştır.

Sadece köşegenlerin saklanması ile A matrisinin bellekte kapladığı yer Eş. 4.7’de

tanımlanmış boyut değişkenlerinin kullanılması Eş. 4.8 ile bulunabilir.

푁 = 4 × (푛 × 푚 × 푘) Eş. 4.8

Bu yöntem ile A matrisinin tamamen oluşturulup bellekte saklanmasını imkansız

hale getiren boyuttaki sorunların çözülmesi mümkün olmaktadır. A matrisinin

tamamının saklanmasında gereken bellek miktarının, yöntemin bellek gereksinime

oranı Eş. 4.9 eşitliği ile bulunabilir.

푂푟푎푛 =(푛 × 푚 × 푘)

4 Eş. 4.9

4.2.3. P'nin hesaplanması

Bölüm 3.3.1’te, Eş. 3.8 ve Eş. 3.9 ile elde edilen ara değerlerin saklandığı P matrisi

hesaplanmaktadır. Bu işlem iki kısımdan oluşmaktadır. İlk kesim SRNEW adlı

değerin birikimli toplama ile elde edilmesini gerektirir. GİB üzerinde birikimli

toplama yöntemine Bölüm 4.5’de değinilecektir. İkinci bölüm ise SRNEW değeri

kullanılarak P matrisinin oluşturulmasıdır. Bu iki kesimin AİB ve GİB

gerçekleştirimlerinin aldıkları süre ve hızlanmaları da Çizelge 4.1’de belirtilmiştir.

Page 38: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

24

Çizelge 4.1 SRNEW değerinin ve P matrisinin hesaplanmasının AİB ve GİB

üzerinde gerçekleştirimlerinin aldığı süre ve hızlanma oranları

Yöntem AİB(ms) GİB(ms) Hızlanma

SRNEW Hesaplanması 6,227 2,482 2,5X

P’nin hesaplanması 12,495 0,245 51X

SRNEW değerinin hesaplanması birikimli toplamadan dolayı kısmen

koşutlaştırılabildiği için düşük bir hızlandırma sağlamıştır. P matrisinin

hesaplanması ise tamamiyle veri bağımsız bir işlem olduğu için 51 kat hızlanma

sağlanmıştır.

4.2.4. A Matrisi ile P vektörünün çarpılıp V'de saklanması ve PAP ile ALPHA'nın hesaplanması

Eş. 3.10 ve Eş. 3.12’de gerekli olan A matrisi ile P vektörünün çarpımı(퐴푝 ), işlem

tekrarını ortadan kaldırmak için V adında ara değer tutan bir vektörde

saklanmaktadır. Eş. 3.10 eşitliğinin böleni olan 푝 퐴푝 , P vektörünün A ile

çarpılması sonucu bir vektör oluşturmaktadır, bu vektörün aynı boyutta devrik bir

vektör ile çarpılması sonuç olarak skalar bir değer çıkarmaktadır. Bu değere PAP

adı verilmiştir ve V vektörünün hesaplanıp P vektörü ile elemanlarının çarpılıp

toplanması ile elde edilir. Bu da yine bir birikimli toplama işlemi gerektirir. Bu

sebeple her ne kadar V vektörünün hesaplanması veri bağımsız olsa da PAP

değerinin bulunması esnasında bir başarım kaybı olur. ALPHA değerinin

hesaplanması ise Eş. 4.3’te görüldüğü gibi SRNEW değerinin PAP değerine

bölünmesi ile bulunabilmektedir. Bu işlemlerin AİB ve GİB’de gerçekleştirimlerinin

aldığı süre ve hızlanma Çizelge 4.2‘de görülebilir.

Çizelge 4.2 V ve PAP ile ALPHA'nın hesaplanmasının AİB ve GİB üzerinde

gerçekleştiriminin aldığı süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms) Hızlanma

V ve PAP ile ALPHA’nın Hesaplanması 44,140 3,481 12,68X

Page 39: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

25

4.2.5. Head ve Residual vektörlerinin hesaplanması ve en büyük değerlerinin saklanması

Eş. 3.12 head değerlerinden oluşan vektörün, Eş. 3.13 ise residual vektörünün

hesaplanmasını sağlar. Bu iki işlem tamamlandıktan sonra her iki vektörün de en

büyük değerlerinin bulunması gereklidir. En büyük residual değeri conjugate

gradient’in yakınsama değerinden küçükse yani residual vektöründeki tüm değerler

bu değerden küçükse algoritma yakınsamış kabul edilir ve sonlandırılır. En büyük

head değeri de yakınsamayı belirlemede kullanılmaktadır.

Bu vektörlerde en büyük değerlerin bulunmasında da birikimli toplama yapmak için

geliştirilmiş olan algoritma kullanılmıştır. Bölüm 4.5‘de anlatılan bu algoritmada

değişen kısım toplananların değerlerin değil de en büyük değerin en son elde

edilen olmasının sağlanmış olmasıdır. Ayrıca en büyük değerin elde edilmesinin

haricinde bu algoritma ile en büyük değerin vektörün hangi elemanı olduğu da

elemanın elde edilmesine benzer bir mantıkla saklanmakta ve korunmaktadır. Bu

durum toplamaya göre en büyük değerin bulunması algoritmasında bellek

gereksinimini arttırmaktadır.

İşlemlerin AİB ve GİB üzerinde gerçekleştirilmesinin aldığı süreler hızlanma oranı

Çizelge 4.3‘te görülebilir.

Çizelge 4.3 Head ve Residual vektörlerinin hesaplanmasının AİB ve GİB üzerinde

gerçekleştiriminin aldığı süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms) Hızlanma

Head ve Residual Vektörlerinin Hesaplanması 17,985 1,607 11,19X

4.2.6. Kayan Noktalı Sayılarla Birikimli Toplama Gerçekleştirimi

GİB üzerinde kayan noktalı sayıların birikimli toplanmasının gerçekleştirimi verilerin

iş parçacıkları ve bloklar arası iletişimini gerektirir. Ayrıca birikimli toplama hatalara

sebep olabilecek bir durumdur. Bu iki soruna dikkat edilerek birikimli toplama

Page 40: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

26

gerçekleştirimi conjugate gradient gerçekleştirimi için şarttır. Aynı zamanda birikimli

toplama için geliştirilen yöntem bir dizi içindeki en büyük değerin kullanılması

amacıyla da tez kapsamında kullanılmıştır. Bu bölümde bu konulara değinilecektir.

4.2.6.1. Kayan Noktalı Sayılarla Birikimli Toplama Hataları IEEE 754-2008 standartlarına göre kayan noktalı bir veri tipi olan double, bellekte

64 bit'lik yer kaplamaktadır. Bellekteki 64 bit'in ilk biti sayının pozitif ya da negatif

olduğunu, sonraki 11 bit sayının 10'un kaçıncı kuvveti ile çarpılacağını, geri kalan

52 bit ise sayısal değeri göstermektedir [18]. Şekil 4.2’de double veri tipinin biçimi

verilmiştir.

Şekil 4.2 Double Veri Tipi Biçimi [19]

52 bit ile temsil edilebilecek en uzun sayı dizisi, Eş. 4.10’e göre hesaplandığında

double veri tipi için yaklaşık 16 (log (2 ) ≈ 15,65) anlamlı basamağa sahiptir.

퐵 = log (2 ) Eş. 4.10

Bu eşitlikte kullanılan değişkenler aşağıda açıklanmıştır.

B : Anlamlı basamak sayısı n : Sayısal değeri tutmak için kullanılan bit sayısı

Kayan noktalı sayıların anlamlı basamak sayısının sabit, kuvvet aralığının geniş

olmasından dolayı toplama ve çarpma işlemlerinde yuvarlama hataları oluşabilir.

Bunun sebebi elde edilen gerçek sonucun anlamlı basamak sayısının double veri

tipi ile ifade edilebilecek anlamlı basamak sayısını aşmasıdır.

Page 41: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

27

Çok sayıda kayan noktalı sayının birikimli toplanması sonucunda oluşan hataların

giderilmesinde kullanılan algoritmalardan biri Kahan Toplama Algoritması(KTA) ‘dır

[20]. KTA, ardıl toplama işleminde her toplama sonrası kaybedilecek olan anlamlı

basamakları başka bir değişkende tutar ve bu değerle her basamakta toplamı

günceller. Böylece göreceli bir şekilde ardıl toplamanın hassasiyetini iki katına

çıkarır.

4.2.6.2. GİB’de Kayan Noktalı Sayıların Birikimli Toplanması

Tek bir döngüde kayan noktalı sayıların birikimli olarak toplanması aritmetik

hatalara sebep olabilmektedir. Bunun sebebi zamanla elde biriken toplamın

büyümesi ve toplanan değerlerinin küçük olması sebebiyle kayan noktalı sayı ile

ifade edilebilecek son basamakların anlamlılığını yitirmektedir. GİB’de

gerçekleştirilen çözüm küçük sayıları birbiri ile toplayıp ara toplamlar elde etmekte

ve bunları birbiri ile toplayarak daha çok hassasiyete sahip sonuçlar vermektedir.

GİB’de gerçekleştirilen çözüm, toplanacak kayan noktalı sayı dizisini 512'şer

parçalara bölmektedir. Bu 512'lik parçaların her biri bir bloğa atanmakta ve GİB’de

tam doluluk sağlanmaktadır. Ardından 512'lik dizi 푂(log 2)'lik bir algoritma

karmaşıklığına sahip işlemle toplanarak tek değere düşürülmektedir. Bu değerler

global bellekte bir dizide toplanmakta ve yönetici bir iş parçacığı tarafından ardıl bir

şekilde toplanmaktadır. Şekil 4.3’de 16 boyutuna sahip bir dizinin toplanması

örneği gözlemlenebilir.

Page 42: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

28

Şekil 4.3 16 adet değerin 푂(log 2)’de toplanması

4.2.6.3. Kayan Noktalı Sayıların Toplanmasının Hız ve Hassasiyet Açısından

GİB ve AİB’nin Karşılaştırılması

Her iki yöntemin hız ve hassasiyetlerinin karşılaştırılması için GMP (GNU Multi

Precision Aritmetic Library) [21] kullanılmıştır. GMP, sayıları damga dizisi gibi ele

alarak oldukça yüksek hassasiyet sağlamaktadır. Hız ve hassasiyet farklılığının

daha kesin gözlemlenmesi için GİB'e verdiğimiz parametrelerle sığabilecek en

büyük boyutlarda sayı dizisinden başlanarak dizi boyutu azaltılmıştır. Başarım

ölçümleri için Fortran’ın kendi içindeki zaman ölçüm işlevleri kullanılmıştır.

Çizelge 4.4 Farklı Boyutlarda Double Türündeki Sayı Dizilerinin KTA Kullanılarak

Kümülatif Toplanması için Geçen Süre(ms) ve AİB’ye Göreli

Hızlanma3 Dizi AİB GİB Hızlanma4 GİB (veri transferi Hızlanma GMP Hızlanma

3 GİB (veri transferi hariç) sütunu dışındaki tüm süre sütunlarının ölçüm hassaslığı ±4ms’dir.

Page 43: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

29

Boyutu hariç)

32 Milyon 324 180 1,80X 51,86 6,24X 2.292 0,14X

16 Milyon 172 112 1,53X 25,96 6,62X 1.148 0,14X

8 Milyon 100 76 1,31X 13,01 7,68X 580 0,17X

4 Milyon 60 64 0,93X 6,57 9,13X 288 0,20X

2 Milyon 28 64 0,43X 3,29 8,51X 140 0,20X

1 Milyon 16 64 0,25X 1,66 9,63X 80 0,20X

Çizelge 4.4’de görüldüğü üzere dizi boyutu büyüdükçe GİB’e veriyi aktarmak için

harcanan süre dezavantaj olmaktan çıkmaktadır. Ayrıca GİB’in kullanılmasında

birikimli toplama ihtiyaç duyulan verinin GİB’e ve GİB’den aktarılması gerekmiyorsa

işlemciye göre dizi boyutuna bağlı olarak 6 ila 10 kat hızlanma sağlanabilir. Şekil

4.4’de KTA hesaplanmasının farklı ortamlarda aldığı süreler gözlemlenebilir.

Şekil 4.4 Dizi Boyutuna Göre KTA’nın Aldığı Sürenin Farklı Ortamlara göre

Karşılaştırılması

4 Hızlanma, AİB sütununa göre diğer ölçümlerin kaç kat hızlı olduğunu belirtmektedir.

0

50

100

150

200

250

300

350

32 Milyon 16 Milyon 8 Milyon 4 Milyon 2 Milyon 1 Milyon

AİB

GİB

GİB (veri transferi hariç)

Page 44: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

30

KTA’nın artan dizi boyutuna orantılı olarak başarımı düştüğü için hassasiyetten

ödün verilerek ardıl toplama tercih edilebilmektedir. Kayan noktalı sayıların ardıl

toplanmasının sonuca etkisi saptanmaya çalışılmıştır. Yakınsama kararının

alınmasında etkili olan ara sonuçların tutulduğu matrisin otuz adet iç yinelemeden

sonra Fortran KTA’ya göre Mean Absolue Percentage Error’ının iki farklı yöntem

için karşılaştırılması Çizelge 4.5’te görülebilir.

Çizelge 4.5 Fortran Ardıl Toplama ve CUDA KTA ile hesaplanan değerlerin

Fortran KTA ile hesaplanan değerlere göre Mean Absolue

Percentage Error’ları Fortran Ardıl Top. CUDA Kahan Top.

4,192% 0,000%

Çizelge 4.5’te görüldüğü üzere CUDA KTA gerçekleştirimimiz örnek girdilerde

yinelemelerle hatanın yayılımla büyümesini engellemektedir.

Sadece Conjugate Gradient gerçekleştirimimizin tamamı CUDA’ya aktarıldığında

hata oranlarımız Çizelge 4.6’deki gibi gerçekleşmiştir

Çizelge 4.6 Conjugate Gradient CUDA Gerçekleştirimi için Fortran Ardıl Toplama

ve CUDA KTA ile hesaplanan değerlerin Fortran KTA ile hesaplanan

değerlere göre Mean Absolue Percentage Error’ları

Fortran Ardıl Top. CUDA Kahan Top.

4,192% 0,001%

Görüldüğü üzere GİB üzerinde gerçekleştirilen toplama ardıl toplamaya göre hem

daha az aritmetik hata içermekte hem de daha hızlı çalışmaktadır.

4.3. MICCG

Modified Incomplete Cholesky Preconditioner, Forward ve Back Substitution gibi

oldukça ardıl algoritmaların gerçekleştirilmesine ihtiyaç duyan bir yöntemdir. Bu

Page 45: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

31

yönetim GİB üzerinde gerçekleştirimine Forward ve Back Substitution

gerçekleştirimi üzerine yoğunlaşarak değinilecektir.

4.3.1. Forward ve Back Substitution Gerçekleştirimi

Şekil 4.1’de ifade edildiği gibi olan A matrisinin çözülebilmesi alt ve üst üçgene

bölünerek mümkündür. Bunun bir yöntemi de Cholesky preconditioning’dir.

Cholesky preconditioning’in gerçekleştiriminde Eş. 3.17’nın ikiye parçalanması ile

oluşan Eş. 3.18 ve Eş. 3.19’in çözülmesinde forward ve back substitution

algoritmaları bu alt ve üst üçgenlerin çözülmesinde kullanılmaktadır.

Bu alt-üst üçgenlerin oluşturulmasında Cholesky factorization’da Crout algoritması (A = LLT) kullanılabilir. Fakat bu algoritma ana köşegenin hesaplanmasında

karekök hesaplama maliyeti getirdiği için [22] onun yerine (A = LDLT) parçalama

yöntemi kullanılmıştır. Bu yöntemle Eş. 3.13’de oluşturulmuş UT matrisi aşağıdaki

gibi ifade edilebilir.

u1 0 0 0 0 0 0 0 0 0 0 0 r2 u2 0 0 0 0 0 0 0 0 0 0 0 r3 u3 0 0 0 0 0 0 0 0 0 c4 0 0 u4 0 0 0 0 0 0 0 0 0 c5 0 r5 u5 0 0 0 0 0 0 0 0 0 c6 0 r6 u6 0 0 0 0 0 0 v7 0 0 0 0 0 u7 0 0 0 0 0 0 v8 0 0 0 0 r8 u8 0 0 0 0 0 0 v9 0 0 0 0 r9 u9 0 0 0 0 0 0 v10 0 0 c10 0 0 u10 0 0 0 0 0 0 v11 0 0 c11 0 r11 u11 0 0 0 0 0 0 v12 0 0 c12 0 r12 u12

Şekil 4.5 Şekil 4.6’teki modelin UT matrisi.

Page 46: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

32

Şekil 4.6 Örnek bir model

Şekil 4.5‘de görüldüğü gibi Şekil 4.1‘de ifade edilen ana köşegen haricindeki

köşegenlerde tam doluluk yoktur. Bu durum, modeldeki her hücrenin komşu

sayısının 3 ve 6 arasında değişmesinden ve bu komşulukların konumlarına göre alt

ve üst üçgen içinde kalmasından kaynaklanır. Örneğin; Eş. 3.18’deki 푣 değerinin

bulunması için UT katsayı matrisi incelendiğinde sadece 푣 değerinin hesaplanmış

olması gerektiği görülebilir. Bu durum UT matrisini forward substitution ile çözerken

ardıl bağlılıkların kırılmasını sağlayabilmektedir. Bu sayede forward substitution

gerçekleştiriminde koşutluğu arttırabilecek yaklaşımlar izlenebilmektedir.

Forward substitution ile back substitution algoritmalarının birbirinin zıttı şeklinde

gerçekleştirildiği için Bölüm 4.3.1 kapsamında back substitution algoritmasına ve U

matrisinin çözümüne değinilmeyecektir.

Page 47: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

33

4.3.2. Forward Substitution’ın üç boyutlu sonlu fark yöntemi için koşut çözülmesi

Bölüm 4.3.1 değinildiği gibi modelin özellikleri, forward substitution’ın ardıl olarak

çözülme gerekliliğini esnetmektedir. Şekil 4.6’te gösterilen modelin forward

substitution’la çözülmesindeki bağlılıklar Şekil 4.7‘te görülebilir.

Şekil 4.7 Örnek modelin koşut işletilmesindeki bağlılıklar ve aşamalar

Her bir aşamada Şekil 4.7‘te daireler ile gösterilen değerlerin başka hiçbir

sorundan etkilenmeden aynı anda bitirildiği varsayıldığında modelin tamamının

çözülmesi beş aşamada tamamlanabilir.

4.3.3. Modelin GİB üzerinde yerleştirimi

GİB üzerinde gerçekleştirimde örnek modeldekinin aksine boyutları oldukça büyük

olan gerçek sorunlarda modelin bloklara bölünmesi öncelikli sorundur. Örneğin,

model 16x16’lık altmatrislere bölünebilir. Bu yaklaşımda iki boyutlu matrisin tercih

edilmesinin sebebi yatay (yanlar ve üst-alt) komşulukların değerlerinin elde

edilmesini ve bağlılıklarının kontrolünün kolaylaştırılmasıdır. 64 satır ve 128

Page 48: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

34

sütundan oluşan tek katmanlı bir model Şekil 4.8’deki gibi GİB üzerinde parçalara

ayrılmıştır.

Şekil 4.8 128x64 boyutlarındaki bir modelin GİB üzerinde gösterimi.

Çok katmanlı modellerde numaralandırma ilk katmanın devamı şeklinde

kullanılmıştır. Örneğin; üç katmanlı aynı boyutlarda bir modelin ikinci katmanı 33-

64, üçüncü katmanı ise 65-96 aralığı ile ifade edilir.

GİB üzerinde aynen gerçek model üzerinde çalışılıyormuş gibi bağlılıklar

denetlenmektedir. 16x16’lık alt matrisler, modeldeki hücrelermiş gibi ele

alınmaktadır. Yani altmatristeki 256 elemanın tamamının hesaplanması ardından

ona bağlılığı olan altmatrisler çalışmaya başlamaktadır.

4.3.4. Modelin GİB üzerindeki yerleştirimine bağlı yöntemler

GİB üzerinde belli sayıda çekirdek ve bu çekirdeklerin gruplandırıldığı bloklar

vardır. Bu blok sayısı GİB üzerinde eş zamanlı çalışacak blok sayısını da

kısıtlandırır. Aynı zamanda GİB’de eş zamanlı çalışan bloklar tamamlanmadan işini

bitiren çekirdeklere yeni bloklar anahtarlanamamaktadır. Bu sebeple verilerin GİB’e

bağlılıkları azaltacak bir şekilde yerleştirilmesi, en fazla koşutluğu sağlamanın ön

Page 49: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

35

koşuludur. Bu bölümde iki farklı yerleştirme yöntemi karşılaştırılacaktır. Bu

yöntemler aşağıdaki gibidir;

Satır-sütun-katman yerleştirimi

Katman-satır-sütun yerleştirimi

Bloklar arası iletişim için iki yöntemde de global bellekte blok sayısı kadar elemanı

bulunan ve blokların durumlarını saklayan bir dizi tutulmuştur. Bu dizi bekleyen

blokların bağlılıkları bulunan blokların işlerini tamamlayıp tamamlamadığı

denetlemesi sağlamaktadır. GİB’e atanmış ama bekleyen bir blok bu dizi ile etkin

hale gelip işlemlerini tamamladıktan sonra diziyi güncellemektedir.

4.3.4.1. Satır-sütun-katman(SSK) yerleştirimi Bu yerleştirim şeklinde iki boyutlu ızgaranın x ekseni sütunları, y ekseni ise satırları

ve katmanları içerir. Y eksenindeki değerler bir katmandaki tüm satırların

tamamlanmasından sonra ardıl katmanı ifade eder. Şekil 4.8’teki tek boyutlu bir

modelin GİB’de yerleşimi görülebilir. Çok katmanlı bir modelin GİB üzerinde bu

yöntemle yerleştirimi Şekil 4.9’te görülebilir. Şekilde katmanlar farklı renklerle ifade

edilmiştir. İlk katman turkuaz, ikinci katman açık sarı, üçüncü katman açık turuncu

ve dördüncü katman da pembe ile renklendirilmiştir. Gösterimde kolaylık sağlamak

için matrisin gerçekte bağlı bulunduğu yerler oklarla bağlanmıştır.

Page 50: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

36

1 2 9

3 4 11

10

12

17 18

19 20

5 6 13

7 8 15

14

16

21 22

23 24

0-15

0-15

16-31

16-31

32-47

0-15

0-15 16-310-15 16-31

16-31

32-47

0-15

16-31

32-47

0-15

16-31

32-47

Şekil 4.9 48 satır, 32 sütun ve 4 katmandan oluşan bir modelin GİB üzerine

satır-sütun-katman yerleştirimi

4.3.4.2. Katman-satır-sütun(KSS) yerleştirimi Bu yerleştirim şeklinde iki boyutlu ızgaranın x ekseni katmanları y ekseni ise

satırları içerir. Y eksenindeki ızgaranın bir sütununun modelin bir katmanının tek

boyutlu olarak ifade edilmesi olarak düşünülebilir.Şekil 4.10’de Şekil 4.9’da önceki

yöntemle gösterilmiş modelin bu yöntemle GİB üzerine yerleştirimi görülebilir.

Page 51: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

37

Şekil 4.10 48 satır, 32 sütun ve 4 katmandan oluşan bir modelin GİB üzerine

katman-satır-sütun yerleştirimi

4.3.4.3. Yerleştirim yöntemlerinin başarımlarının karşılaştırılması

Bu bölümde önceki iki bölümde anlatılan yerleştirim yöntemleri karşılaştırılacak ve

başarım sonuçları verilecektir. Şekil 4.9 ve Şekil 4.10’de tanımlanan model

yerleştirim yöntemlerini görselleştirmek amacı gütmektedir. Normal koşullarda

burada tanımlanandan büyük boyutlarda modellerin çözülmesi gereklidir. Bu da bir

katmanda bulunan hücre sayısının artması ve buna bağlı olarak çalıştırılan blok

sayısının artmasına sebep olur. Farklı boyutlarda modellerin iki yerleştirim yöntemi

ve işlemcide gerçekleştirim için denenmesi ile elde edilen sonuçlar aşağıda

gözlemlenebilir.

Page 52: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

38

Şekil 4.11 Sütun sayısı 100-2000 aralığında değiştirilen 1000 satır ve 8

katmandan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre

Şekil 4.12 Satır sayısı 100-2000 aralığında değiştirilen 1000 sütun ve 8

katmandan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre

0

100

200

300

400

500

600

700

800

900

100

175

250

325

400

475

550

625

700

775

850

925

1000

1075

1150

1225

1300

1375

1450

1525

1600

1675

1750

1825

1900

1975

Süre

(ms)

Sütun Sayısı

KSS

AİB

SSK

0

100

200

300

400

500

600

700

800

900

100

175

250

325

400

475

550

625

700

775

850

925

1000

1075

1150

1225

1300

1375

1450

1525

1600

1675

1750

1825

1900

1975

Süre

(ms)

Satır Sayısı

KSS

AİB

SSK

Page 53: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

39

Şekil 4.11’de SSK yönteminde blokların satır öncelikli yerleştirilmesinden dolayı bir

satırın boyutunu belirleyen sütun sayısının başarıma doğrudan etkisi bulunduğu

görülebilmektedir. 400 sütunluk matris boyutlarına kadar SSK, AİB ile yakın bir

başarım gösterse de sütun sayısının artmasına bağlı olarak AİB’den çok düşük

başarım göstermektedir. Bunun nedeni büyük boyutlarda dikey komşulukların

koşut hesaplanmasından zaten istifade edemeyen bu yerleştirimin, yatay

komşuluklardan uzun satır boyutlarında da faydalanamamasıdır.

Şekil 4.12 ve Şekil 4.13’da ise SSK’nın bir satırı GİB’e sığmayan matrisler için

doğrusal bir sonuç ürettiği gözlenebilir. SSK’nın başarımını etkileyen tek etmenin

sütun sayısı olduğu söylenebilir. Eğer sütun sayısı GİB’e sığmayacak

boyutlardaysa SSK’nın başarım elde edemediği gözlenebilir.

Şekil 4.13 Katman sayısı 1-16 aralığında değiştirilen 1000 satır ve 1000

sütundan oluşan modelin üç farklı yöntem için forward subs’ın aldığı süre

0

200

400

600

800

1000

1200

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Süre

(ms)

Katman Sayısı

KSS

AİB

SSK

Page 54: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

40

KSS yöntemi SSK yönteminin aksine matrisin satır ve sütun boyutlarının

değişmesinden etkilenmemektedir. KSS yönteminin başarımını etkileyen tek

etmenin modelin katman sayısı olduğu Şekil 4.13’da gözlemlenebilir.

Şekil 4.14 KSS yönteminin AİB’ye göre hızlanması

Şekil 4.14’de görüldüğü gibi KSS yönteminin başarımında katman sayısı önemli bir

rol oynamaktadır. Katman sayısının çok azalması ya da çok artması KSS’nin

koşutluğunu SSK yönteminden daha fazla kaybetmesine sebep olmaktadır.

KSS’nin en iyi başarım gösterdiği aralık 6 ila 16 olarak saptanmıştır.

4.3.4.4. Modelin GİB üzerinde yerleştirimi hakkında sonuçlar

Bu bölüm kapsamında iki farklı yerleştirim yöntemi denenmiş ve başarımları

sınanmıştır. Bu yöntemlerden KSS yönteminin katman boyutunun belirli sınırlar

içerisinde kalması durumunda başarımının doğrudan bir yerleştirimden(SSK) daha

başarılı olduğu gözlemlenmiştir.

4.3.4.5. Modelin blok içinde yerleştirimi

GİB üzerinde modelin yerleştirim yöntemlerinin haricinde blok içinde modelin

yerleştirimi de başarımı etkileyen etkenlerden biridir. Bölüm Error! Reference

source not found.’de değinildiği gibi blok içinde model 16x16 boyutlarında

altmatrislere bölünmüştür. Buna başka bir seçenek olarak 8x8’lik boyutlarda alt

0

0,5

1

1,5

2

2,5

3

3,5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Hız

lanm

a

Katman Sayısı

KSS

Page 55: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

41

matrisler de denenmiştir. Bu bölümde bu iki yöntem karşılaştırılacak ve koşutluğu

arttırmak için yapılmış olanlar anlatılacaktır.

4.3.4.6. Blok içi yerleştirimde koşutluğun arttırılması için kullanılan yöntemler

Blok içi yerleştirim yöntemleri ile koşutluğun arttırılması GİB üzerinde yerleştirimin

koşutluğunun arttırılması için şarttır. Bunun sebebi, sorunun GİB üzerinde blokların

önceki blokun tüm değerleri hesaplanmadan işleme başlayamamasıdır. Bu

soyutlama blok içi koşutluğun az olmasının etkilerinin büyüyerek sürenin

uzamasına sebebiyet verir.

Gerçekleştirimimizde bu tercihin yapılma sebebi her öğe için global belleğe

aktarımlardan dolayı oluşan yavaşlamayı azaltma amacı gütmektedir. Bu sebeple

farklı bloklarda bulunan öğelerin önceki bloklardan sonra ardıl bir şekilde

çalışacağını farkında olmak gereklidir.

16 S

atır

Şekil 4.15 GİB’de blok içi iş parçacıklarının yerleşimi

Forward substitution yönteminin çözümünde yatay bağlılıkların en yüksek

koşutlukta ele alınabilmesi başarım için önem taşımaktadır. Yatay bağlılıklar satır

ve sütun olarak iki farklı yöndedir. Bu sebeple blok içi bir yapı seçilirken iki boyutlu

Page 56: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

42

bir yapının kullanılması başarımı arttırmaktadır. 4 satır ve 16 sütundan oluşan bir

modelin tek boyutlu 16’lık blok yerleştirimi ve 4x4 boyutlarında bir alt matris ile

çözülmesinde en iyi durumda her bir öğenin çözülmesi Şekil 4.16’de gösterilmiştir.

Her bir blok farklı renklerle ifade edilmiştir ve öğelerin içindeki sayılar o öğenin

çözüldüğü aşama numarasını göstermektedir. İki blok içi yerleştirimin için sadece

bir bloğun GİB’e sığabildiği varsayılırsa, çözümleri için gereken aşama sayısı tek

boyut için Eş. 4.11 eşitliği ile, iki boyut için Eş. 4.12 ile bulunabilir.

푎 = 푁 Eş. 4.11

푎 =푁푥푦

(푥 + 푦 − 1) Eş. 4.12

Bu eşitliklerde kullanılan değişkenler aşağıda açıklanmıştır.

a : Çözüm için gereken aşama sayısı N : Modeldeki eleman sayısı x : Blok sütun sayısı y : Blok satır sayısı

Şekil 4.16 4 satır ve 16 sütundan oluşan bir modelin tek boyutlu 16’lık blok

yerleştirimi(üst) ve 4x4 boyutlarında bir alt matris yerleştirimi(alt) ile çözülmesi.

Eş. 4.11 ve Eş. 4.12 eşitliklerinden anlaşılacağı üzere tek boyutlu gerçekleştirim,

büyük bir başarım kaybına sebep olmaktadır.

Page 57: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

43

Bölüm 2.3.1’de değinildiği gibi bloklar içlerinde kaç iş parçacığı bulundurduğundan

bağımsız olarak 32 iş parçacıklık warp’lar halinde çalıştırılmaktadır. 16x16’lık bir

blok içi yerleşim ile aynı anda 256 adet iş parçacığı başlatıldığında, ilk 32 adet iş

parçacığı koşut olarak çalışmakta bunun ardından ardıl 32’lik kesimlere

geçilmektedir. İki boyutlu olarak ele alınan blok içi yerleştirimde bloğun satır ve

sütun sayısı bir warp’ın bitirilmesi için gereken aşama sayısını etkilemektedir. Bir

warp’ı çözmek için gereken aşama sayısı Eş. 4.13 eşitliği ile hesaplanabilir.

푎 =푤푥 − 1 + 푥 Eş. 4.13

Bu eşitlikte kullanılan değişkenler aşağıda açıklanmıştır.

a : Warp’ın çözümü için gereken aşama sayısı w : Warp boyutu x : Blok sütun sayısı

Güncel GİB’lerde warp boyutu 32 olduğu düşünülürse ancak bloktaki sütun

sayısının 32’den az olması halinde warp içi koşutluk sağlanabileceği görülebilir.

Farklı sütun sayısı değerleri için bloğun çözümü için gereken aşama sayısı Şekil

4.17’te görülebilir. En az aşama sayısı ile çözüme 5-7 aralığındaki sütun sayısı

değerlerinde ulaşıldığı görülmektedir.

GİB’deki blok boyutlarının warp boyutunun katları şeklinde olması başarımın

arttırımı için gereklidir [7]. GİB’de blok boyutunun 32’nin katları olabilmesi için de iki

boyutun da 2’nin katları şeklinde atanması gereklidir. Şekil 4.17’te hesaplanan

değerlerden 2’nin katları olan 4 ve 8’in 11 aşama, 2 ve 16’nın da 17 aşama ile

çözüldüğü bulunmuştur. Dört ve iki değerleri kare bir yapı için çok küçük oldukları

için yoksayılmış, 8x8 ve 16x16’lık blok yapıları için yapılan denemeler yapılmıştır.

Bu denemeler bir sonraki bölümde ele alınacaktır.

Page 58: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

44

Şekil 4.17 Bir warp’ta çözüm için gereken aşama sayısının, bloğun sütun

sayısına göre değişimi

4.3.4.7. Blok içi yerleştirim yöntemlerinin karşılaştırılması

Bu bölümde 8x8’lik ve 16x16’lık blok içi yerleştirim yöntemlerinin farklı satır ve

sütun boyutlarına göre başarımları karşılaştırılacaktır.

0

5

10

15

20

25

30

35

1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536

Aşam

a Sa

yısı

Sütun Sayısı

Page 59: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

45

Şekil 4.18 Sütun sayısı 100-2000 aralığında değiştirilen 1000 satır ve 8

katmandan oluşan modelin iki yöntem için forward subs’ın aldığı süre

Şekil 4.18 ve Şekil 4.19’da görüldüğü üzere 16x16’lık yerleşim 8x8’lik yerleşimden

daha iyi bir başarım göstermiştir. 8x8’lik yerleşim neredeyse doğrusal bir grafik

oluşturmaktadır. 16x16’lık yerleşimin daha iniş çıkışlı bir grafiğinin olmasının

sebebi modelin 16x16’lık parçalara bölümlenmesidir. Bu bölümlemeden dolayı GİB

üzerinde çalıştırılan iş parçacıklarının 8x8’lik yerleşimden daha fazla bir kısmı

matris dışındaki konumlara denk gelmekte ve çalışmamaktadır. m, n, k boyutlarına

sahip bir modelin x blok boyutları ile çalıştırılması için başlatılması gereken iş

parçacığı sayısı Eş. 4.14 ile bulunabilir;

푁 =푚푥 ×

푛푥 × 푥 × 푘 Eş. 4.14

0

50

100

150

200

250

300

350

400

100

175

250

325

400

475

550

625

700

775

850

925

1000

1075

1150

1225

1300

1375

1450

1525

1600

1675

1750

1825

1900

1975

Süre

(ms)

Sütun Sayısı

16x16

8x8

Page 60: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

46

Şekil 4.19 Satır sayısı 100-2000 aralığında değiştirilen 1000 sütun ve 8

katmandan oluşan modelin iki yöntem için forward subs’ın aldığı süre

4.3.5. Modelin GİB üzerindeki yerleştiriminden bağımsız bir yöntem

Önceki bölümlerde forward ve backward substitution gerçekleştirilirken modelin

GİB üzerinde bloklara ayrılmasında katmanlar da ayrı bloklar oluşturacak şekilde

düşünülmüştür. Bunun zıttına modeli üç boyutlu olarak değil de iki boyutlu olarak

da GİB üzerinde çözmek mümkündür. Bu durum modelin üçüncü boyutunda

bulunan katmanların blok içinde ele alınmasına ek olarak paylaşımlı belleğin ve

global belleğin etkin şekilde kullanılması ile mümkündür.

Bu yöntemde model katmanlarından bağımsız bir şekilde GİB’in bloklarına

atanmaktadır, yani iki boyutlu bir çözüm izlenimi oluşmaktadır. Fakat blok bir

katmandaki işini bitirdikten sonra bir sonraki katmana geçerek üçüncü boyutu blok

içinde çözmektedir. Şekil 4.9’ta gösterilmiş olan 48 satır, 32 sütun ve 4 katmandan

oluşan modelin GİB üzerine yerleştirimi Şekil 4.20’de görülebilir. Değinilen diğer

yöntemlerin aksine bu yöntemde bir katmanı GİB üzerine yerleştirmeye yetecek

sayıda blok yeterlidir.

0

50

100

150

200

250

300

350

0000000000000000000000000000000000000000000000000000000

Süre

(ms)

Satır Sayısı

16x16

8x8

Page 61: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

47

Şekil 4.20 GİB’de dört katmanlı bir modelin yerleştirimi.

Şekil 4.20’yi ele alırsak altı adet blok tanımlamak yeterlidir. Bu bloklar diğer

katmanlarda bulunan aynı aralıktaki değerlerden de sorumludurlar. Her ne kadar

önceki yöntemlerden az sayıda blok oluşturulsa da global bellekte blokların

tamamlama durumlarını saklayan dizi 푏푙표푘푠푎푦횤푠횤 × 푘푎푡푚푎푛푠푎푦횤푠횤 kadar elemana

sahiptir. Bu dizi blokların katman bazında işini tamamladığı zaman global bellekte

kendi durumunu saklayan alanı güncellemesine imkan vermek için bu boyutta

tanımlanmıştır. Böylece blok tüm katmanları bitirmeden diğer bloklarla iletişime

geçerek bekleyen blokların mümkün olan en erken zamanda çalışmaya

başlamalarını sağlamaktadır.

Global bellekten diğer bloklar tarafından hesaplanan değerler blok içine

çekildiğinde paylaşımlı bellekte saklanan bir alt matriste saklanmaktadır. Bu alt

matris blok içinde işlenen değerleri de içermekte olduğu için diğer bloklardan gelen

değerler saklamaya ayrılmış bir satır ve bir sütuna sahiptir. 푥 × 푦 boyutlarında alt

matrisi hesaplamak için (푥 + 1) × (푦 + 1) boyutlarında yer ayrılmaktadır. Bu ek

satır ve sütun, forward substitution için Şekil 4.21’de turuncu renkle gösterildiği

gibidir.

Page 62: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

48

Şekil 4.21 Paylaşımlı bellekte saklanan 푥 × 푦 boyutlarındaki veriyi işleyen(푥 +

1) × (푦 + 1) boyutlarındaki alt matris. Turuncu kareler komşu

bloklardan gelen, mavi kareler blok içinde hesaplanan değerleri

tutmaktadır.

Blok içinde yapılan hesaplamalarda veriler paylaşımlı bellek üzerinden iş

parçacıkları arasında iletilmektedir. Tüm iş parçacıkları o katmanı hesaplamak için

gereken işlerini tamamladıktan sonra blok içindeki veriler global belleğe

aktarılmakta ve bekleyen bloklar uyarılmaktadır.

Komşu katman her zaman blok içinde hesaplandığı için forward substitution

algoritmasında ihtiyaç duyulan önceki katmandan gerekli olan veriler için hiçbir

zaman global bellek erişimine ihtiyaç duyulmamaktadır. Bu veriler bir önceki

katman hesaplanırken zaten paylaşımlı bellekte kalmış olan hesaplanmış verilerdir.

Büyük miktarda verinin global bellekten okunması ihtiyacını ortadan kaldıran bu

yöntem hızlandırmaya katkıda bulunmaktadır.

4.3.5.1. GİB yerleşiminden bağımsız yöntemin başarımı ve diğer yöntemlerle

karşılaştırılması GİB üzerinde yerleştirimden bağımsız yöntem denenirken hem boyutların ayrı ayrı

başarıma etkisi hem de küp şeklinde bir modelin başarımı ölçülmüştür. Aynı

zamanda önceki yöntemlerle bu veriler karşılaştırılmıştır.

Katmanların bağlılıkları blok içinde yönetildiği için bu boyutun değişimi diğer

boyutlar sabit tutulduğuna en fazla başarımı arttıran etmen olmuştur. Şekil 4.22’de

görüldüğü üzere katman değerindeki artış 140 kata kadar hızlanmaya imkan

vermektedir. Bu değeri sütun ve satır sayısı takip etmektedir. Satır sayısının bu

Page 63: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

49

durumda diğer boyutlara göre düşük bir başarım göstermesi verilerin elde edilirken

16 × 4boyutlarında bloklar tanımlanmış olmasıdır. Bu blok boyutu, bir blok içine

az sayıda satır sığmasına sebep olduğundan dolayı tüm modelin çözülmesi için

daha çok blokun anahtarlanması ve haliyle global bellek erişimlerini arttırması

sebebi ile olumsuz bir etkiye sebep olmuştur. Mevcut yeraltı su kaynağı

modellerine bağlı olarak seçilen bu değerin değiştirilmesi satır ve sütun

niceliklerine bağlı olarak gerçekleştirilebilir. Böylece her modele uygun değerler

bulunabilir.

Şekil 4.22 Farklı model boyutlarına bağlı hızlanma oranları. Ölçümler alınırken

diğer boyutlar 100 değerine sabitlenmiş şekilde belirtilen boyutun büyüklüğü

değiştirilmiştir.

Ayrıca üç boyutlu model en büyük olan boyutunun, katman yerine, blokun içinde

çözülmesi ile her koşulda en fazla başarımın ve hızlanmanın elde edilmesi

mümkündür. Bu da Şekil 4.22’da görülebileceği üzere 140 kat hızlanmadır.

50

60

70

80

90

100

110

120

130

140

150

100

200

300

400

500

600

700

800

900

1000

1100

1200

1300

1400

1500

1600

1700

1800

1900

2000

Hız

lanm

a

Boyut Büyüklüğü

Sütun

Satır

Katman

Page 64: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

50

Şekil 4.23 Küp bir modelin farklı kenar boyutlarına bağlı hızlanma oranları.

Tüm boyutların aynı anda artması ve her birinin etkisinin incelenmesi için küp

şeklinde model de denenmiştir. Bu model de küpün kenarlarının boyutunun

arttırılarak belli bir değeri geçmesinden sonra katman sayısının arttırılması ile elde

edilen 140 kat hızlanmaya erişmiştir. Fakat düşük boyutlardaki örneğin 50 × 50 ×

50 modellerde hızlanma 3 katta kalmıştır.

Önceki yöntemlerden başarımı en yüksek olan KSS yerleştiriminin yeni yöntem ile

modelin satır, sütun boyutarının değişmesine bağlı hızlanma oranları Şekil 4.24’de

görülebilir. Az katmana sahip modellerde, yeni yöntem kullanılarak eski yönteme

göre 1.5 ve 3 kat arası hızlanma elde edilmiştir.

0

20

40

60

80

100

120

140

160

50 60 70 80 90 100

110

120

130

140

150

160

170

180

190

200

210

220

230

240

250

Hız

lanm

a

Küpün Bir Kenarının Boyutu

Hızlanma

Page 65: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

51

Şekil 4.24 Değişik satır ve sütun sayılarına sahip modellerde yeni yöntem ile

KSS'ye göre elde edilen hızlanma. Ölçüm alınırken katman 8’e, diğer boyut ise

1000’e sabitlenmiştir.

KSS ile karşılaştırıldığında elde edilen hızlanma Şekil 4.25’de görülebilir. Yine

KSS’ye göre bariz bir iyileşme vardır. Düşük katman boyutlarında aradaki fark belli

olmasa da daha önce Şekil 4.22’da da görülebileceği gibi yüksek katman sayısında

hızlanma daha da artmaktadır. Önceki yöntemlerde katman sayısı arttığı zaman

oluşan başarım kaybı bu yöntemle başarım arttırımına dönüşmüştür. Bu sebeple

daha kararlı ve yüksek başarımlı bu yöntem diğer yöntemlere göre daha üstündür.

0

0,5

1

1,5

2

2,5

3

100

200

300

400

500

600

700

800

900

1000

1100

1200

1300

1400

1500

1600

1700

1800

1900

2000

Hız

lanm

a

Boyutun Büyüklüğü

Sütun

Satır

Page 66: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

52

Şekil 4.25 Değişik katman sayılarına sahip modellerde KSS'ye göre elde edilen

hızlanma. Modelin diğer boyutları 1000'e sabitlenmiştir.

4.3.6. MICCG Gerçekleştiriminin Başarımı

MICCG yöntemi, Eş. 3.13’te tanımlanmış olan D köşegen matrisinin

hesaplanmasına ihtiyaç duymaktadır. Bu matris sadece ilk iç yinelemelerde

hesaplandığı için GİB’e aktarılmamıştır. İlk yinelemelerde D matrisi ve forward

substitution AİB tarafından yapılmakta ve bu veriler GİB’e aktarılmaktadır. Bu

değerler hesaplandıktan sonra diğer yinelemelerde AİB ve GİB arasında iletişim

olmamaktadır. Bu sebeple ilk yineleme ve onu takip eden yinelemelerde MICCG

yöntemi ile preconditioned matrisin elde edilmesi farklı süreler almaktadır. Bu

süreler ve hızlanma oranı Çizelge 4.7‘te görülebilir.

Çizelge 4.7 MICCG yöntemi ile preconditioned matrisin elde edilmesi için AİB ve

GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms) Hızlanma

MICCG(ilk iç yineleme) 107,905 88,518 1,22X

0

0,5

1

1,5

2

2,5

3

3,5

4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Hız

lanm

a

Katman Sayısı

Katman

Page 67: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

53

MICCG(sonraki iç yinelemeler) 60,453 14,658 4,12X

Görüldüğü üzere ilk yinelemede düşük verim elde edilse de ardıl iç yinelemeler

başarımını arttırmaktadır. Örneğin 30 iç yineleme gerektiren bir çözüm ele

alındığında preconditioned matrisin hesaplanması için harcanan işin GİB

gerçekleştirimi ile 3,62 kat hızlandığı söylenebilir.

4.4. POLCG Gerçekleştirimi ve Başarımı

POLCG, Eş. 3.22’deki gibi üç ardıl eşitlikle ifade edilmiştir. Bu eşitliklerin her biri

aynı işi farklı verilerle yapmaktadır. Her adımda değişenler c katsayısı ve A

matrisinin çarpıldığı vektörün içeriğidir. Bu sebeple çözümü için tek bir koşut işlev

tasarlanmıştır. Aynı koşut işlev farklı değişkenlerle üç kere ard arda çağrılarak

POLCG çözülmektedir.

POLCG, tamamen veri bağımsız bir algoritma olduğu için GİB üzerinde çok yüksek

başarım elde edilerek çalıştırılabilmektedir. POLCG yöntemi ile preconditioned

matrisin elde edilmesi için AİB ve GİB üzerinde gerçekleştirimin aldığı süre ve

hızlanma oranı Çizelge 4.8‘te görülebilir.

Çizelge 4.8 POLCG yöntemi ile preconditioned matrisin elde edilmesi için AİB ve

GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms) Hızlanma

POLCG 150,120 3,543 42,37X

POLCG ile örnek girdide 42 kat hızlanma sağlanabilmiştir.

4.5. MICCG ve POLCG Yöntemleri ile Preconditioned Conjugate Gradient Gerçekleştirimin Başarımlarının Karşılaştırılması

Önceki iki bölümde MICCG ve POLCG ile preconditioned matrisin elde edilmesi

için harcanan süreler ve başarımları karşılaştırılmıştır. Bu bölümde ise bu

preconditioned matris kullanılarak conjugate gradient yönteminin çözülmesinde

harcanan süreler karşılaştırılacaktır. Conjugate gradient yöntemi belirli bir sınır

Page 68: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

54

koşula yakınsamasına göre sonlanan bir sayısal çözümleme yöntemi olduğu için

belirli sayıda yineleme yapıp bu yinelemelerin ardından da sınır koşulu

denetlemektedir. Yinelemeler de kendi içinde iç yinelemelere bölünebilmekte ve

böylece yakınsama hızlandırılmaya çalışılmaktadır. Çizelge 4.9‘da verilen süre ve

hızlanma değerleri POLCG ve MICCG için bir iç yineleme için ölçülmüş ve

hesaplanmıştır.

Çizelge 4.9 MICCG ve POLCG yöntemleri ile conjugate gradient yönteminin bir iç

yinelemesi için AİB ve GİB üzerinde gerçekleştirimin aldığı süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms) Hızlanma

MICCG(ilk iç yineleme) 182,838 96,387 1,89X

MICCG(sonraki iç yinelemeler) 140,712 27,483 5,12X

POLCG 230,285 14,786 15,57X

Önceki bölümlerde belirtildiği gibi MICCG’nin ilk iç yinelemesinde D matrisinin

hesaplanması gibi fazladan işler olduğu için çizelgede ilk ve sonraki yinelemelere

ayrı olarak yer verilmiştir. İç yinelemeler için Çizelge 4.9’daki gibi hızlanma elde

edilse de, iç yineleme sayısı kullanıcı tarafından ve algoritmanın yakınsamasına

bağlı olarak değişir. Bu sebeple yinelemenin ilk değerlerin atanması ve

sonlandırılması gibi ek yükler için harcanan süre de hesaba katılmalıdır. Bu

değerler Çizelge 4.10’de görülebilir.

Çizelge 4.10 MICCG ve POLCG yöntemleri ile bir yinelemenin ek yükü için AİB ve

GİB gerçekleştiriminde harcanan süre ve hızlanma oranı Yöntem AİB(ms) GİB(ms)

MICCG 89,392 120,715

POLCG 179,003 217,818

Bu değerler de düşünüldüğünde 30 iç yineleme yapan çalıştırma ile tek bir iç

yineleme yapan çalıştırma arasında başarım farklı olmaktadır. Bu koşullar için

çalışma süreleri Çizelge 4.11’de görülebilir

Page 69: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

55

Çizelge 4.11 MICCG ve POLCG yöntemleri ile farklı iç yineleme sayısına bağlı

olarak AİB ve GİB gerçekleştiriminde harcanan süre ve hızlanma oranı

Yöntem İç Yineleme Sayısı AİB(ms) GİB(ms) Hızlanma

MICCG 1 272,230 217,102 1,25X

MICCG 30 4352,878 1014,109 4,29X

POLCG 1 409,288 232,604 1,76X

POLCG 30 5600,375 661,398 8,46X

Bu sebeple yöntemlerin sınır koşula yakınsaması için gereken yineleme sayısı ve

yinelemelerin içerdiği iç yineleme sayısı da başarım için önemlidir. Görüldüğü gibi

POLCG yöntemi MICCG’ye göre daha yüksek başarım sağlamaktadır.

POLCG, GİB üzerinde gerçekleştirimde her durumda MICCG’ye göre daha yüksek

başarım göstermiştir. Fakat bir diğer ölçüt de preconditioner yönteminin

yakınsayabilme başarısıdır. Bu özellik koşut programlama ile arttırılabilecek bir

durum değildir. Çizelge 4.12‘de görüldüğü gibi GİB gerçekleştirimlerinde MICCG ile

çözüm 3 bin saniyenin biraz üzerinde vakit alırken bu POLCG’de 8 bin saniyeyi

aşmaktadır. Bu nedenle her ne kadar POLCG, MICCG’den daha yüksek hızlanma

oranlarına sahipse de bir yeraltı su kaynakları dizgesinin çözülmesinde son

kullanıcı için en büyük getiriyi daha etkin bir yöntem olduğu için MICCG

sağlamıştır.

Çizelge 4.12 MICCG ve POLCG yöntemleri için MODFLOW uygulamasıyla örnek

modelin çözülmesinde AİB ve GİB gerçekleştirimlerinde harcanan süre ve

hızlanma oranları Yöntem AİB(sn) GİB(sn) Hızlanma

MICCG 9474 3089 3,06X

POLCG 38638 8157 4,73X

Page 70: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

56

Page 71: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

57

5. SONUÇ VE ÖNERİLER

GİB’ler, yazılım geliştirme ortamlarının iyileşmesiyle koşut programlamada etkin bir

şekilde kullanılmaktadır. GİB’ler mimarilerine uygun algoritmalarda, yüksek

başarımlı hesaplama alanında bilgisayar kümelerinin yerine geçmektedir. Özellikle

sayısal çözümleme konusu, yüksek karmaşıklıkta algoritmalar içermektedir. Bu

daldaki algoritmaların GİB gibi düşük maliyetli donanımlar kullanılarak

gerçekleştirilmesi hem bilimsel hem de ticari uygulamalara doğrudan etki

etmektedir.

Bu çalışmada, sayısal çözümleme algoritmalarından preconditioned conjugate

gradient algoritması GİB üzerinde MODFLOW adlı yazılımla bütünleşik halde

gerçekleştirilmiştir. Böylece yeraltı su kaynaklarının modellenmesinde ve

analizinde harcanan vakit azaltılmıştır. Bu hızlanma GİB’ler kullanılarak

gerçekleştirildiği için son kullanıcıya düşük maliyetle ulaşma imkanı

bulabilmektedir.

Conjugate gradient yöntemi için geliştirilen iki preconditioning yönteminden

POLCG vektör bilgisayar mimarilerine uygun bir algoritma olduğu için kolaylıkla

GİB’e uyarlanmıştır. GİB’de iyi bir hızlanma oranı elde edilmiş olmasına rağmen,

bu yöntem sonuca yakınsama konusunda düşük başarım göstermektedir. Bu da

tez kapsamında MICCG üzerine daha çok yoğunlaşılmasına sebep olmuştur.

GİB donanım mimarisine uygun olmayan ama MICCG’nin başarımı için hassas

öneme sahip olan forward ve back substitution algoritmalarının gerçekleştirilmesi

MICCG’nin hızlı yakınsama özelliğinin GİB’e aktarılabilmesi için bir gereklilik

olmuştur. GİB programlama modeli sebebiyle bu kesimlerin GİB üzerinde

çalıştırılamaması fazladan GİB ve AİB arasında veri aktarımı ile ek yük

oluşturmakta idi. Bu sebeple aynı hızda doğru sonuçların GİB’de elde edilmesi bile

ek yükten kurtulunmasıyla bir hızlanma ifade etmektektedir.

Page 72: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

58

Bu yüzden bu algoritmaların gerçekleştirilmesine tez kapsamında büyük önem

verilmiştir. GİB üzerindeki yerleştirime bağlı ve yerleştirimden bağımsız yöntemler,

blok içi yerleştirimi ve iş parçacıklarının yönetilmesi konuları denenmiştir. Veri

bağımsız algoritmalarda yüksek başarım sağlayan bir mimariye sahip olan GİB,

gerçekleştirimiz sayesinde ardıllığı ve veri bağımlılığı yüksek Back ve forward

substitution algoritmalarında 140 kata kadar hızlanma sağlamıştır. Back ve forward

substitution algoritmalarının kullanım alanları geniş olduğundan, bu algoritmalar

için sunulan yaklaşım başka yöntemlerin gerçekleştirilmesinde de temel olarak

kullanılabilecektir.

Tez kapsamında yapılan çalışma, back ve forward substitution algoritmaları da

dahil olmak üzere preconditioned conjugate gradient yönteminin GİB üzerinde

çalışan, bilgimiz dahilinde olan, ilk gerçekleştirimidir.

Çalışma gerçekleştirilirken kayan noktalı sayıların farklı donanımlarda

hesaplanmasından doğan hatalar dikkate alınmıştır. Bu hataların en aza

indirgenmesi için GİB’de 64 ikillik kayan noktalı sayılar kullanılmıştır. Fakat GİB’de

64 ikillik kayan noktalı sayılar mevcut donanımların kısıtları sebebiyle 32 ikillik

sayılara göre daha düşük başarıma sahiptir. Kullandığımız GİB modeli olan

GTX280’de, 32 ikillik ile 64 ikillik kayan noktalı sayılar arasında sekiz katlık bir

başarım farkı bulunmaktadır. Bu durum gerçekleştirimin hızına olumsuz bir etkide

bulunmuştur. Yeni çıkacak donanımlarda kayan noktalı sayıların donanım

tabanında tam olarak gerçekleştirilecek olması gerçekleştirimimizin de başarımını

etkileyecektir.

Page 73: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

59

6. KAYNAKLAR

[1] Jonathan Richard Shewchuk, "An Introduction to the Conjugate Gradient

Method Without the Agonizing Pain," August 1994.

[2] M.C. Hill, "Preconditioned conjugate-gradient 2 (PCG2), a computer program

for solving ground-water flow equations: U.S. Geological Survey Water-

Resources Investigations Report 90-4048," 1990.

[3] (2009) MPI: A Message-Passing Interface Standart.

[4] Robert Piotr Bycul Andrzej Jordan, "The Parallel Algorithm of Conjugate

Gradient Method," Lecture Notes in Computer Science, vol. Volume 2326,

2002.

[5] Gene H. and Van Loan, Charles F. Golub, Matrix computations, 3rd Edition.

Baltimore, MD, USA: Johns Hopkins University Press, 1996.

[6] S. F., and Falgout, R. D. Ashby, "A parallel multigrid preconditioned conjugate

gradient algorithm for groundwater flow simulations," Lawrence Livermore

National Laboratory, 1996.

[7] NVIDIA Corp. NVIDIA. [Online].

http://developer.download.nvidia.com/compute/cuda/2_21/toolkit/docs/NVIDIA_

CUDA_Programming_Guide_2.2.1.pdf

[8] Youquan Liu Enhua Wu, "Emerging technology about GPGPU," in Circuits and

Systems, 2008. APCCAS 2008. IEEE Asia Pacific Conference on, 2008, pp.

618-622.

[9] Dominik Goeddeke. GPGPU:Basic Math Tutorial. [Online].

http://www.mathematik.uni-dortmund.de/~goeddeke/gpgpu/tutorial.html

[1

0]

NVIDIA Corp. Nvidia. [Online]. http://developer.nvidia.com/object/cg_toolkit.html

[1

1]

NVIDIA Corp., "NVIDIA GeForce® GTX 200 GPU Architectural Overview,"

2008.

[1

2]

Michael G. McDonald and Arlen W. Harbaugh, "The History of MODFLOW,"

Ground Water, vol. 41, no. 2, 2003.

Page 74: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

60

[1

3]

Therrien et al., "HydroGeoSphere-A Three-Dimensional Numerical Model

Describing Fully-Integrated Subsurface and Surface Flow and Solute Transport.

Users's Guide," Waterloo, 2007.

[1

4]

DHI WASY GmbH: About FEFLOW. [Online]. http://www.feflow.info/

[1

5]

DHI. [Online].

http://www.dhigroup.com/Software/WaterResources/MIKESHE.aspx

[1

6]

RS Varga, Matrix iterative analysis.: Prentice-Hall, 1962.

[1

7]

M.G., and Harbaugh, A.W. McDonald, A Modular Three-Dimensional Finite-

Difference Ground-Water Flow Model., 1988.

[1

8]

"IEEE Standard for Floating-Point Arithmetic," IEEE Std 754-2008, 2009.

[1

9]

Wikipedia. [Online].

http://upload.wikimedia.org/wikipedia/commons/a/a9/IEEE_754_Double_Floatin

g_Point_Format.svg

[2

0]

W. Kahan, "Pracniques: further remarks on reducing truncation errors," vol. 8,

no. 1, 1965.

[2

1]

T. Granlund. (2009) GNU MP: The GNU Multiple Precision Arithmetic Library

ed. 4.3.1. [Online]. http://gmplib.org/

[2

2]

David S. Watkins, Fundamentals of matrix computations., 2002.

[2

3]

Yousef Saad, Iterative Methods for Sparse Linear Systems, Second Edition.:

Society for Industrial and Applied Mathematics, 2003.

[2

4]

NVIDIA. (2010) Built For Adobe Professionals. [Online].

http://www.nvidia.com/object/builtforadobepros.html

Page 75: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

61

Page 76: GRAFİK İŞLEM BİRİMİNDE YERALTI SU KAYNAKLARININ …yunus.hacettepe.edu.tr/~artuner/tezler_pdf/Tez_yigitcan... · 2012. 1. 2. · sorunlar için yakınsamayı hızlandıran preconditioner’lar

62

ÖZGEÇMİŞ

Adı Soyadı : Yiğitcan AKSARI

Doğum Yeri : Ankara

Doğum Yılı : 1986

Medeni Hali : Bekar

Eğitim ve Akademik Durumu:

Lise : 2000-2003 Nermin Mehmet Çekiç Anadolu Lisesi

Lisans : 2003-2007 Hacettepe Üniversitesi Mühendislik Fakültesi

Bilgisayar Mühendisliği Bölümü

Yabancı Dil : İngilizce

İş Tecrübesi:

2007-... Araştırma Görevlisi, Hacettepe Üniversitesi Bilgisayar

Mühendisliği Bölümü