Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | casey-mcmahon |
View: | 43 times |
Download: | 5 times |
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
• Embarrassingly Parallel Computations
• Partitioning and Divide-and-Conquer Strategies
• Pipelined Computations
• Synchronous Computations
• Asynchronous Computations
• Load Balancing and Termination Detection
Teknik-teknik Paralel
3.1
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Chapter 3
Embarrassingly Parallel Computations
3.2
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Embarrassingly Parallel ComputationsKomputasi yang jelas dapat dibagi menjadi sejumlah bagian yang benar-benar independen, masing-masing dieksekusi oleh prosesor yang terpisah.
Tidak ada atau hanya sedikit komunikasi antar proses.Setiap proses dapat melakukan tugasnya tanpa interaksi dengan proses lain.
3.3
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Practical embarrassingly parallel computation with static process
creation and master-slave approach
3.4
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Practical embarrassingly parallel computation with dynamic process creation and master-slave approach
3.5
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Embarrassingly Parallel Computation Examples
• Low level image processing
• Mandelbrot set
• Monte Carlo Calculations
3.6
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Low level image processing
Banyak operasi low level image processing yang hanya memakai data lokal dengan komunikasi yang sangat terbatas atau bahkan tidak ada sama sekali antara bagian-bagian yang terlibat.
3.7
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Beberapa operasi geometri
ShiftingObyek shift (bergeser) sebesar x pada dimensi-x dan y pada dimensi-y:
x = x + xy = y + y
dengan x dan y merupakan posisi awal dan x dan y merupakan koordinat yang baru.
Scaling
Obyek di-skala sebesar faktor Sx pada arah-x dan Sy pada arah-y:
x = xSx
y = ySy
3.8
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Rotasi
Obyek dirotasi sebesar sudut q dari titik awal sistem koordinat:
x = x cos + y siny = -x sin + y cos
3.8
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Partisi menjadi bagian-bagian (region) untuk proses individu
Square region untuk setiap proses
3.9
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Mandelbrot SetSatu set titik pada bidang kompleks yang quasi-stable (akan naik dan turun, tetapi tidak melampaui satu batas tertentu) ketika dihitung dengan meng-iterasi fungsi
dengan zk +1 adalah iterasi ke-(k + 1) dari bilangan kompleks z = a + bi dan c adalah bilangan kompleks yang memberikan posisi titik di bidang kompleks. Nilai awal z adalah nol.
Iterasi berlanjut sampai nilai z lebih besar dari 2 atau jumlah iterasi mencapai batar arbitrary. Besar z adalah panjang vektor yang dinyatakan dengan
3.10
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Rutin sekuensial untuk menghitung nilai satu titik yang merupakan jumlah iterasi
structure complex {float real;float imag;};int cal_pixel(complex c){int count, max;complex z;float temp, lengthsq;max = 256;z.real = 0; z.imag = 0;count = 0; /* jumlah iterasi */do {temp = z.real * z.real - z.imag * z.imag + c.real;z.imag = 2 * z.real * z.imag + c.imag;z.real = temp;lengthsq = z.real * z.real + z.imag * z.imag;count++;} while ((lengthsq < 4.0) && (count < max));return count;}
3.11
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Mandelbrot set
3.12
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Memparalelkan Komputasi Mandelbrot Set
Static Task Assignment
Bagi region menjadi sejumlah tetap bagian, masing-masing dihitung oleh prosesor yang terpisah.
Tidak begitu berhasil karena region yang berbeda membutuhkan jumlah dan waktu iterasi yang berbeda.
Dynamic Task Assignment
Prosesor meminta region setelah menghitung regionsebelumnya.
3.13
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Dynamic Task AssignmentWork Pool/Processor Farms
3.14
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Metode Monte Carlo
Another embarrassingly parallel computation.
Metode Monte Carlo menggunakan pemilihan random.
3.15
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Lingkaran dibentuk dengan persegi 2 x 2. Rasio luas lingkaran terhadap persegi dinyatakan dengan:
Titik-titik di dalam persegi dipilih secara acak. Catat berapa titik ada dalam lingkaran.
Bagian titik di dalam lingkaran menjadi , jika diberikan jumlah sample yang sesuai.
3.16
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved. 3.17
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Menghitung IntegralSatu kuadran dapat dideskripsikan oleh integral
Pasangan bilangan acak, (xr,yr) dibandingkan, masing-masing antara 0 dan 1.Dihitung sebagai lingkaran jika
3.18
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
Metode Alternatif (yang lebih baik)
Gunakan nilai acak x untuk menghitung f(x) dan jumlah nilai f(x):
dengan xr merupakan nilai x yang dibangkitkan secara acak antara x1 dan x2.
Metode Monte Carlo sangat berguna jika fungsi tidak bisa diintegrasikan secara numerik (mungkin memiliki variabel yang banyak)
3.19
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
ContohMenghitung integral
Kode sekuensial
sum = 0;for (i = 0; i < N; i++) { /* N random samples */xr = rand_v(x1, x2); /* generate next random value */sum = sum + xr * xr - 3 * xr; /* compute f(xr) */}area = (sum / N) * (x2 - x1);
Rutin randv(x1, x2) mengembalikan bilangan pseudorandom antara x1 dan x2.
3.20
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen, @ 2004 Pearson Education Inc. All rights reserved.
For parallelizing Monte Carlo code, must address best way togenerate random numbers in parallel - see textbook
3.21