Matakuliah Tahun Versi : H0352/Pemrosesan Paralel : 2005 : versi/01 Pokok Bahasan 6 Pemrosesan Paralel 1 Learning Outcomes Pada akhir pertemuan ini diharapkan mahasiswa akan dapat: • menunjukkan pengaruh keseimbangan beban kerja tiap node prosesor terhadap unjuk kerja pemrosesan paralel menyeluruh • menerapkan konsep algoritma pemrosesan paralel sederhana ke bahasa pemrograman paralel C*. 2 Keseimbangan beban kerja P1 P2 P3 P4 IDLE Keseimbangan beban bertujuan agar distribusi beban pekerjaan pada tiap prosesor merata, untuk menekan rendah idle time tiap prosesor. Pada dasarnya keseimbangan beban dapat dilakukan secara statis dimana tiap prosesor telah dijadwal dari awal proses untuk melakukan pekerjaan tetap dan tertentu. Cara dinamis dimana pekerjaan yang harus dikerjakan prosesor tergantung kondisi ketika proses berjalan. 3 Pembebanan dinamis Proses pemetaan data ke prosesor (pertemuan 9) dengan asumsi data tersebar secara merata, sehingga tiap prosesor akan mendapat pekerjaan yang seimbang. Namun kenyataannya data tidak selalu tersebar merata, oleh karena itu perlu dilakukan perubahan pemetaan untuk mendapatkan pembebanan data yang merata selama dalam proses. Menurut Quinn, ada tiga kelompok algoritma untuk tujuan Pembebanan dinamis ini. • Centralized Load Balancing Algorithm. • Fully Distributed Load Balancing Algorithm. • Semi Distributed Load Balancing Algorithm. 4 Pembebanan dinamis • Centralized Load Balancing Algorithm. Relokasi pekerjaan dilakukan menggunakan algoritma sentral. Scalability cara ini sulit diperoleh mengingat informasi untuk menentukan balancing tersebut meningkat dengan meningkatnya jumlah prosesor. • Fully Distributed Load Balancing Algorithm. Relokasi pekerjaan diserahkan pada masing-masing prosesor dengan menggunakan informasi lokal yang dimiliki tiap prosesor untuk mentransfer pekerjaan antar tetangga prosesor masingmasing. Namun karena lokal informasi yang digunakan tiap prosesor, maka keseimbangan kerja secara menyeluruh bisa tidak tercapai. • Semi Distributed Load Balancing Algorithm. Seluruh pekerjaan dibagi menjadi beberapa daerah ruang kerja. Di dalam ruang kerja tersebut dilakukan secara centralized, dan hubungan antar daerah ruang kerja berjalan secarara fully distributed. 5 Pembebanan Statis Pembebanan statis dilaksanakan dengan pemberian jadwal yang bersifat statis. Menurut Quinn, ada tiga penyebab penjadwalan statis ini masih banyak digunakan. • Bisa terjadi mempunyai kecepatan penyelesaian lebih singkat. • Dapat diatur satu proses dilaksanakan oleh satu prosesor. • Percepatan (speedup) dari sistem paralel dapat diprediksi dengan baik. 6 Pembebanan Statis Deterministic Models T1 2 Task Execution time T4 2 T2 3 T3 1 T5 3 T6 3 prosesor T7 1 T4 T3 T1 1 T6 T2 2 3 Gantt chart 4 waktu T5 5 6 T7 7 8 9 7 Deadlock Deadlock terjadi jika sejumlah proses/processor saling memblok satu sama lainnya. Contoh: P1: Process 1 P2: Process 2 P(TE) P(PR) <proses> V(PR) V(TE) P(PR) P(TE) <proses> V(TE) V(PR) TE: terminal PR: printer Ketika berturut-turut P1 dan P2 masing-masing telah mendapatkan TE dan PR, maka selanjutnya P1 dan P2 berturut-turut ingin mendapatkan PR dan TE. Kondisi ini membuat P1 dan P2 akan saling menunggu untuk waktu yang tidak ada akhirnya deadlock. 8 Deadlock Menurut (Coffman, Elphick, Skoshani, 1971), dead-lock akan dapat terjadi jika ditemui kondisi sbb: 1. Mutual exclusion. Larangan bagi lebih dari satu prosesor menggunakan resource yang sama pada waktu yang sama. 2. Incremental request. permintaan untuk menggunakan suatu resource pada proses meningkat. 3. No preemption. Proses yang sedang berjalan tidak bisa di hentikan (diputus) 4. Circular wait. Terjadi saling menunggu antar proses. 9 Sinkronisasi mulai Menurut Quinn, ada dua penyelesaian dalam sinkronisasi: komunikasi P1 P2 P3 P4 • komputasi komunikasi sinkronisasi • Synchronization for precedence. Suatu tindakan tidak akan dimulai sampai kegiatan lainnya yang berkaitan selesai dilaksanakan Synchronization for mutual exclusion. Hanya ada satu kegiatan yang dapat dikerjakan ketika memasuki saat kritis, dimana data bersama harus diproses. 10 Sinkronisasi Contoh: Menghitung variance oleh 4 prosesor. (ri m) 2 v n 1 n n dan ri m 1 n Memory bersama Contoh: Menghitung variance, 4 2 1 3 3 2 2 4 5 1 4 5 oleh 4 prosesor. sum mean sum of squares variance 4 prosesor Process 1 Temporary Process 3 Temporary Process 2 Temporary Process 4 Temporary 11 Sinkronisasi Memory bersama 4 a 2 1 3 3 2 36 4 b c 2 1 3 36 3 2 1 3 2 1 4 5 36 2 1 3 5 1 4 5 0 3 2 2 4 5 1 4 5 sum of squares variance 3 2 4 sum of squares variance mean sum d 3 mean 4 5 0 sum 4 4 sum of squares variance mean sum 2 4 prosesor 22 3 sum mean 36 3 2 2 4 5 1 4 5 sum of squares variance 22 1.83 Process 1 Temporary 7 Process 3 Temporary 11 Process 2 Temporary 8 Process 4 Temporary 10 Process 1 Temporary 7 Process 3 Temporary 11 Process 2 Temporary 8 Process 4 Temporary 10 Process 1 Temporary 6 Process 3 Temporary 6 Process 2 Temporary 1 Process 4 Temporary 9 Process 1 Temporary 6 Process 3 Temporary 6 1 Process 4 Temporary 9 Process 2 Temporary 12 Sinkronisasi value 4 2 1 value 3 3 2 value 4 2 1 value 3 3 2 7 sum 1 mean sum 2 variance 8 sum 1 mean sum 2 variance sum 1 36 3 mean sum 2 variance sum 1 36 3 mean sum 2 variance value 1 4 5 value 2 4 5 sum 1 11 mean sum 2 variance sum 1 10 mean sum 2 variance sum 1 36 3 mean sum 2 variance sum 1 36 3 mean sum 2 variance value 4 2 1 value 3 3 2 value 4 2 1 value 3 3 2 sum 1 36 3 mean 6 sum 2 variance sum 1 36 3 mean 1 sum 2 variance sum 1 36 3 mean 22 sum 2 1.83 variance sum 1 36 3 mean 22 sum 2 1.83 variance value 2 4 5 value 2 4 5 sum 1 36 3 mean 6 sum 2 variance a c value 1 4 5 value 2 4 5 sum 1 36 3 mean 9 sum 2 variance sum 1 36 3 mean 2 sum 2 1.83 variance b d value 1 4 5 value 1 4 5 sum 1 36 3 mean 22 sum 2 1.83 variance 13 Bahasa Pemrograman C* Model Bahasa Pemrograman C* PE PE ALU memory ALU memory Routing network P1 P2 P3 P4 Memory Scalar Arithmetic Logic Unit Pn P Control 14 Bahasa Pemrograman C* 128 a,b,c a,b,c a,b,c a,b,c a,b,c real : foo a, b, c ; real p,q,r ; a,b,c a,b,c a,b,c a,b,c a,b,c a,b,c a,b,c a,b,c a,b,c a,b,c with (foo) {a=b+c; .... . pcoord(0); pcoord(1); } pcoord(a) = b a: - 0 baris - 1 kolom 128 shape [128][128] foo ; pcoord(0) = 0 pcoord(1) = 3 p,q,r pcoord(0) = 127 pcoord(1) = 127 b: hasil sesuai koordinat prosesor If ((pcoord(0)==1)&&(pcoord(1)==3)) { c = 15; } 15 Bahasa Pemrograman C* Menghitung nilai dengan bahasa pemrograman C*. y y 1 4 dx 2 (1 x) 0 4 (1 x) 2 x 0 1 2 16 Bahasa Pemrograman C* Menghitung nilai dengan bahasa pemrograman C*. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. #define INTERVALS (8192*16) shape (INTERVALS) span ; main() { double sum ; /* sum of areas */ double width = 1.0/INTERVALS ; /* width of rectangle */ with (span) { double:span x ; /* mid point of rectangle on x axis*/ x = (pcoord(0) + 0.5) width ; sum = (+=(4.0/1(1.0+x*x))) ; } sum *= width ; printf (“Estimation of pi is % 14.12f\n”, sum) ; } 17 RESUME Telah dibahas: Pengertian pembebanan kerja, kondisi deadlock dan sinkronisasi pada pemrosesan paralel. Contoh-contoh pemrograman paralel menggunankan bahas C*. 18
© Copyright 2024 Paperzz