2.1.1 ketergantugan terhadap data dan...

17

Click here to load reader

Upload: vuxuyen

Post on 06-Feb-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

Chapter 2

Sifat-sifat Program dan Jaringan (Program and Network Properties)

2.1 Kondisi-kondisi Paralelisme (Conditions of Parallelism)

2.1.1 Ketergantugan terhadap Data dan Resource

• (H.T. Kung, 1999) menyampaikan tiga kunci syarat untuk bergerak dari

pengolahan paralel ke aliran utama komputasi yakni :

o Model-model komputasi (computation models).

o Komunikasi di dalam prosesor (interprocessor communication).

o Integrasi sistem (system integration).

• Ada tawar menawar dengan faktor kompleksitas waktu dan ruang,

performance dan biaya.

• Kemampuan untuk mengeksekusi beberapa segmen program secara paralel,

sangat tergantung pada kemandirian antar segmen. Salah satu cara untuk

menunjukkan kemungkinan paralelisme dan vektorisasi segmen program, digunakan

dependence graph (node → instruksi (program statement); edge → relasi antar

statement).

• Ukuran kemandirian (independence) dapat ditinjau dari tiga aspek yakni :

o Data dependence menunjukkan keterkaitan urutan eksekusi di antara

statement yang dibagi menjadi lima tipe yaitu :

Flow dependece ( )1 2S S→

Antidependence ( )1 2S S→

Page 2: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

2

Output dependence ( )1 2S S→

I/O dependence.

Unknown dependence.

o Contoh :

Potongan kode dengan 4 instruksi sebagai berikut :

S1: Load R1, A R1 ← Memory(A) S2: Add R2, R1 R2 ← (R2) + (R1) S3: Move R1, R3 R1 ← (R3) S4: Store B, R1 Memory(B) ← (R1)

Potongan kode dengan operasi I/O sebagai berikut :

S1: Read (4), A(I) Baca array A dari tape unit 4 S2: Rewind (4) Gulung tape unit 4 S3: Write (4), B(I) Tulis array B pada tape unit 4 S4: Rewind (4) Gulung tape unit 4

Page 3: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

3

o Control dependence menunjukkan situasi dimana urutan eksekusi

statement tidak dapat ditentukan sebelum dieksekusi (run time). Aspek ini

sering menghambat upaya untuk mengeksploitasi paralelisme. Contoh : IF

statement.

Do 20 I = 1, N A(I) = C(I) IF(A(I).LT.0) A(I) = 1 20 Continue

Do 10 I = 1, N IF(A(I-1).EQ.0) A(I) = 0 10 Continue

control-independent loop control-dependent loop

o Resource dependence adalah konflik yang terjadi saat menggunakan

resource bersama pada eksekusi paralel. Jenis konflik ditentukan dari

komponen resource yang digunakan bersama. Contoh : ALU dependence atau

storage dependence.

• Bernstein’s condition adalah kondisi yang digunakan sebagai dasar untuk

mendeteksi bahwa dua proses ( )1 2,P P dapat dikerjakan secara paralel. Syaratnya

adalah :

1 2

2 1

1 2

I OI OO O

∩ = ∅

∩ = ∅

∩ = ∅

Dimana iI adalah input set atau ( )iDom P dan iO adalah output set atau ( )iRan P .

Kesimpulan : dua proses dapat dieksekusi secara paralel bila mempunyai sifat :

o Flow-independent.

o Antiindependent.

o Output-independent.

Page 4: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

4

Atau secara umum, 1 2 3 ............. kP P P PP P P P jika dan hanya jika i jP PP dimana

i j≠ .

o Contoh : Periksa paralelisme 5 instruksi sebagai berikut :

P1: C = D x E 1 5P PP P2: M = G + C 2 5P PP , 2 3P PP P3: A = B + C 3 5P PP P4: C = L + M 4 5P PP P5: F = G : E

Dari deteksi di atas hanya terdapat 5 pasang proses yang dapat dieksekusi

secara paralel bila tidak ada konflik pada resource, namun secara kolektif

hanya 2 3 5P P PP P yang dapat dieksekusi secara bersamaan.

Page 5: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

5

x

+1 +2 :

+3

P1

P2 P3

P4

P5

D E

C CG B

ML

C A

G E

F

sequential execution parallel execution (2 adders available)

o Hukum Komutatif berlaku dimana i j j iP P P P=P P .

o Hukum Asosiatif berlaku dimana ( ) ( )i j k i j kP P P P P P=P P P P

o Hukum Transitif dan Ekivalen tidak berlaku.

Page 6: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

6

• Yang harus diperhatikan dalam paralelisme eksekusi proses adalah :

o Jumlah proses n jangan melampaui Bernstein’s condition yang dihitung

dengan rumus ( )3 1

2n n −

.

o Hindari data dependence, control dependence dan resource dependence.

2.1.2 Paralelisme Perangkat Keras dan Perangkat Lunak (Hardware and

Software Parallelism)

• Paralelisme memerlukan dukungan perangkat keras dan perangkat lunak

istimewa. Paralelisme perangkat keras ditentukan oleh arsitektur mesin dan

penggandaan perangkat keras. Salah satu karakteristik paralelisme ditinjau dari

jumlah instruksi yang dieksekusi dalam satu siklus mesin, atau k issue− processor.

Konvensional prosesor umumnya adalah one issue− machine. Secara teoritis,

sistem multiprosesor dengan n k issue− processor akan mampu menangani

maksimum nk thread secara bersamaan.

• Paralelisme perangkat lunak ditentukan oleh ketergantungan program terhadap

data dan kontrol. Paralelisme ini adalah fungsi dari algoritma, gaya pemrograman

dan optimisasi compiler. Yang paling penting pada paralelisme perangkat lunak

adalah :

o Control parallelism, dua atau lebih operasi dapat dilakukan simultan.

o Data parallelism, operasi yang sama terhadap banyak data oleh banyak

prosesor secara simultan dan memberikan potensi tertinggi untuk concurrency.

• Penyatuan dua paradigma paralelisme yang berbeda akan memberikan

kemungkinan ketidak cocokan (mismatch) dalam eksekusi proses. Untuk mengatasi

Page 7: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

7

masalah mismatch antara hardware dan software parallelism ada dua pendekatan,

yakni :

o Membangun dukungan kompilasi.

o Merancang ulang perangkat keras (hardware redesign).

Eksekusi program dgn 8 instruksi; 4 instruksi operasi Load dan 4 instruksi operasi Aritmatika sebagai berikut :

Dimana : Li adalah operasi Load xi adalah operasi Multiply

software parallelism

hardware parallelism

Solusi :

Page 8: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

8

L1

L2

x1

S1

L5

+

L3

L4

x2

S2

L6

-

BA

Cycle 1

Cycle 2

Cycle 3

Cycle 4

Cycle 5

Cycle 6

InstruksiTambahan

Dimana : L/S adalah operasi Load/Store xi adalah operasi Multiply +/- adalah operasi add/sub Jika dua prosesor tersedia di dalam satu platform (dual-processor) dan shared-memory untuk menyimpan sementara hasil eksekusi sebelumnya

Atau dengan kata lain, perancangan compiler harus paralel dengan perancangan

perangkat keras atau bersamaan (at the same time).

Page 9: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

9

Exercises

2.1 Definisi istilah-istilah yang berkaitan dengan Paralelisme dan Ketergantungan

(dependence) sebagai berikut :

a. Computational granularity → Ukuran banyaknya komputasi yang

terlibat di dalam satu proses perangkat lunak (software).

b. Communication latency → Ukuran waktu “biaya” komunikasi yang

timbul di antara subsistem mesin.

c. Flow dependence → Suatu kondisi dimana terjadi ketergantungan suatu

proses terhadap proses sebelumnya dan terdapat sedikitnya satu input diterima

oleh proses tersebut. Notasi ( )1 2S S→

d. Antidependence → Suatu kondisi dimana output suatu proses yang

mengikuti proses sebelumnya “bertindihan” dengan input proses sebelumnya

tersebut. Notasi ( )1 2S S→

e. Output dependence → Suatu kondisi dimana dua instruksi

memproduksi variabel output yang sama melalui operasi “write”. Notasi

( )1 2S S→

f. I/O dependence → Suatu kondisi dimana file yang sama direferensikan

oleh statement input dan output.

g. Control dependence → Suatu kondisi dimana eksekusi suatu statement

tergantung kepada intruksi yang diberikan dan hanya dapat diketahui setelah

eksekusi dilaksanakan (run time).

h. Resource dependence → Suatu kondisi dimana terjadi konflik pada

penggunaan resource bersama pada situasi eksekusi paralel.

i. Berstein’s condition → Suatu persamaan (aturan) yang digunakan untuk

mendeteksi paralelisme dua atau lebih intruksi di dalam suatu program dan

dinyatakan dengan rumus :

Page 10: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

10

1 2

2 1

1 2

I OI OO O

∩ = ∅

∩ = ∅

∩ = ∅

j. Degree of parallelism → Suatu ukuran yang menunjukkan jumlah

proses (himpunan proses) yang dapat dieksekusi secara paralel yang

dinyatakan dengan rumus 1 2 3 ............. kP P P PP P P P jika dan hanya jika

i jP PP dimana i j≠ .

2.4 Lakukan analisa data dependence pada fragmen kode FORTRAN berikut ini

dilengkapi dengan dependence graph-nya.

a. Perhatikan empat instruksi

S1: A = B + D

S2: C = A x 3 S3: A = A + C S4: E = A / 2

b. Perhatikan empat instruksi

S1: X = SIN(Y) S1

S2 S4

S3

S2: Z = X + W S3: Y = -2.5 x W S4: X = COS(Z)

Page 11: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

11

c. Tentukan data dependence pada iterasi Do-loop berikut :

Do 10 I = 1, N S1: A(I+1) = B(I-1) + C(I) S2: B(I) = A(I) x K S3: C(I) = B(I) - 1 Continue

2.5 Analisa data dependence di antara statement program di bawah ini. Gambar

dependence graph-nya dan periksa resource dependence-nya bila hanya ada

satu copy setiap unit fungsional di dala CPU.

a. Perhatikan lima kode berikut ini :

S1: Load R1, 1024 R1 ← 1024 S2: Load R2, M(10) R2 ← Memory(10) S3: Add R1, R2 R1 ← (R1) + (R2) S4: Store M(1024), R1 Memory(1024) ← (R1) S5: Store M((R2)), 1024 Memory(64) ← 1024

Ada kemungkinan terjadi storage-dependence karena S4 dan S5

menggunakan memory yang sama untuk memproses data.

Page 12: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

12

b. Perhatikan lima kode berikut ini :

S1: Load R1, M(100) R1 ← Memory(100) S2: Move R2, R1 R2 ← (R1) S3: Inc R1 R1 ← (R1) + 1 S4: Add R1, R2 R1 ← (R1) + (R2) S5: Store M(100), R1 Memory(100) ← (R1)

S1

S2 S5

S3S4

Pada fragmen kode ini tidak ada potensi storage unit-dependence

maupun ALU-dependence atau dengan kata lain tidak ada resource-

dependence.

2.6 Susun ulang lima statement proses yang terpisah di bawah ini menggunakan

Bernstein’s condition untuk mendapatkan paralelisme maksimum di antara proses.

Asli Susun ulang S1: A = B + C

S1: IF(S.GT.1000) C = C x 2

S2: C = B x D S2: C = B x D S3: S = 0 S3: A = B + C S4: Do I = A, 100

S = S + X(I) End Do

S4: Do I = A, 100 S = S + X(I) End Do

S5: IF(S.GT.1000) C = C x 2

S5: S = 0

Page 13: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

13

Indentifikasi Input set dan Output set setiap proses asli

Proses iI iO S1 B, C A S2 B, D C S3 0 S S4 A, S, X(I) I, SS5 S, C C

S1 P S2 karena 1 2I O∩ ≠ ∅ ;

S1 P S4 karena 4 1I O∩ ≠ ∅ ;

S1 P S5 karena 1 5I O∩ ≠ ∅ ;

S2 P S5 karena 2 5 5 2;O O I O∩ ≠ ∅ ∩ ;

S3 P S4 karena 3 4 4 3;O O I O∩ ≠ ∅ ∩ ;

S3 P S5 karena 5 3I O∩ ≠ ∅

S4 P S5 karena 5 4I O∩ ≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah :

S1 || S3 karena 1 3 3 1 1 3; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

S2 || S3 karena 2 3 3 2 2 3; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

S2 || S4 karena 2 4 4 2 2 4; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

Indentifikasi Input set dan Output set setiap proses susun ulang.

Proses iI iO S1 S, C C S2 B, D C S3 B, C A S4 A, S, X(I) I, S S5 0 S

S1 P S2 karena 1 2 1 2;I O O O∩ ≠ ∅ ∩ ≠ ∅ ;

Page 14: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

14

S1 P S4 karena 1 4I O∩ ≠ ∅ ; S1 P S5 karena 1 5I O∩ ≠ ∅

S2 P S3 karena 3 2I O∩ ≠ ∅ ;

S3 P S4 karena 4 3I O∩ ≠ ∅

S4 P S5 karena 4 5 4 5;I O O O∩ ≠ ∅ ∩ ≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah :

S1 || S3 karena 1 3 3 1 1 3; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

S2 || S4 karena 2 4 4 2 2 4; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

S2 || S5 karena 2 5 5 2 2 5; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

S3 || S5 karena 3 5 5 3 3 5; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅

Setelah proses disusun ulang dapat diperoleh satu pasang lagi proses yang

dapat di paralel sehingga total diperoleh maksimum 4 pasang proses yang

dapat diproses secara paralel.

2.7 Gunakan Bernstein’s condition untuk mendeteksi paralelisme maksimum tujuh

statement program berikut ini.

S1: A = B + C S2: C = D + E S3: F = G + E S4: C = A + F S5: M = G + C S6: A = L + C S7: A = E + A

Indentifikasi Input set dan Output set setiap proses.

Proses iI iO S1 B, C A S2 D, E C S3 G, E F S4 A, F C S5 G, C M

Page 15: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

15

S6 L, C A S7 E, A A

S1 PS2 karena 1 2I O∩ ≠ ∅

S1 PS4 karena 1 4I O∩ ≠ ∅

S1 PS6 karena 1 6O O∩ ≠ ∅

S1 PS7 karena 1 7O O∩ ≠ ∅

S2 PS4 karena 2 4O O∩ ≠ ∅

S2 PS5 karena 5 2I O∩ ≠ ∅

S2 PS6 karena 6 2I O∩ ≠ ∅

S4 P S3 karena 4 3I O∩ ≠ ∅

S4 P S5 karena 5 4I O∩ ≠ ∅

S4 P S6 karena 4 6I O∩ ≠ ∅

S4 P S7 karena 4 7O O∩ ≠ ∅

S6 P S7 karena 6 7O O∩ ≠∅ dan

7 6I O∩ ≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah :

S1 || S3 karena 1 3 3 1 1 3; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅ dan S1 || S5

S2 || S3 karena 2 4 4 2 2 4; ;I O I O O O∩ = ∅ ∩ = ∅ ∩ = ∅ dan S2 || S7

S3 || S5, S3 || S6 dan S3 || S7

S5 || S6 dan S5 || S7

Secara kolektif proses yang dapat dieksekusi secara paralel adalah : S1 || S3 ||

S5

Program disusun ulang sebagai berikut :

Cobegin S1: A = B + C S3: F = G + E S5: M = G + C Coend Cobegin S2: C = D + E S7: A = A + E

Page 16: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

16

Coend S4: C = A + F S6: A = L + C

Data dependence graph untuk proses-proses di atas adalah sebagai berikut :

S1

S3

S5

S2

S7 S6

S4

Sedang untuk resource dependence graph-nya adalah :

Page 17: 2.1.1 Ketergantugan terhadap Data dan Resourcearwins2.tripod.com/ec6020_files/publikasi/ch2-1-conpar.pdf · Arwin – 23206008@2006 3 o Control dependence menunjukkan situasi dimana

Arwin – 23206008@2006

17

+1

+2

+3

+4

+5

C

B

A

S1

S2E

C

S3

E

F

C

E

G

S4

S5

G

L

M

time

+6 S6

A

+7 S7

A

D

sequential execution parallel execution

Dengan eksekusi paralel dapat dihemat 3 (tiga) siklus mesin.