Blok Krylov Metotları ve geliştirilmekte olan BİM++ (Blok İteratif

advertisement
Blok Krylov Metotları ve geliştirilmekte
olan BİM++ (Blok İteratif Metotlar)
Paketi
Ali Dinler
6 Mart 2008
Matematik Bölüm Semineri
1
Özet
Giriş
Üç Boyutta Yüksek Hız ve Sıcaklık Gradyanlı
Akışkanlar İçin Sıkıştırılabilir Sınır Tabaka
Problemi
Blok Metotlar
Blok Krylov Metotları
LAPACK
BİM++
Gelecek…
2
Giriş
• Navier-Stokes denklemlerinin ayrılmamış akımlar için
sadeleştirilmiş halleri = sınır tabaka denklemleri
Neyi Çözüyoruz?
• Düz levha için
• Laminar
• Daimi (Steady- state)
• Viskoz
• Sıkıştırılabilir N-S denklemlerini
• Sonlu Farklar
• Yüksek sıcaklık ve hız gradyanları durumunda gelen ek
terimler ile oluşan yeni sınır tabaka denklemleri
3
Üç Boyutta Sıkıştırılabilir Sınır Tabaka
Denklemleri
Daimi halde ve dış basınç sabit olduğunda
Süreklilik Denklemi
X yönünde momentum
denk.
Y yönünde momentum
denk.
Enerji Denklemi
4
Yüksek Hız ve Sıcaklık Gradyanlı Akışkanlar İçin
Sıkıştırılabilir Sınır Tabaka Denklemleri
Süreklilik Denklemi
------------------X yönünde momentum
denk.
-------------------
Enerji Denklemi
----------------5
Sınır Koşulları
6
Sayısal Ayrıklaştırmalar-I
Bunun yerine (m,n-1/2) noktası için fark denklemleri
Süreklilik denkleminin açık(explisit) şeması
7
Sayısal Ayrıklaştırmalar-II
• Kapalı (implisit) Hız ve Sıcaklık Şemaları
İki Boyutta
Üç Boyutta
Anti-simetrik Üçlü Bant
Sistem
 GMRES?
Anti-simetrik Beşli Bant
Sistem
8
KISACASI
Fiziksel Problem
KTDD ya da
KTDD sistemi
Ayrıklaştırma
Ax=b ya da AX=B
Genellikle A büyük (dim(A)>10^4) ve seyrek (sparse)
9
Blok Metotlar
Blok algoritmalar performanslı, tek vektör yerine vektör
bloklarını kullanmak performanslı
 Seyrek (Sparse) Matris
 Üçlü Bant Sistem!



Sadece Köşegen, alt-köşegen ve üstköşegen elemanları kullanarak çözüm
Üç Boyutlu durumda?
Blok Üçlü Bant Sistem!
 Alt ve üst-köşegen bloklar
köşegen matris!
 Blok LU ayrışımı, ileri ve
geri yok etme

10
Blok Eliminasyon-I
A ve C Köşegen Matrisler
Matris-Matris çarpımının performansını sadece köşegen elemanları
kullanarak arttırabiliriz
11
Blok Eliminasyon-II
Benzer şekilde
12
Blok Eliminasyon-III
İleri ve geri yoketme ile sonuca ulaşırız
İleri Yoketme
Bir kere LU
ayrışımı
yapıldıktan sonra
farklı sağ taraflar
ile çözmek kolay
Geri Yoketme
13
Blok Krylov
Krylov Metotları
i) Krylov metotları, en genel anlamda, matris-vektör çarpımları
ile Ax=b lineer sistemini çözen metotlardır
ii) Çözümü Krylov altuzayında arayan metotlardır
 GMRES, CG, CGS, TFQMR, Bi-CGSTAB…
 Çözüm Krylov altuzayında (arama uzayı ya da muhtemel
çözümler uzayı)
 Teorem: nxn’lik tekil olmayan Ax=b lineer sisteminin
çözümü m boyutlu Krylov altuzayındadır. (m<=n)
 Uygun problemler için ÇOK HIZLI çözüm.
 GMRES (büyük lineer sis. en önemli iteratif yöntem)

14
Blok GMRES-I

GMRES Algoritması
Krylov altuzayının m boyutlu ortonormal bazını bul (GS
Arnoldi)
 Hessenberg? matisini oluştur (Arnoldi)
 En küçük kareler problemini çöz (QR)




Tek vektörle değil vektör blokları ile
Tek sağ taraflı sistem?
BGMRES
 Blok Arnoldi
 Ortogonal bloklar
15
Blok GMRES-II

Uygulamada:

BGMRES(m)
 Direk metotlardan üstün
 BGMRES’e göre daha kötü yakınsar
Ortogonalliğin kaybedilmesi
 Yuvarlama hataları
 Matris kötü huylu
 Householder ortogonalleştirmesi
 Tekrar ortogonalleştirme
 Biz?

16
BİM++


Yardım edenler: Onur Dinçer, Ali Demirci
Simetrik ve simetrik olmayan blok lineer sistemleri çözen
iteratif metotlar paketi
C/C++
C++
F77
17
PAKET?
 Yüksek başarımlı ve kolay kullanılabilir bir paket oluşturmaya
 Algoritmaları daha kısa ve daha anlaşılır şekilde programlamaya
 Kullanmak için olabildiğince az programlama bilgisi gerektiren bir
paket oluşturmaya
 Tekrar kullanılabilir, taşınabilir ve kolayca geliştirilebilir bir paket
olmasına
 Windows ortamında çalışabilir bir paket olmasına çalıştık.
 Bir dokümantasyonu var
 Bir web sitesi var
www2.itu.edu.tr/~dinlera/bimpp
18
LAPACK
 www.netlib.org/lapack
 Lineer sistem (Ax=b hatta AX=B)
 Lineer en küçük kareler
 Özdeğer-özvektör problemleri için F77 dilinde yazılmış açık
kaynak kodlu özgür bir kütüphane
 Yüksek başarımlı
 Blok matris işlemleri yapıyor (blok matris-matris çarpımı gibi)
 1000’nin üzerinde fonksiyon içeriyor
 Windows’a kurulabilir
 Çok parametreli fonksiyonlardan oluşuyor, örneğin matris-matris
çarpımı:
call SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
19
LAPACK
LINPACK
EISPACK
LAPACK
20
LAPACK Kullanımı
BİM++'ın daha kolay kullanılması için CPPLAPACK’e eklemeler yaptık
CoV Sütun Vektör
RoV Satır Vektör
CroV Kompleks Satır Vektör
CgeM Kompleks Genel Matris
GeM Genel Matris
SyM Simetrik Matris
BaM Bant Matris
SpM Seyrek (Sparse) Matris
CheM Kompleks Hermityan Matris
CbaM Kompleks Bant Matris
CspM Kompleks Seyrek (Sparse)
Matris
CcoV Kompleks Sütun Vektör
tr()
Matrisin izini bulur
qqr()
QR ayrışımı yapar ve Q matrisini verir
rqr()
QR ayrışımı yapar ve R matrisini verir
qr()
QR ayrışımı yapar ve Q ve R matrisini verir
21
CPPLAPACK Kullanımı
C++ teknolojisi?
Algoritma
22
Algoritmalar
BİM++, en az programlama bilgisi ile hatta hiç C++ bilgisi
gerektirmeden kullanılabilir yüksek başarımlı bir paket
Bcg
Bbcg
Blok Conjugate Gradient Metot
Blok Bi-Conjugate Gradient Metot
Bbicgstab
Bgmres
Blok Bi-Conjugate Gradient Stabilized Metot
Blok Generalized Minimal Residual
Bgmres(m)
Blok Generalized Minimal Residual restarted
Ayrıntılar için dokümantasyona bakınız.
23
BİM++ Kullanımı
GeM A, B;
Bcg(A,B,eps,kmax);
Bbcg(A,B,B,eps,kmax);
Bbicgstab(A,B,B,eps,kmax);
Bgmres(A,B);
Başlangıç vektörü sıfır vektör alındı
B matrisinin üzerine sonucu yazar
Blok Krylov Metotları her matris için çalışmaz.
Yakınsar
Yakınsaklık Problemi!
Yavaş Yakınsar
Yakınsamaz
24
1. BİM++’ı Windows'ta kullanabilir miyiz?
Evet
2. Sorun olursa?
[email protected]
3. BİM++’ı kullanmak için C++ bilmek gerekiyor mu?
Hayır. Her C kodu bir C++ kodudur. C’yi kullanın!
4. ATLAS (Automatically Tuned Linear Algebra Software)’ı kullanabilir
miyiz?
Evet
5. Kendimize ait bir kütüphane?
Evet Bizim.
25
Gelecek
 Önkoşullandırıcılar (preconditioners)
 Çok çekirdekli (Multi-core) sistemler için BİM++
 Paralel BİM++ (PBİM++)?
26
Teşekkürler
27
Download