1 / 22

• Embarrassingly Parallel Computations • Partitioning and Divide-and-Conquer Strategies

Teknik-teknik Paralel. • Embarrassingly Parallel Computations • Partitioning and Divide-and-Conquer Strategies • Pipelined Computations • Synchronous Computations • Asynchronous Computations • Load Balancing and Termination Detection. 3.1. Chapter 3.

Download Presentation

• Embarrassingly Parallel Computations • Partitioning and Divide-and-Conquer Strategies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Teknik-teknik Paralel • Embarrassingly Parallel Computations • Partitioning and Divide-and-Conquer Strategies • Pipelined Computations • Synchronous Computations • Asynchronous Computations • Load Balancing and Termination Detection 3.1

  2. Chapter 3 Embarrassingly Parallel Computations 3.2

  3. Embarrassingly Parallel Computations Komputasi 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

  4. Practical embarrassingly parallel computation with static process creation and master-slave approach 3.4

  5. Practical embarrassingly parallel computation with dynamic process creation and master-slave approach 3.5

  6. Embarrassingly Parallel Computation Examples • Low level image processing • Mandelbrot set • Monte Carlo Calculations 3.6

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

  8. Beberapa operasi geometri Shifting Obyek shift (bergeser) sebesar x pada dimensi-x dan y pada dimensi-y: x = x + x y = y + y dengan x dan y merupakan posisi awal dan x dan y merupakan koordinat yang baru. Scaling Obyek di-skala sebesar faktor Sxpada arah-x dan Sypada arah-y: x = xSx y = ySy 3.8

  9. Rotasi Obyek dirotasi sebesar sudut q dari titik awal sistem koordinat: x = x cos + y sin y = -x sin + y cos 3.8

  10. Partisi menjadi bagian-bagian (region) untuk proses individu Square region untuk setiap proses 3.9

  11. Mandelbrot Set Satu 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

  12. 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

  13. Mandelbrot set 3.12

  14. 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 region sebelumnya. 3.13

  15. Dynamic Task Assignment Work Pool/Processor Farms 3.14

  16. Metode Monte Carlo Another embarrassingly parallel computation. Metode Monte Carlo menggunakan pemilihan random. 3.15

  17. 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

  18. 3.17

  19. Menghitung Integral Satu kuadran dapat dideskripsikan oleh integral Pasangan bilangan acak, (xr,yr) dibandingkan, masing-masing antara 0 dan 1. Dihitung sebagai lingkaran jika 3.18

  20. 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

  21. Contoh Menghitung 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

  22. For parallelizing Monte Carlo code, must address best way to generate random numbers in parallel - see textbook 3.21

More Related