Ümran onay

21
Ümran Onay

Upload: kelly-caldwell

Post on 30-Dec-2015

50 views

Category:

Documents


2 download

DESCRIPTION

Ümran Onay. 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ı - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ümran Onay

Ümran Onay

Page 2: Ümran Onay

İÇ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

Page 3: Ümran Onay

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.

Page 4: Ümran Onay

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.

Page 5: Ümran Onay

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.

Page 6: Ümran Onay

ALGORİTMALAR

Page 7: Ümran Onay

• 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

Page 8: Ümran Onay

AMDAHL KURALIAzami 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, tn (mavi) = 1 saniye,

ti (kırmızı) = 3 saniye ve

f = tn / (tn + ti) = 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.

Page 9: Ümran Onay
Page 10: Ümran Onay

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%

8.0

7.0

6.0

5.0

4.0

3.0

2.0

1.0P=2

P=4

P=8

Page 11: Ümran Onay

OPENMPParalel 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.)

Page 12: Ümran Onay

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

Thread 0Thread 1 Thread 2 Thread n

Page 13: Ümran Onay

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.

Page 14: Ümran Onay

OpenMP Yürütme Modeli

Ana thread hem paralel hem seri alanda görev almaktadır.

Thread’lerin sayısı paralel bölgede artarkenparalel alan dışında serbest bırakılırlar.

Page 15: Ümran Onay

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”);

Page 16: Ümran Onay

Pi sayısının OPENMP ile hesaplanması = =

0

1

4(1+x2)

dx0<i<N

4N(1+((i+0.5)/N)2)

#define n 1000000main() {

double pi, l, ls = 0.0, w = 1.0/n;int i;

#pragma omp parallel private(i,l) reduction(+:ls) {#pragma omp for

for(i=0; i<n; i++) {l = (i+0.5)*w;ls += 4.0/(1.0+l*l);

}#pragma omp master

printf(“pi is %f\n”,ls*w);#pragma omp end master }}

• Seri programlama şeklinde yazılıyor• Otomatik yük dağılımı yapılıyor.• Bütün değişkenler paylaşılıyor.

#define n 1000000main() {

double pi, l, ls = 0.0, w = 1.0/n;int i;for(i=0; i<n; i++) {

l = (i+0.5)*w;ls += 4.0/(1.0+l*l);

}printf(“pi is %f\n”,ls*w);

}

Sıralı programParalel program

Page 17: Ümran Onay

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.

Page 18: Ümran Onay

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.

Page 19: Ümran Onay
Page 20: Ümran Onay

• Asal sayı uygulaması

Page 21: Ümran Onay

Teşekkürler

SON