LAPACK ve BİM++ (Blok İteratif Metotlar) Paketi. Ali Dinler 19 Mart 2008 Mühendislik Bilimleri Bölüm Semineri

Benzer belgeler
Blok Krylov Metotları ve geliştirilmekte olan BİM++ (Blok İteratif Metotlar) Paketi. Ali Dinler 6 Mart 2008 Matematik Bölüm Semineri

Blok Krylov metotlarının yüksek başarımlı uygulanması

GEO182 Lineer Cebir. Matrisler. Matrisler. Dersi Veren: Dr. İlke Deniz Derse Devam: %70. Vize Sayısı: 1

Matematik I: Analiz und Lineer Cebir I Sömestr Ders Saati D 2 U 2 L 1 AKTS 6 Lisans/ Yüksek Lisans Lisans Dersin Kodu MAT 106 Sömestr 2

. [ ] vektörünü S deki vektörlerin bir lineer

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

Yrd. Doç. Dr. A. Burak İNNER

ÖZDEĞERLER- ÖZVEKTÖRLER

Matris Analizi (MATH333) Ders Detayları

Şayet bir lineer sistemin en az bir çözümü varsa tutarlı denir.

Teori ve Örneklerle. Doç. Dr. Bülent ORUÇ

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu

Lineer Cebir II (MATH232) Ders Detayları

Cebir 1. MIT Açık Ders Malzemeleri

m=n şeklindeki matrislere kare matris adı verilir. şeklindeki matrislere ise sütun matrisi denir. şeklindeki A matrisi bir kare matristir.

BİLGİSAYAR PROGRAMLAMA DERSİ

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

Matrisler Matris Tanımı m satır ve n sütundan oluşan tablosuna matris adı verilir.

İleri Diferansiyel Denklemler

DENİZ HARP OKULU TEMEL BİLİMLER BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

2.3. MATRİSLER Matris Tanımlama

Sayısal Analiz I (MATH521) Ders Detayları

Matris Cebiriyle Çoklu Regresyon Modeli

Math 103 Lineer Cebir Dersi Final Sınavı

Matrisler ve matris işlemleri

Bir özvektörün sıfırdan farklı herhangi bri sabitle çarpımı yine bir özvektördür.

İleri Diferansiyel Denklemler

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Matlab da Dizi ve Matrisler. Mustafa Coşar

İleri Diferansiyel Denklemler

İç-Çarpım Uzayları ÜNİTE. Amaçlar. İçindekiler. Yazar Öğr. Grv. Dr. Nevin ORHUN

Elementer matrisler, ters matrisi bulmak, denk matrisler

Doğrusal Denklemler Sis./Sys. of Linear Equations

13. Karakteristik kökler ve özvektörler

R ile Programlamaya Giriş ve Uygulamalar

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Math 103 Lineer Cebir Dersi Ara Sınavı

3. BÖLÜM MATRİSLER 1

ii) S 2LW 2WH 2LW 2WH S 2WH 2LW S 3( x 1) 5( x 2) 5 3x 3 5x x Maliye Bölümü EKON 103 Matematik I / Mart 2018 Proje 2 CEVAPLAR C.1) C.

7. BÖLÜM İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI .= Genel: Vektörler bölümünde vektörel iç çarpım;

Özdeğer ve Özvektörler

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007


Lineer Cebir (MATH275) Ders Detayları

ÖABT Lineer Cebir KONU TESTİ Matris Cebiri

Ders: MAT261 Konu: Matrisler, Denklem Sistemleri matrisi bulunuz. olmak üzere X = AX + B olacak şekilde bir X 1.

Ç NDEK LER II. C LT KONULAR Sayfa Öz De er Öz Vektör.. 2. Lineer Cebir ve Sistem Analizi...

Fall Object-Oriented Programming Laboratory 03

Math 103 Lineer Cebir Dersi Ara Sınavı

x 0 = A(t)x + B(t) (2.1.2)

1. Hafta SAYISAL ANALİZE GİRİŞ

Math 103 Lineer Cebir Dersi Final Sınavı

Lineer Cebir (MATH 275) Ders Detayları

Cebir 1. MIT Açık Ders Malzemeleri

Matlab - Giriş (İleri Yapı Statiği II. Kısım)

Math 103 Lineer Cebir Dersi Final Sınavı

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

ÖRNEKLER-VEKTÖR UZAYLARI 1. Çözüm: w=k 1 u+k 2 v olmalıdır.

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Math 103 Lineer Cebir Dersi Final Sınavı

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

Bilgisayar Programlama. 1.Hafta

Prof.Dr. ÜNAL ERKAN MUMCUOĞLU.

Qt Temelleri. Eren BAŞTÜRK.

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

VEKTÖR UZAYLARI 1.GİRİŞ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI

Lineer Denklem Sistemleri Kısa Bilgiler ve Alıştırmalar

C++ Dersi: Nesne Tabanlı Programlama

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

KUADRATİK FORM. Tanım: Kuadratik Form. Bir q(x 1,x 2,,x n ) fonksiyonu

NÜMER IK ANAL IZ. Nuri ÖZALP L INEER S ISTEMLER IN ÇÖZÜMÜ. Bilimsel Hesaplama Matemati¼gi, Gazi Kitabevi 2012

MAK 210 SAYISAL ANALİZ

4. Bölüm Programlamaya Giriş

Bilgisayar Programlama MATLAB

METASEZGİSEL YÖNTEMLER

LİNEER CEBİR. Ders Sorumlusu: Doç.Dr.Kemal HACIEFENDİOĞLU. Ders Notu: Prof. Dr. Şaban EREN

1 Vektör Uzayları 2. Lineer Cebir. David Pierce. Matematik Bölümü, MSGSÜ mat.msgsu.edu.tr/~dpierce/

Qt ile Bir Ağ Uygulaması

Bigisayar Programlama

Sayısal Yöntemler (COMPE 350) Ders Detayları

Bilgisayar Programlama MATLAB

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

Hafta 13 Fonksiyonlar

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

#ifndef COMPLEX_H #define COMPLEX_H

8. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

Prof.Dr.F.Nejat EKMEKCİ, Prof. Dr. Yusuf YAYLI, BAHAR

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

önce biz sorduk KPSS Soruda soru ÖABT İLKÖĞRETİM MATEMATİK SOYUT CEBİR - LİNEER CEBİR Eğitimde 30.

GÜZ DÖNEMİ ARASINAV SORULARI. 1. Sayısal çözümleme ve fonksiyonu tanımlayarak kullanıldığı alanları kısaca açıklayınız?

18.06 Professor Strang FİNAL 16 Mayıs 2005

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

BLG 1306 Temel Bilgisayar Programlama

Transkript:

LAPACK ve BİM++ (Blok İteratif Metotlar) Paketi Ali Dinler 19 Mart 2008 Mühendislik Bilimleri Bölüm Semineri 1

Giriş Blok Metotlar Blok Krylov Metotları LAPACK ATLAS BİM++ Gelecek Özet 2

Giriş 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) 3

İlk sorulması gereken sorular: Simetrik mi? Tersi olan bir matris (nonsingular) mi? Pozitif tanımlı mı? : Her x vektörü için Transpose(x)Ax>0 (Bu ne demek?) Matrisimizin boyutu ne? Durum numarsı ne (condition number) mu? (Bu ne demek, Anlaması kolay mı?) Seyrek mi? Katsayı Matrisimiz Bu soruların cevaplarına göre çözüm metodumuzu belirlemeliyiz! 4

Blok Matrisler 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 5

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) 6

Blok GMRES-I GMRES Algoritması Krylov altuzayının m boyutlu ortonormal bazını bul (GS Arnoldi) Üst-Hessenberg (ekstra bir alt köşegene sahip üst üçgensel matrisi) 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 7

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 (Durum sayısı (condition number) büyük) Householder ortogonalleştirmesi Tekrar ortogonalleştirme Biz? 8

BİM++ Yardım edenler: Onur Dinçer, Ali Demirci Simetrik ve simetrik olmayan blok lineer sistemleri çözen iteratif metotlar paketi Bu Sunumda anlatılanların ayrıntılarını www2.itu.edu.tr/~dinlera/bimpp adresinde bulabilirsiniz C/C++ C++ F77 9

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 PAKET? 10

www.netlib.org/lapack 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) 11

LAPACK LINPACK EISPACK LAPACK 12

Windows www2.itu.edu.tr/~dinlera/bimpp 1. http://www.cygwin.com adresinden cygwin setup.exe programını indirin.setup.exe programını çalıştırın. 2. İleri ileri diyerek paket seçin penceresine gelin Math seçiminin altından LAPACK i, Devel altından make i ve g77 yi işaretleyin. make? g77? 13

LAPACK Kullanımı Lineer sistem çözen LAPACK örneği Program LinearEquations c solving the matrix equation A*x=b using LAPACK external sdot c declarations, notice single precision Real*4 A(3,3), b(3), res integer i, j, pivot(3), ok c define matrix A c define vector b c find the solution using the LAPACK routine SGESV call SGESV(3, 1, A, 3, pivot, b, 3, ok) c print the vector x do i=1, 3 write(*,*) b(i) end do end Eğer b Matris ise yani aynı katsayı matrisi ile birden fazla sistem çözmek istiyorsak SGESV metodu kullanılabilir. 14

ATLAS (Automatically Tuned Linear Algebra Software) LAPACK (hepsi değil) ve BLAS uygulaması ÇOK ÇOK hızlı Automatically Tuned ne demek, gerekli mi? ATLAS ı kullananlardan bazıları Matematik Programları: MAPLE (v7 and higher) MATLAB (v6.0 and higher) Mathematica (forthcoming) MAPLE (v7 and higher) Octave İşletim Sistemleri: Debian Linux FreeBSD Mac OS 10 Scyld Beowulf SuSE Linux Bunlara Ek olarak birçok serbest yazılım ve kütüphaneler, örneğin BİM++ 15

Windows ATLAS Kurulumu 1. ATLAS kaynak kodunu indirin ve C:/cygwin/home dizini içine kopyalayın. INSTALL dosyasını okuyun! 2. Cygwin i açın ve cygwin de, ATLAS dizini içinde bir dizin oluşturun ve içine diyerek girin cd [benim_dizin] 3. Aşağıdaki komutu çalıştırın $../configure -b 32 -D c -DPentiumCPS=1600 -- prefix=/home/atlas_lib --with-netlib-lapack=/lib/liblapack.a 50 dakika kadar bekleyin 16

Performans 3000 lik matris-vektör çarpımı: MATLAB 7.01 LAPACK benim çarpımım 0.18 sn 0.17 sn 0.22 sn benim blok çarpımım(bs=1500) ATLAS 0.19 sn 0.14 sn 500x500 lük iki matris çarpımı: MATLAB benim çarpımım ATLAS 0.17 sn 1.8 sn 0.12 sn BİM++ performansı? 17

CPP Arayüzü ile LAPACK kullanımı I BİM++'ın daha kolay kullanılması için CPPLAPACK e eklemeler yaptık CoV Sütun Vektör RoV Satır Vektör GeM Genel Matris SyM Simetrik Matris BaM Bant Matris SpM Seyrek (Sparse) Matris CcoV Kompleks Sütun Vektör CroV Kompleks Satır Vektör CgeM Kompleks Genel Matris CheM Kompleks Hermityan Matris CbaM Kompleks Bant Matris CspM Kompleks Seyrek (Sparse) Matris tr() qqr() rqr() qr() Matrisin izini bulur QR ayrışımı yapar ve Q matrisini verir QR ayrışımı yapar ve R matrisini verir QR ayrışımı yapar ve Q ve R matrisini verir 18

Arayüz ile LAPACK Kullanımı II Lineer sistem çözelim include "KEYcpplapack.h int main(int argc, char** argv) { int N=3; GeM A(N,N); CoV b(n); c A matrisini oluştur. Dosyadan da kolayca okutulabilir c b vektörünü oluştur A.dgesv(b); // b nin üzerine yazıyor! cout << cozum=\n" << b << endl; Return 0; } 19

Arayüz ile LAPACK Kullanımı III C++ teknolojisi? Algoritma *, t(), i(), +=, işlemlerine dikkat! 20

BİM++ Kurulum 1. http://www.cygwin.com adresinden cygwin setup.exe programını indirin.setup.exe programını çalıştırın. 2. İleri ileri diyerek paket seçin penceresine gelin Math seçiminin altından LAPACK i, Devel altından make i ve g77 yi işaretleyin. 3. www2.itu.edu.tr/~dinlera/bimpp adresinden BİM++ ı indirin ve doğru yere kopyalayın 21

Algoritmalar BİM++, en az programlama bilgisi ile hatta hiç C++ bilgisi gerektirmeden kullanılabilir yüksek başarımlı bir paket Bcg Bbcg Bbicgstab Bgmres Bgmres(m) Blok Conjugate Gradient Metot Blok Bi-Conjugate Gradient Metot Blok Bi-Conjugate Gradient Stabilized Metot Blok Generalized Minimal Residual Blok Generalized Minimal Residual restarted Ayrıntılar için dokümantasyona bakınız. 22

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 23

1. BİM++ ı Windows'ta kullanabilir miyiz? Evet 2. Sorun olursa? dinlera@itu.edu.tr 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. 24

Gelecek Önkoşullandırıcılar (preconditioners) Çok çekirdekli (Multi-core) sistemler için BİM++ Paralel BİM++ (PBİM++)? 25

Teşekkürler 26