• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

Membagikan "Chapter 2 Sifat-sifat Program dan Jaringan (Program and Network Properties)"

Copied!
17
0
0

Teks penuh

(1)

Arwin – 23206008@2006 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

(

S1S2

)

ƒ Antidependence

(

S1S2

)

(2)

Arwin – 23206008@2006

ƒ Output dependence

(

S1S2

)

ƒ 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

(3)

Arwin – 23206008@2006

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

(

P P1, 2

)

dapat dikerjakan secara paralel. Syaratnya adalah : 1 2 2 1 1 2 I O I O O O ∩ = ∅ ∩ = ∅ ∩ = ∅

Dimana Ii adalah input set atau Dom P

( )

i dan Oi adalah output set atau Ran P

( )

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

o Flow-independent.

o Antiindependent.

(4)

Arwin – 23206008@2006 Atau secara umum, P1PP2PP3P...PPk jika dan hanya jika PiPPj dimana

ij.

o Contoh : Periksa paralelisme 5 instruksi sebagai berikut :

P1: C = D x E P1PP5

P2: M = G + C P2PP5, P2PP3

P3: A = B + C P3PP5

P4: C = L + M P4PP5

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 P2PP3PP5 yang dapat dieksekusi secara bersamaan.

(5)

Arwin – 23206008@2006 x +1 +2 : +3 P1 P2 P3 P4 P5 D E C C G B M L C A G E F

sequential execution parallel execution (2 adders available)

o Hukum Komutatif berlaku dimana Pi PPj =PjPPi.

o Hukum Asosiatif berlaku dimana

(

Pi PPj

)

PPk = Pi P

(

PjPPk

)

(6)

Arwin – 23206008@2006 • Yang harus diperhatikan dalam paralelisme eksekusi proses adalah :

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

dengan rumus 3

(

1

)

2 n 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 kissueprocessor. Konvensional prosesor umumnya adalah oneissue machine. Secara teoritis, sistem multiprosesor dengan n kissue 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

(7)

Arwin – 23206008@2006 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

(8)

Arwin – 23206008@2006 L1 L2 x1 S1 L5 + L3 L4 x2 S2 L6 -B A Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Instruksi Tambahan 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).

(9)

Arwin – 23206008@2006 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

(

S1S2

)

d. Antidependence → Suatu kondisi dimana output suatu proses yang

mengikuti proses sebelumnya “bertindihan” dengan input proses sebelumnya tersebut. Notasi

(

S1S2

)

e. Output dependence → Suatu kondisi dimana dua instruksi

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

(

S1→S2

)

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 :

(10)

Arwin – 23206008@2006 1 2 2 1 1 2 I O I O O O ∩ = ∅ ∩ = ∅ ∩ = ∅

j. Degree of parallelism → Suatu ukuran yang menunjukkan jumlah

proses (himpunan proses) yang dapat dieksekusi secara paralel yang dinyatakan dengan rumus P1PP2PP3P...PPk jika dan hanya jika

i j

P PP dimana ij.

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)

(11)

Arwin – 23206008@2006 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.

(12)

Arwin – 23206008@2006 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 S3 S4

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

(13)

Arwin – 23206008@2006 Indentifikasi Input set dan Output set setiap proses asli

Proses Ii Oi S1 B, C A S2 B, D C S3 0 S S4 A, S, X(I) I, S S5 S, C C S1 P S2 karena I1O2 ≠ ∅; S1 P S4 karena I4O1≠ ∅; S1 P S5 karena I1O5≠ ∅; S2 P S5 karena O2O5 ≠ ∅; I5O2; S3 P S4 karena O3O4 ≠ ∅; I4O3; S3 P S5 karena I5O3≠ ∅ S4 P S5 karena I5O4≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah : S1 || S3 karena I1O3= ∅; I3O1= ∅; O1O3 = ∅ S2 || S3 karena I2O3= ∅; I3O2 = ∅; O2O3 = ∅ S2 || S4 karena I2O4= ∅; I4O2 = ∅; O2O4= ∅

Indentifikasi Input set dan Output set setiap proses susun ulang.

Proses Ii Oi 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 I1O2 ≠ ∅; O1O2≠ ∅;

(14)

Arwin – 23206008@2006 S1 P S4 karena I1O4≠ ∅; S1 P S5 karena I1O5 ≠ ∅

S2 P S3 karena I3O2 ≠ ∅; S3 P S4 karena I4O3≠ ∅

S4 P S5 karena I4O5≠ ∅; O4O5 ≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah : S1 || S3 karena I1O3= ∅; I3O1= ∅; O1O3 = ∅ S2 || S4 karena I2O4= ∅; I4O2 = ∅; O2O4= ∅ S2 || S5 karena I2O5= ∅; I5O2 = ∅; O2O5= ∅ S3 || S5 karena I3O5= ∅; I5O3 = ∅; O3O5= ∅

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 Oi S1 B, C A S2 D, E C S3 G, E F S4 A, F C S5 G, C M

(15)

Arwin – 23206008@2006 S6 L, C A S7 E, A A S1 P S2 karena I1O2 ≠ ∅ S1 P S4 karena I1O4≠ ∅ S1 P S6 karena O1O6 ≠ ∅ S1 P S7 karena O1O7 ≠ ∅ S2 P S4 karena O2O4≠ ∅ S2 P S5 karena I5O2≠ ∅ S2 P S6 karena I6O2≠ ∅ S4 P S3 karena I4O3≠ ∅ S4 P S5 karena I5O4≠ ∅ S4 P S6 karena I4O6≠ ∅ S4 P S7 karena O4O7 ≠ ∅ S6 P S7 karena O6O7≠ ∅ dan 7 6 IO ≠ ∅

Maka dengan demikian proses yang dapat di paralel adalah :

S1 || S3 karena I1O3= ∅; I3O1= ∅; O1O3 = ∅ dan S1 || S5 S2 || S3 karena I2O4= ∅; I4O2 = ∅; O2O4= ∅ 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

(16)

Arwin – 23206008@2006 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

(17)

Arwin – 23206008@2006 +1 +2 +3 +4 +5 C B A S1 S2 E C S3 E F C E G S4 S5 G L M time +6 S6 A +7 S7 A D

sequential execution parallel execution

Referensi

Dokumen terkait

Kejadian malaria di Kabupaten Bintan terlihat hampir setiap tahun ada walaupun pada bulan-bulan tertentu cenderung meningkat, dengan turun naiknya curah hujan akan

Proyek yang dikerjakan sesuai dengan tujuan proyek dan dapat diselesaikan tepat waktu membutuhkan manajemen proyek yang baik sehingga keterlambatan dan penambahan

Barang milik daerah jenisnya beragam, ada yan bernilai strategis dan ada juga yang bernilai administratif. Perlunya pengendalian dari ligkungan adalah jangan sampai barang milik

Dalam hal ini menjadi sebuah tantangan bagi produsen dan pemasar Toyota Kijang untuk tidak hanya menjual sebuah merek, namun juga harus mampu untuk menawarkan dan menunjukkan

Pasal 34 ayat (4) UNCITRAL Model Law mengatur bahwa pengadilan ketika dimintakan untuk membatalkan suatu putusan arbitrase internasional dapat menunda proses pembatalan

Hubungan yang tidak bermakna antara status pekerjaan ibu dengan pemberian ASI eksklusif kategori dua dan kategori tiga dalam penelitian ini dikarenakan walaupun

Kemandirian belajar siswa diperlukan agar mereka mempunyai tanggung jawab dalam mengatur dan mendisiplinkan dirinya, dan untuk mengembangkan kemampuan

Dengan meningkatnya jumlah kasus-kasus penyimpangan sosial seperti maraknya seks bebas yang dilakukan oleh remaja dalam masyarakat Kota Padang yang terdata dari