Paralel Programlama 2. Bölüm Mustafa Karakaplan. Birinci Bölüm ● Bilgisayar Kümeleme ve Paralel Programlama Nedir? ● MPI'ya Giriş ve Noktadan Noktaya.

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Programlama Güz 2011
Advertisements

Matlab ile sayısal integrasyon yöntemleri.
5 EKSENLİ ROBOT KOLUNUN YÖRÜNGE PLANLAMASI ve DENEYSEL UYGULAMA
Uludağ Üniversitesi Fizik Bölümü
Baz Değişimi Bir sorun için uygun olan bir baz, bir diğeri için uygun olmayabilir, bu nedenle bir bazdan diğerine değişim için vektör uzayları ile çalışmak.
void medyan(int cevap[]) { int j; siralama(cevap);
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Değişken Bildirimleri
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Özyinelemeli(Recursive) Algoritma Tasarımı
Recursion (Özyineleme)
MATLAB’ de Programlama XII Hafta 12 Matlab Ders Notları.
Fonksiyonlar.
Veri Yapıları ve Algoritmalar
Bölüm 4: Sayısal İntegral
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
AST409 Astronomide Sayısal Çözümleme
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
GEOMETRİK PROGRAMLAMA
Bilgisayar Programlama
BENZETİM Prof.Dr.Berna Dengiz 3. Ders Monte Carlo Benzetimi
Bölüm5 :Kök Bulma Sayısal bilgisayarlar çıkmadan önce, cebirsel denklemlerin köklerini çözmek için çeşitli yollar vardı. Bazı durumlarda, eşitliğinde olduğu.
Diziler (Arrays).
SONLU ELEMANLAR YÖNTEMİ
Bölüm 7: Matrisler Fizikte birçok problemin çözümü matris denklemleriyle ifade edilir. En çok karşılaşılan problem türleri iki başlıkta toplanabilir. Cebirsel.
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
C++.
SONLU ELEMANLARA GİRİŞ DERSİ
DİFERANSİYEL DENKLEMLER
MATLAB’ de Programlama
BİL542 PARALEL PROGRAMLAMA
Yıldız Teknik Üniversitesi Makina Müh. Bölümü
SONLU ELEMANLAR DERS 6.
DİERANSİYEL DENKLEMLER
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Diferansiyel Denklemler
3. HAFTA 3. Hafta.
Polinomlar Enterpolasyon Grafikler Uygulama Sayısal Analiz
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
SAYISAL ANALİZ Doç. Dr. Cüneyt BAYILMIŞ.
Sayısal Analiz Sayısal Türev
Sayısal Analiz Sayısal İntegral 3. Hafta
Lineer Cebir ve Uygulamaları Neslihan Serap Şengör Devreler ve Sistemler A.B.D. oda no:1107 tel no:
n bilinmeyenli m denklem
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Hatırlatma: Durum Denklemleri
1. Mertebeden Lineer Devreler
ISIS IRIR ITIT Z=10e -j45, 3-fazlı ve kaynak 220 V. I R, I S, I T akımları ile her empedansa ilişkin akımları belirleyin.
2- Jordan Kanonik Yapısı
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Özdeğerler, Sıfırlar ve Kutuplar
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
DERS 7 SAYISAL İNTEGRASYON DERS 7.1 TRAPEZOIDAL (YAMUK) KURAL
Geçen hafta ne yapmıştık
MALTEPE ÜNİVERSİTESİ Paralel Hesaplama MATLAB ve Paralel Hesaplama
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
5.1 POLİNOMİNAL REGRESSİYON
SONLU ELEMANLAR YÖNTEMİ
NİŞANTAŞI ÜNİVERSİTESİ
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
MONTE CARLO BENZETİMİ U(0,1) rassal değişkenler kullanılarak (zamanın önemli bir rolü olmadığı) stokastik ya da deterministik problemlerin çözümünde kullanılan.
İleri Algoritma Analizi
Sunum transkripti:

Paralel Programlama 2. Bölüm Mustafa Karakaplan

Birinci Bölüm ● Bilgisayar Kümeleme ve Paralel Programlama Nedir? ● MPI'ya Giriş ve Noktadan Noktaya Haberleşme ● Ortak Mesajlaşma ve Haberleşme, Kesintisiz Haberleşme İkinci Bölüm ● Veri Organizasyonu ve Veri İşleme ● Paralel Matris Işleme ● Temel Sayısal Hesaplamalar ve Kütüphaneler ● Simulasyon ve Optimizasyon

MPI_COMM_WORL D Communicator İşlemciler Sıralar İletişimci Adı

İşlemci Sayısını Bulmak İlk argüman iletişim ortamı İşlemci sayısı ikinci argümana aktarılır MPI_Comm_size (MPI_COMM_WORLD, &p);

İşlemci Sırasını Bulmak İlk argüman iletişim ortamı İşlemci sırası ikinci argümana aktarılır. 0 ile p-1 arasında bir sayı alacaktır. MPI_Comm_rank (MPI_COMM_WORLD, &id);

Otomatik Değişkenlerin Dağılımı 0 id 6 p 4 6 p 2 6 p 1 6 p 5 6 p 3 6 p

Çevrimli İş dağılımı P1P2 P P1P2P0 Sıradan İş dağılımı

Sıralı İş Dağılımı x1=id*(veri/np)+alt x2=(id+1)*(veri/np) P1P2P0 x1=1 ; x2=6x1=7 ; x2=12 x1=13 ; x2= P1P2P0 x1=1 ; x2=4x1=5 ; x2=9 x1=10 ; x2=13 x1=14 ; x2=18 P3

I = (b-a)*(f(a)+ 4f(x c )+f(b))/6 x X=aX=b f(a) f(b) x c = (a+ b)/2 f(X c ) Simpson Kuralı ile İntegral

Simpson Kuralı İle İntegral π = 4/(1+x*x) dx ∫ 0 1 Her işlemci kendi aralığını hesaplayacak x1= my_rank/N p den x2= x1 + 1/N p

İntegral Almada Hatalar ● N noktada integrasyonda ● Monte Carlo da hata 1/N 0.5 ● Trapezoidal 1/N 2 ● Simpson 1/N 4 ● Gaussian 1/N 2m (m tmel nokta için) ● Fakat d boyutlu integral için – Monte Carlo da hata hala 1/N 0.5 – Simpson da hata 1/N 4/d

Paralel Matematik Kütüphaneleri Şimdiye kadar verilen MPI rutinleri ile matematiksel ve bilimsel paralel programlama yapabilirsiniz. Lineer Cebir problemlerini çözmek için paralel kod yazmak yerine bu amaçla yazılmış alt yordamları çağırmak yeterli olacaktır.

Seri ve Paralel Matematik Kütüphaneleri ● GSL Gnu Scientific Library ● BLAS: Basic Linear Algebra Subprograms ● PBLAS: Parallel Basic Linear Algebra Subprograms ● BLACS: Basic Linear Algebra Communication Subprograms ● LAPACK: Linear Algebra PACKage ● ScaLAPACK: Scalable Linear Algebra PACKage

Matris Dağıtma -I

Matris Dağıtma

Matematik Kütüphaneleri BLAS/PBLAS Vektör-Vektör İşlemleri, Matris-Vektör İşlemleri, Matris_Matris İşlemleri LAPACK/ScaLAPACK Özdeğer / Özvektör problemleri, Lineer Denklem sistemleri çözümü

ScaLAPACK'ı kullanılması ● Işlem gridinin belirlenmesi (= ⇒ BLACS) ● Matrisin işlem gridlerine dağıtılması ● ScaLAPACK'ın rutinlerinin çağrılması ● İşlem gridlerini serbest bırakma (= ⇒ BLACS)

Derleme mpicc ornek.c -llapack -lblas -lmpiblacsF77init -lmpiblacs -lscalapack -lm

İşlem Gridi ● 0 dan p-1 e kadar işlemci var. ● BLACS R*C<=p kadar grid oluşturur. ● Gridler i,j şeklinde etiketlenir. ● 0<= i <=R ve 0<= j <= C

Örnek Programlama I MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &p); MPI_Comm_rank(MPI_COMM_WORLD, &myid); Cblacs_get(0, 0, &ctxt);

Örnek Programlama II for (pc=p/2; p%pc; pc--); pr = p/pc; Cblacs_gridinit(&ctxt, "Row-major", pr, pc); Cblacs_pcoord(ctxt, myid, &myrow, &mycol); Cblacs_gridexit(ctxt); MPI_Finalize();

Matris Vektör Çarpma - I int M=15, N=20, ZERO=0, ONE=1; mb = (M - 1)/pr + 1; nb = (N - 1)/pc + 1; x = (double*) malloc(nb*sizeof(double)); y = (double*) malloc(mb*sizeof(double)); A = (double*) malloc(mb*nb*sizeof(double));

Matris Vektör Çarpma -I /*Local Matrisin indislerini belirle */ i0 = myrow*mb; j0 = mycol*nb; m = mb; n = nb; if (myrow == pr-1) m = M - i0; if (mycol == pc-1) n = N - j0; descinit_(descA, &M, &N, &mb, &nb, &ZERO, &ZERO, &ctxt, &mb, &info); descinit_(descx, &ONE, &N, &ONE,&nb, &ZERO, &ZERO, &ctxt, &ONE, &info); descinit_(descy, &M, &ONE,&mb, &ONE,&ZERO, &ZERO, &ctxt, &mb, &info);

Matris Vektör Çarpma - II y = beta * y + alpha * op( A ) * x dgemv_(&transpose, &M, &N, &alpha, A, &LDA, x, &incx, &beta, y, &incy); /* y = alpha*A*x + beta*y */ alpha = 1.0; beta = 0.0; pdgemv_("N", &M, &N, &alpha, A, &ONE, &ONE, descA, x, &ONE, &ONE, descx, &ONE, &beta, y, &ONE, &ONE, descy, &ONE);

GSL Gnu Scientific Library ● Komplex Sayılar ● Permutasyon ● Sıralama ● Lineer Cebir ● FFT ● Monte Carlo İnteg. ● Dif. Denklemler ● Nümerik Diferansiyel ● Kök Bulma ● Polinomun kökleri ● Vektör ve matrisler ● BLAS, CBLAS desteği ● İstatistik ● Simmulated Ann. ● İnterpolasyon ● Minimizasyon ● Fiziksel Sabitler

GSL Örnek /* Derleme gcc bessel.c -lgsl -lcblas -lm */ #include int main (void) { double x = 5.0; double y = gsl_sf_bessel_J0 (x); printf ("J0(%g) = %.18e\n", x, y); return 0; }

Monte Carlo Simulasyonu ● Monte Carlo Simulasyonunda standart sapma 1/N ● P tane işlemci ile varians NP kadar daha az ● Yaklaşık P kadar daha hızlı

Monte Carlo ile pi hesaplama 1 Kare içindeki noktaların sayısının daire içindeki noktalara oranı pi/4 e eşittir.

Çok Katlı İntegral Integral= △ x* △ y* △ z*f(xyz)/N

Optimizayon Yöntemleri * Genetic Algorithm. * Hill-climbing. * Tabu Search. * Simulated Annealling. * Simplex Search. * Steepest Ascents. * Deterministic Crowding. * Differential Evolution.

MPI ve Optimizasyon ● PGAPack Parallel Genetic Algorithm Library ● GAUL The Genetic Algorithm Utility Library ● GALib Genetic Algorithm Library

Gezgin Satıcı Problemi