Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Ümran Onay. İÇERİK Paralel programlama nedir? Paralel programlama modelleri Paralel hesaplama nedir? Algoritmalar -Uygunluk ve verimlilik -Amdahl kuralı.

Benzer bir sunumlar


... konulu sunumlar: "Ümran Onay. İÇERİK Paralel programlama nedir? Paralel programlama modelleri Paralel hesaplama nedir? Algoritmalar -Uygunluk ve verimlilik -Amdahl kuralı."— Sunum transkripti:

1 Ümran Onay

2 İÇERİK Paralel programlama nedir? Paralel programlama modelleri Paralel hesaplama nedir? Algoritmalar -Uygunluk ve verimlilik -Amdahl kuralı ve ardışık bir programda hızlanma -Pratikte amdahl kuralı nasıl işler? OpenMP - Thread’lerin Hesaplanması -Openmp yürütme modeli -Paralel bölgeler -Uygulama(pi sayısının hesabı) -Avantaj ve dezavantajlar -Programın derlenmesi Son

3 PARALEL PROGRAMLAMA Paralel programlama, işlemler arasında iyi tanımlanmış iletişim yapıları kullanan ve verimi artırmaya yönelik işlemlerinin paralel işlenmesini sağlayan bir yapıdır.

4 Paralel Programlama Modelleri Ortak Hafıza Modelleri –Dağıtık Ortak Bellek –Posix Threads –OpenMP –Java Threads (HKU JESSICA, IBM cJVM) Mesaj Tabanlı Modeller –PVM –MPI Hibrid Modeller –Ortak ve dağıtık hafızayı birlikte kullananlar –OpenMP ve MPI birlikte kullananlar Nesne ve Servis Tabanlı Modeller –Geniş alanda dağıtık hesaplama teknolojileri Nesne: CORBA, DCOM Servis: Web servisleri tabanlı Bilimsel araştırma projelerinde sıklıkla Derleyici tarafından paralelleştirilen ortak bellek tabanlı programlar MPI gibi mesaj paylaşımı tabanlı programlar kullanılmaktadır.

5 PARALEL HESAPLAMA Paralel hesaplama, bir uygulamanın parçalara ayrılarak her bir parçanın birden fazla işlemcide çalıştırılmasıyla daha hızlı sonuç alma işlemidir.

6 ALGORİTMALAR

7 Sistemin bir parçası hızlandırılır. Bu sistem bir bütün olarak ela alınır. Ve toplam hızlanmanın ne olacağı hesap edilir. AMDAHL KURALI

8 Azami Hızlanma Şeklindedir. p = 5, tn (kırmızı) = 3 saniye, ti (mavi) = 1 saniye ve f = tn / (tn + ti) = 0.75 Azami hızlanma p = 2, t n (mavi) = 1 saniye, t i (kırmızı) = 3 saniye ve f = t n / (t n + t i ) = 0.25 Azami hızlanma SONUÇ:A bölümünü 2 kat hızlandırmak, B bölümünü 5 kat hızlandırmaktan çok daha az bir çabayla gerçekleştirilebilir.

9

10 Pratikte –Pratikte programları paralelleştirmek Amdahl yasasında görüldüğü kadar zor değildir. –Ancak programın çok büyük bir kısmını paralel işlem için harcaması gereklidir. Hızlanma Kodda Paralel Kısım 0%20%40%100%60%80% P=2 P=4 P=8

11 OPENMP Paralel hesaplamada işlemleri kolaylaştırmada kullanılan bir API’dir. Openmp, paylaşılmış hafıza sistemleri için tasarlanmıştır ve genellikle openmp ile daha az çaba harcayarak paralelliği uygulamak için mevcut seri programlar kullanılır. Openmp kullanımı ile: Derleyici komutları ile paralellik sağlamak, Veya zaman zaman işlev çağrısında bulunmak kolaydır. Ve openmp, paralel programlamanın hızlı ve !.... yoludur. (OpenMP is a “quick and dirty” way of parallelizing a program.)

12 Thread’lerin Hesaplanması -Her thraad bir işlemciye atanır. -Her thread programınızın bir kopyasında çalışır. Thread 0Thread 1Thread 2Thread n

13 OpenMP Yürütme Modeli MPI’da, bütün thread’ler her zaman etkindir. Openmp’de ise yürütme yalnızca master thread üzerindedir. Yavru thread’ler işlemlerin okunması sırasında ve kendilerine ihtiyaç duyulduğu yerde çalışmaya başlarlar. 1.Thread’ler, program paralel alana girdiğinde ortaya çıkarlar ve işlemler yapılır. 2.Paralel bölgeden çıkıldığında ise thread’ler bırakılırlar.

14 OpenMP Yürütme Modeli Ana thread hem paralel hem seri alanda görev almaktadır. Thread’lerin sayısı paralel bölgede artarken paralel alan dışında serbest bırakılırlar.

15 omp_set_num_threads(4); kısmında paralel bölgede çalışacak threadler oluşturulur ve her thraad aynı kodu çalıştırır. double A[1000]; omp_set_num_threads(4); #pragma omp parallel { int ID = omp_thread_num(); pooh(ID, A); } printf(“all done\n”); double A[1000]; omp_set_num_threads(4); pooh(0, A); pooh(1, A);pooh(2, A);pooh(3, A); A’nın bir kopyası bütün thread’ler arasında paylaşılır. İşlem devam etmeden önce bütün thread’lerin bitmesi bekler. printf(“all done\n”);

16 Pi sayısının OPENMP ile hesaplanması  = =  (1+x 2 ) dx 0

17 Avantajlar Programcının veri yerleştirme hususunda endişelenmesini gerektirecek bir durum yoktur çünkü openmp paylaşılmış hafızadan yararlanır. Programlama modeli seri benzeridir böylece kavramsal mesaj göndermeden daha kolaydır. Komutların kullanımı daha kolay ve basittir. Eski seri kodun yeniden yazılması gerekmez. Üzerinde yapılacak değişikliklerle paralel hale getirilebilir.

18 Dezavantajlar Programlar yalnızca paylaşılmış hafıza sistemlerinde çalıştırılabilir. Kullanılan derleyicinin openmp desteğinin olması gerekmektedir. -Oysa MPI heryerde kurulabilir. Genel olarak yalnızca orta hızlanma elde edilir. Openmp kodları olduğunca az seri koda sahip olmak isterler.

19

20 Asal sayı uygulaması

21 Teşekkürler SON


"Ümran Onay. İÇERİK Paralel programlama nedir? Paralel programlama modelleri Paralel hesaplama nedir? Algoritmalar -Uygunluk ve verimlilik -Amdahl kuralı." indir ppt

Benzer bir sunumlar


Google Reklamları