ARSITEKTUR PARALEL lts.

Slides:



Advertisements
Presentasi serupa
Struktur CPU Delta Ardy Prima, S.ST.
Advertisements

PENGANTAR TEKNOLOGI INFORMASI
Organisasi dan Arsitektur Komputer
Struktur CPU Organisasi Komputer TATA SUMITRA M.KOM HP
PERTEMUAN MINGGU KE-14 PROSESOR PARALEL.
Arsitektur Komputer.
PERTEMUAN MINGGU KE-14 PROSESOR PARALEL OLEH SARI NY.
BAB 3 – Pandangan Tingkat Paling Atas Fungsi dan Interkoneksi Komputer
Organisasi dan Arsitektur Komputer
Slide 8 – Thread, SMP, dan Microkernel Setio Basuki Jurusan Teknik Informatika – Universitas Muhammadiyah Malang ~ Versi 1.0.
SISTEM KOMPUTER STRUKTUR CPU NI KETUT ESATI, S.Si.
Struktur Sistem Operasi
Oleh : Wahyu Andhyka Kusuma
PENDAHULUAN ARSITEKTUR KOMPUTER
ORGANISASI KOMPUTER II STMIK – AUB SURAKARTA
Organisasi dan arsitektur komputer
Organisasi dan arsitektur komputer
Arsitektur dan Organisasi Komputer
PIPELINE DAN PROSESOR PARALEL
Reduced Instruction Set Computers
Organisasi & Arsitektur Komputer
Central Processing Unit
Instruksi dalam CPU.
Pengantar Arsitektur Organisasi Komputer
Desain Unit Pemrosesan
Arsitektur & Organisasi Komputer BAB IIi STRUKTUR CPU Oleh : Bambang Supeno, ST., MT. Sep-17 Arsitektur & Organisasi Komputer.
Struktur Sistem Komputer
PIPELINE DAN PROSESOR PARALEL
Paralel Processing Sistem Terdistribusi.
ARSITEKTUR KOMPUTER PARALEL
PENGANTAR TEKNOLOGI INFORMASI
Pertemuan 4 STRUKTUR CPU Author: LINDA NORHAN, ST.
Struktur Sistem Komputer
PIPELINE DAN PENGOLAHAN VEKTOR
PERTEMUAN MINGGU KE-14 PROSESOR PARALEL.
Struktur CPU.
KLASIFIKASI ARSITEKTURAL
Klasifikasi arsitektur komputer (bagian 1)
Thread.
PERTEMUAN MINGGU KE-14 PROSESOR PARALEL.
Abdul Wahid STRUKTUR CPU JURUSAN TEKNIK INFORMATIKA
PENDAHULUAN ARSITEKTUR KOMPUTER
Reduced Instruction Set Computers
THREAD.
Struktur Sistem Komputer
Sistem Operasi Koko Joni Iwan Santoso.
ORGANISASI & ARSITEKTUR KOMPUTER
Komponen & fungsi komputer
Pertemuan ke - 6 Organisasi Komputer
Pertemuan 4 Central Processing Unit
Organisasi dan Arsitektur Komputer
Slide 8 – Thread, SMP, dan Microkernel
PERTEMUAN MINGGU KE-14 PROSESOR PARALEL.
Struktur Sistem Komputer
Pertemuan ke - 5 Struktur CPU
ARSITEKTUR & ORGANISASI KOMPUTER
BAB 1 PENGENALAN ORGANISASI DAN ARSITEKTUR KOMPUTER
PARALEL PROCESSING.
Pertemuan ke 3 Struktur CPU
ARSITEKTUR KOMPUTER Komponen dan Interkoneksi
Struktur CPU.
Struktur CPU.
Universitas Trunojoyo
SISTEM OPERASI Desi Ramayanti, S.Kom 11/16/2018
PENDAHULUAN ARSITEKTUR KOMPUTER
Fakultas Ilmu Komputer Universitas Dian Nuswantoro Semarang
PENDAHULUAN ARSITEKTUR KOMPUTER
IS KLASIFIKASI ARSITEKTURAL Sistem Komputer kategori SISD CU PU MM
PENDAHULUAN ARSITEKTUR KOMPUTER
Struktur CPU.
Transcript presentasi:

ARSITEKTUR PARALEL lts

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

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

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

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 + /

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

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

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

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

(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

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

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

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

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

Superscalar: PowerPC 604 and Pentium Pro Multiple FU lts

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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) * 2.0 B(j) = A(j) + C(j) 500 CONTINUE 100 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

Harga y tergantung pada harga x . Contoh2 : pc pd x = 2 x = 4 y = x**2 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

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

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

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

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

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

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

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

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

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

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

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

printing thread editting thread lts

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

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