Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

ARSITEKTUR PARALEL lts.

Presentasi serupa


Presentasi berjudul: "ARSITEKTUR PARALEL lts."— Transcript presentasi:

1 ARSITEKTUR PARALEL lts

2 Serial Vs. Paralel COUNTER 2 COUNTER COUNTER 1 Q Please lts

3 Sistem Komputer dengan Arsitektur Parallel
Adalah sistem komputasi yang elemen elemen pemrosesnya bekerjasama mengerjakan sub- komputasi secara serentak (paralel) Mengapa dipilih arsitektur paralel ? Tuntutan aplikasi , skala komputasi yang makin besar dan kompleks perlu peningkatan kecepatan. Trend Teknologi memungkinkan implementasi arsitektur paralel secara ekonomis Antisipasi terhadap mandegnya peningkatan kecepatan melalui pendekatan teknologis. lts

4 Level Paralel * / Large grain (task level) level Program Medium grain
(process level) level proses, fungsi, thread Fine grain (inter instruction level) level Instruksi Very fine grain (intra instruction level) level Operasi2 dalam Instruksi Task i Task j Task p func1 ( ) { .... } func2 ( ) { .... } funcM ( ) { .... } c(i,j) =.. c(k,l) =.. c(m,n) =.. level OS/ kompiler + * / level mesin + + + lts

5 Large grain (task level)
Beberapa Program dieksekusi secara serentak (paralel) Medium grain (control level) Beberapa Fungsi/Proses/Thread dieksekusi secara paralel Fine grain (data level) Beberapa Instruksi (assembly) dieksekusi secara paralel Very fine grain (instruction level) Beberapa Operasi dalam Instruksi dieksekusi secara (paralel) Task i-1 Task i Task i +1 func1 ( ) func2 ( ) funcM ( ) c(i,j) =.. c(k,l) =.. c(m,n) =.. * lts + /

6 t1 t2 function1( ) { } function2( ) { } Komputasi Sekuensial
Komputasi Paralel function1 ( ): function2 ( ): Elemen pemroses tunggal Waktu komputasi : (t1 + t2) function1( ) || function2 ( ) Elemen pemroses jamak Waktu komputasi : max (t1, t2) lts

7 Contoh : Fungsi Perkalian Matriks
Fungsi 1 : C = A x B A B C X = komputasi elemen2 diagonal dapat dieksekusi paralel Fungsi 2 : F = D x E D E F X = lts

8 C[i , j] = Jumlah perkalian elemen elemen baris i matriks A
Perkalian Matriks A B C = X C[i , j] = Jumlah perkalian elemen elemen baris i matriks A dengan elemen elemen kolom j pada matriks B. C[1 , 1] = A[1, 1] * B[1 , 1] + A[1 , 2] * B[2 , 1] C[2 , 2] = A[2, 1] * B[1 , 2] + A[2 , 2] * B[2 , 2] C[N ,N] = A[N,1] * B[1 , N] + A[N ,2] * B[2 , N] lts

9 sistem komputer dengan prosesor (CPU) tunggal
(a) Keparalelan pada sistem komputer berprosesor tunggal CPU Main Memory I/O IF unit ID/OF unit sistem komputer dengan prosesor (CPU) tunggal CPU dengan EX unit tunggal (single functional unit) EX unit lts

10 (multiple functional/
IF unit CPU dengan N buah unit EX (multiple functional/ execution unit) ID/OF unit EX unit-1 EX unit-2 EX unit-N lts

11 arsitektur dengan multiple
functional units FU RegFile Memory ICache HUF DCT CPU lts

12 y = x + z  instruksi skalar vect a(i) = b(i) * c(i)  instruksivektor
Main Memory P1 CPU P2 P3 t 1 2 3 4 5 6 7 8 9 Program P1 : . . . y = x + z  instruksi skalar vect a(i) = b(i) * c(i)  instruksivektor lts

13 Keparalelan Level Antar Instruksi
CPU Instruction Buffer/Queue CU jalur eksekusi instruksi skalar jalur eksekusi instruksi vektor bagian pengolah vektor bagian pengolah skalar ALU ALU1 ALU2 ALUN lts

14 Bentuk bentuk Keparalelan pada Arsitektur dengan Prosesor tunggal :
Pipelining Pada saat yang sama ada beberapa instruksi yang sedang dieksekusi (keparalelan akibat overlapping eksekusi instruksi) Aktifitas dalam CPU dan aktifitas pada I/O unit berlangsung pada saat yang sama STO I1 I2 I3 I4 I5 I6 I7 I8 I9 EX ID/OF IF t lts

15 Superscalar: PowerPC 604 and Pentium Pro
Multiple FU lts

16 TMS320C67x CPU Core Multiple FU Di utk perhitungan alamat Data Path 1
Arithmetic Logic Unit Auxiliary Logic Unit Multiplier Unit ’C67x Floating-Point CPU Core Data Path 1 D1 M1 S1 L1 A Register File Data Path 2 L2 S2 M2 D2 B Register File Instruction Decode Instruction Dispatch Program Fetch Interrupts Control Registers Control Logic Emulation Test Floating-Point Capabilities [30] Now to go into more detail about the changes between the 62x CPU and the 67x CPU. In this slide I have tried to blow up to show you where we have added floating-point capability. We've added floating-point capability to six of the eight total functional units, so the ALU, or the Arithmetic Logic Unit, the auxiliary logic unit, and the multiplier all support floating-point. The D-unit, or the address calculation unit, it doesn't care what kind of data it's looking at, so it didn't need floating-point capability. So we've only added floating-point capability to six of the eight functional units. Multiple FU lts Di utk perhitungan alamat

17 Keparalelan pada sistem komputer berprosesor banyak (multiprosesor)
ProsesorN Jaringan interkoneksi Memory I/O sistem komputer multiprosesor lts

18 Contoh : sistem komputer multiprosesor dengan
jaringan interkoneksi berupa bus Prosesor1 Prosesor2 ProsesorN Cache reg.array Cache reg.array Cache reg.array Bus P1 , { DP1 } Shared Memory P3 , { DP3 } P2 , { DP2 } lts

19 Keparalelan s/d Level Task
1b 1c 1d PU1 P1 2a 2b 2c P2 PU2 3a 3b P3 PU3 Misalkan fungsi 1a dapat dieksekusi bersamaan dengan 1b , dan fungsi 2b dapat dieksekusi bersamaan dengan 2c 1a 1c 1d PU1 P1 2a 2b 1b P2 PU2 3a 3b 2c P3 PU3 lts

20 Operating System Hardware Aplikasi 2 Aplikasi 1 Aplikasi 3
Thread (urutan) Process Operating System CPU CPU CPU CPU Hardware Thread adalah potongan program yang dapat dieksekusi bersamaan waktu dengan potongan potongan program lainnya. lts

21 Multi-Processing, Multi-Threaded
Aplikasi 1 Aplikasi 2 Aplikasi 3 CPU CPU CPU Aplikasi i CPU CPU CPU lts Untuk aplikasi yang dapat diparalelkan

22 Stanford: Hydra Design
2.Approach: including innovative ideas and constructive plans for achieving the stated objectives. Single-chip multiprocessor 4 buah prosesor Cache level1 L1 bersifat lokal Cache level2, L2 bersifat berbagi lts

23 Klasifikasi Arsitektur Komputer berdasarkan Flynn
Menurut Flynn (1972), arsitektur sebuah komputer dapat dibedakan berdasarkan banyaknya aliran instruksi dan (Instruction Stream) banyaknya aliran data (Data Stream) yang dieksekusi didalam komputer tersebut pada setiap saat. Proses Single-threaded Proses Multiplethreaded Threads of Execution lts Single instruction stream Multiple instruction stream

24 Single Instruction-stream Single Data-stream
1 aliran instruksi 1 aliran data CPU CU : Control Unit DS : Data Stream PU : Processing Unit IS : Instruction Stream MU : Memory Unit lts

25 Ij I1 I2 I3 I4 1 aliran instruksi t {D}1 {D}2 {D}3 {D}4 {D}j dari MU t
PU CU 1 aliran data ke MU lts

26 (Array atau Vector Processor)
Single Instruction-stream Multiple Data-stream IS PU ke MU dari MU 1 n 1 aliran instruksi n aliran data CU : Control Unit DSi : Data Streami PEi : Processing Elementi (= ALU) ISi : Instruction Streami MU : Memory Unit LMi : Local Memoryi lts

27 Operasi yang sama (Ij) dikerjakan secara serentak pada n set data
{D1}j diproses di PE1 t {D2}1 {D2}2 {D2}3 {D2}4 {D2}j diproses di PE2 t {Dn}1 {Dn}2 {Dn}3 {Dn}4 {Dn}j t diproses di PEn Operasi yang sama (Ij) dikerjakan secara serentak pada n set data lts

28 MU (Multiprosesor) Multiple Instruction-stream Multiple Data-stream
1 MU 1 1 n aliran instruksi n n n aliran data n CU : Control Unit DSi : Data Streami PUi : Processing Uniti (ALUi) ISi : Instruction Streami MU : Memory Unit LMi : Local Memoryi lts

29 n operasi yang berbeda dikerjakan secara serentak pada n set data
I1j I11 I12 I13 I14 t diproses di PU1 {D1}1 {D1}2 {D1}3 {D1}4 {D1}j t I2j I21 I22 I23 I24 t diproses di PU2 {D2}1 {D2}2 {D2}3 {D2}4 {D2}j t Inj In1 In2 In3 In4 t diproses di PUn {Dn}1 {Dn}2 {Dn}3 {Dn}4 {Dn}j t n operasi yang berbeda dikerjakan secara serentak pada n set data lts

30 Multiple Instruction-stream Single Data-stream n aliran instruksi
( Systolic ) Multiple Instruction-stream Single Data-stream n aliran instruksi IS2 n 1 MU 1 n 2 1 aliran data CUi : Control Uniti DSi : Data Streami PUi : Processing Uniti (ALUi) ISi : Instruction Streami MU : Memory Unit lts

31 Data Streams Instruction Streams
MISD SISD MIMD SIMD 1 Many Data Streams Instruction Streams lts

32 Kategori Komputer Prosesor tunggal Prosesor Paralel
- SISD : Komputer Von Neuman MIMD : (komputer skalar) SIMD : Komputer Array, (1) Multiprosesor tipe Komputer Vektor Shared-memory (2) Multiprosesor tipe Message Passing* - MISD : Komputer Systolic Spesial Purposed Computer lts

33 (N operasi secara paralel)
+ r1 r2 r3 add r3, r1, r2 SCALAR (1 operasi) Aplikasi image processing (signal processing), multi media v1 v2 v3 panjang vektor = N vadd vv v3, v1, v2 VECTOR (N operasi secara paralel) vektor N elemen SISD vs SIMD N processing elements 1 lts

34 Instruksi Vektor dasar
Opcode Operands Operasi VADD.VV V1,V2,V V1 = V2 + V vector + vector VADD.SV V1,R0,V V1 = R0 + V scalar + vector VMUL.VV V1,V2,V V1 = V2 x V vector x vector VMUL.SV V1,R0,V V1 = R0 x V scalar x vector VLD V1,R V1 = M[ R1...R ] load, stride=1 VLDS V1,R1,R V1 = M[ R1...R * R2] load, stride=R2 VLDX V1,R1,V V1 = M[R1 + V2i , i = ] indexed VST V1,R M[ R1...R1 + 63] = V store, stride=1 VSTS V1,R1,R V1 = M[R1..R * R2] store, stride=R2 VSTX V1,R1,V V1 = M[R1 + V2i , i = 0..63] indexed lts

35 tanpa instruksi vektor dengan instruksi vektor
Contoh Program Vector Y[0:63] = Y[0:653] + a * X[0:63] tanpa instruksi vektor dengan instruksi vektor LD R0,a ADDI R4,Rx,#512 loop: LD R2, 0(Rx) MULTD R2,R0,R2 LD R4, 0(Ry) ADDD R4,R2,R4 SD R4, 0(Ry) ADDI Rx,Rx,#8 ADDI Ry,Ry,#8 SUB R20,R4,Rx BNZ R20,loop LD R0,a #load scalar a VLD V1,Rx #load vector X VMUL.SV V2,R0,V1 #vector mult VLD V3,Ry #load vector Y VADD.VV V4,V2,V3 #vector add VST Ry,V4 #store vector Y lts

36 Shared Memory MIMD machine
sebuah sistem komputer Multiprosesor tipe Shared Memory Global /Shared Memory Processor A B C M E O R Y U S local memory cache cache cache lts

37 Distributed Memory MIMD
sebuah sistem komputer Multiprosesor tipe Message Passing Jaringan Interkoneksi Processor A B C Memory System A System B System C M E O R Y U S lts

38 data digunakan secara berbagi (shared) lewat jaringan interkoneksi,
dengan melalui pertukaran pesan (message passing) antar proses (pada prosesor yg berbeda) , menggunakan instruksi SEND dan RECEIVE lts

39 yang saling bekerjasama
3 buah sistem komputer yang saling bekerjasama Sistem Multikomputer Jaringan komunikasi Processor A B C Memory System A System B System C M E O R Y U S lts

40 Masalah dalam Multiprosesor tipe Shared-Memory
Beberapa processors berbagi memory, berbagi variabel (data). Masalah konflik pengaksesan & pemakaian data karena adanya data dependency karena satu ruang pengingat digunakan secara berbagi Perlu Sinkronisasi dalam pengaksesan memory berbagi Perlu analisis ketergantungan data pada level kompilasi dan level Operating System. lts

41 A(j) = A(j-1) * 2.0 B(j) = A(j) + C(j)
DATA DEPENDENCY Data dependency terjadi bila dlm komputasinya bbrp proses/sub- proses (threads) memakai data yg sama, dng logika ketergantungan tertentu Contoh1 : pa pb DO 500 j = 1, N DO 100 j =1, N A(j) = A(j-1) * B(j) = A(j) + C(j) 500 CONTINUE CONTINUE pa dan pb dieksekusi secara paralel. Karena harga B(j) tergantung hasil perhitungan A(j) oleh pa, maka pb tidak boleh mengakses data A(j) pada saat pa sedang mengubahnya . Kalau ini dilanggar maka hasil perhitungan B(j) tidak seperti yang diharapkan. lts

42 Harga y tergantung pada harga x .
Contoh2 : pc pd x = x = 4 y = x** y = x **3 Harga y tergantung pada harga x . Untuk mencegah kesalahan perhitungan akibat adanya data- dependency, maka akses ke data berbagi harus disinkronkan melalui mekanisme sinkronisasi. lts

43 p1 p2 data a Shared Memory SINKRONISASI Mutual exclusion (locks)
Menjamin operasi operasi pada data berbagi hanya dapat dilakukan oleh satu proses pada setiap waktu. p1 p2 reader() { } membaca data a writer() { } mengubah data a data a critical section Shared Memory lts

44 Apa yang terjadi Bila p1 membaca data a (dari memory) pada saat t1 ?
baca a (dari memory) ubah a (di prosesor) simpan a (ke memory) p2: t p1: t1 t2 t3 Apa yang terjadi Bila p1 membaca data a (dari memory) pada saat t1 ? t2 ? t3 ? p1 akan membaca data lama p1 akan membaca data yang sudah diubah oleh p2. Untuk menjamin agar p1 mendapatkan data a yang sudah diperbaharui maka akses data dalam critical section harus bersifat mutual exclusive lts

45 Critical section adalah bagian didalam program dimana terdapat
akses ke data berbagi. Mutual exclusive : Karena data berbagi (shared atau mutual) tidak boleh diakses oleh sebuah proses ketika data tersebut sedang diubah oleh proses lain, maka akses data berbagi tersebut harus dikerjakan secara exclusive. Untuk menjamin mutual-exclusion , maka critical section harus dibingkai oleh instruksi LOCK dibagian awal dan instruksi UNLOCK dibagian akhir. Eksekusi instruksi LOCK oleh prosesor, diawal critical section, akan mendisable (secara hardware) akses prosesor prosesor lain ke shared memory. Sebaliknya, eksekusi instruksi UNLOCK diakhir critical section akan meng enable kembali akses prosesor-prosesor lain ke shared memory. lts

46 T1 T2 a Shared Memory reader() { writer() - - - - - - - - - - {
lock(DISK); unlock(DISK); } writer() { lock(DISK); unlock(DISK); } a critical section Shared Memory lts

47 Sinyal kendali disable/enable akan men-disable atau meng-enable
P P P cache cache cache Network M global, shared memory Sinyal kendali disable/enable akan men-disable atau meng-enable untai pembacaan/penulisan memory pada prosesor prosesor lain. lts

48 Deadlocks Deadlock adalah kondisi ketika dua atau beberapa proses/threads saling menunggu resources yang sedang digunakan oleh proses lainnya p1 p2 lock( M1 ); lock( M2 ); lock( M2 ); lock( M1 ); p1 menunggu resource (modul pengingat M2) yang sedang di-lock oleh p2 dan pada saat yang sama p2 menunggu resource (M1) yang sedang di-lock oleh p1 (saling tunggu !) Contoh : Dua proses yang diprogram untuk saling membaca (receive) dan saling mengirim (send) data antar proses. lts

49 Apakah komputasi ybs perlu diparalelkan eksekusinya ?
Pemrograman Paralel Apakah komputasi ybs perlu diparalelkan eksekusinya ? Bagaimana mendekomposisi komputasi tsb untuk mengeksploitasi keparalelannya ? Arsitektur apa yang harus digunakan ? Resources paralel apa yang ada (dalam arsitektur tsb) ? lts

50 Pemrograman Paralel Algoritma komputasi Algoritma sekuensial
Algoritma paralel Source Code Sekuensial Source Code Paralel Kompiler Pemaralel Kompiler Paralel Kompiler sekuensial Object Code Paralel Object Code Paralel Object Code Sekuensial Komputer sekuensial Komputer paralel lts

51 Dua pendekatan dalam Pemrograman Paralel
Pemaralelan Implisit Kompiler Pemaralel Source code ditulis dengan statement2 sekuensial (C,Pascal,..) Object code Paralel Pemaralelan Eksplisit Kompiler paralel Source code ditulis dengan stetement2 paralel (C,Pascal,..) Object code Paralel lts

52 komputasi paralel pemetaan komputasi sekuensial tasks proses P1 P2 PN
dekom- posisi assign- ment orkes- trasi p1 p2 p1 p2 p3 p4 p3 p4 komputasi paralel pemetaan komputasi sekuensial tasks proses P1 P2 PN network pi : proses i Pj : prosesor j lts

53 OS Kernel Multi-threaded OS Aplikasi B Aplikasi A Aplikasi C pBj pAi
Application Aplikasi A Application Aplikasi C Application pBj pAi pCk OS Kernel Multi-threaded OS Mendekomposisi aplikasi menjadi proses proses (dan threads) Menjadwalkan ekse- kusi proses (threads). CPU lts CPU CPU

54 printing thread editting thread lts

55 Independent Threads printing() { - - - - - - - - - - - - } editing()
main() id1 = thread_create(printing); id2 = thread_create(editing); thread_run(id1, id2); lts

56 Cooperative Parallel Synchronized Threads
cooperative thread - filecopy reader() { lock(buff[i]); read(src,buff[i]); unlock(buff[i]); } writer() { lock(buff[i]); write(src,buff[i]); unlock(buff[i]); } buff[0] buff[1] Cooperative Parallel Synchronized Threads lts


Download ppt "ARSITEKTUR PARALEL lts."

Presentasi serupa


Iklan oleh Google