download

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