Transcript
7/25/2019 Parallel Processing AOK
1/36
ARSITEKTUR DAN ORGANISASI KOMPUTER
CHAPTER 17 PARALLEL PROCESSING
Disusun Oleh:
Hendi Maran!" 1#$1$%&%71111%&
'redd A(a) Pra!a*a 1#$1$%&%%1111%%
+"se, 'e-ri .ira/an 1#$1$%&%%111%00
T"n 'aih Pra"2i 1#$1$%&%1111%01
PROGRAM TEKNOLOGI IN'ORMASI DAN ILMU KOMPUTER
UNI3ERSITAS 4RA.I5A+A
&%16
7/25/2019 Parallel Processing AOK
2/36
Parallel Pr"essin2
Pemrosesan paralel (parallel processing) adalah penggunaaan lebih dari satu CPU untuk
menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program
berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek,
seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa
berkaitan di antaranya.
omputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan
dengan meman!aatkan beberapa komputer secara bersamaan. "iasanya diperlukan saat kapasitas
yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun
karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel
ini diperlukan in!rastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan
dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu
diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middle#are yang
berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. $elanjutnya
pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
%isal & diberikan ' buah data acak yang nantinya akan diurutkan secara scending
dengan menggunakan CC*-$ort dengan menggunakan perhitungan +n. n / jumlah data
+n / +' / +,' / 0, jadi kita memerlukan 0 kali putaran untuk mengurutkan data tersebut.
1an masing-masing data diproses oleh 2 processor. "erikut gambar dari pemrosesan diatas.
1ari gambar diatas bisa dilihat dari data yang tidak terurut 34,',5,,67 menjadi terurut dengan
menggunakan 0 kali putaran searching secara ganjil dan genap dengan menggunakan ' buah
processor. 8ang menghasilkan data yang terurut menjadi 3,6,',4,57
9adi dari kedua pengertian diatas dapat diambil sebuah kesimpulan bah#a kinerja
komputasi dengan paralel proccesing memungkinkan beberapa pekerjaan dilakukan secara
7/25/2019 Parallel Processing AOK
3/36
bersamaan dan dalam #aktu yang bersamaan dan semakin banyak pekerjaan yang dapat
diselesaikan tepat #aktu.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi
perintahoperasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun
banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel
adalah untuk meningkatkan per!orma komputasi. $emakin banyak hal yang bisa dilakukan secara
bersamaan (dalam #aktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
omputasi paralel membutuhkan algoritma, bahasa pemrograman dan compiler
Pengolahan Paralel &
pengolahan in!ormasi yang menekankan pada manipulasi data-data elemen secara
simultan. dimaksudkan untuk mempercepat komputasi dari sistem komputer dan menambah
jumlah keluaran yang dapat dihasilkan dalam jangka #aktu tertentu.
$ebagaian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih
dari satu. "ahkan juga ada komputer dengan ribuan CPU. omputer dengan satu CPU dapat
melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan.
:amun, parallel processing ini memerlukan so!t#are canggih yang disebut distributed
processing so!t#are. Parallel processing berbeda dengan multitasking, yaitu satu CPUmengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
8ang terdiri dari empat kelompok komputer. Tujuan utama dari pemrosesan paralel adalah untuk
meningkatkan per!orma komputasi. $emakin banyak hal yang bisa dilakukan secara bersamaan
(dalam #aktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
A8 Paradi2*a Pen2"lahan Paralel
18 M8 58 'L+NN
1alam arsitektur komputer, adalah sebuah klasi!ikasi yang dibuat oleh%ichael 9.
;lynnpada tahun 2544 dikenal sebagai taksonomi ;lynn. lasi!ikasi ini dibuat
berdasarkan jumlahinstruksiyang berjalan simultan dan konkuren, dan juga aliran data
yang diprosesnya. 1alam Taksonomi ;lynn, komputer dibagi menjadi empat buah kelas,
yaitu &
- Single Instruction Single Data Stream($I$1), satu-satunya yang menggunakan
arsitektur
7/25/2019 Parallel Processing AOK
4/36
Control Processor MemoryInstruction Stream Data
Stream
Control 1 Processor 1Instruction Stream
Control N Processor NInstruction Stream
Control 2 Processor 2Instruction Stream
Data
Stream.
.
.
.
.
.
Memory
saja. =leh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal.
Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga
dimungkinkan adanya o>erlapping(tumpang tindih !ungsi yang digunakan) dalam
eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer $I$1 berupa
komputer yang terdiri atas satu buah pemroses (single processor). :amun komputer
$I$1 juga mungkin memiliki lebih dari satu unit !ungsional (modul memori, unit
pemroses, dan lain-lain), selama seluruh unit !ungsional tersebut berada dalam kendali
sebuah unit pengendali. Contoh mesin $I$1 adalah PC tradisional atau main!rame yang
tua.
- Multiple Instruction, Single Data Sream(%I$1), komputer jenis ini memiliki n unit
pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda
terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit
pengendali yang berbeda. eluaran dari satu pemroses menjadi masukan bagi pemroses
berikutnya. "elum ada per#ujudan nyata dari komputer jenis ini kecuali dalam bentuk
prototype untuk penelitian dan tidak pernah dirilis secara massal.
- Single Instruction, Multiple Data Stream ($I%1), pada komputer $I%1 terdapat lebihdari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama.
$eluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang
dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang
berbeda yang berasal dari aliran data yang berbeda pula. Contoh dari $I%1 adalah
prosesor larik (array processor), atau ?PU.
7/25/2019 Parallel Processing AOK
5/36
"erdasarkan interkoneksi antar prosesor, komputer $I%1 dapat dibedakan menjadi dua,
yaitu &
a) ntar Prosesor tidak ada koneksi atau setiap prosesor hanya berhubungan dengan
prosesor-prosesor yang ada di sebelahnya.
b) @ubungan antara Processor Alements (PAs) melalui jaringan interkoneksi.
$I%1 pertama kali dipopulerkan pada superkomputerskala besar, meski sekarang
telah ditemukan pada komputer pribadi. Contoh aplikasi yang dapat mengambil
keuntungan dari $I%1 adalah aplikasi yang memiliki nilai yang sama yang ditambahkan
ke banyak titik data (data point), yang umum terjadi dalam aplikasi multimedia. $alah
satu contoh operasinya adalah mengubah brightness dari sebuah gambar. $etiappiBeldari
sebuah gambar 6-bit berisi tiga buah nilai berukuran -bit brightnessdari porsi #arna
merah (red), hijau (green), dan biru (blue). Untuk melakukan perubahan brightness, nilai
R, G, dan 4 akan dibaca dari memori, dan sebuah nilai baru ditambahkan (atau
dikurangkan) terhadap nilai-nilai , ?, " tersebut dan nilai akhirnya akan dikembalikan
(ditulis kembali) ke memori.
Prosesor yang memiliki $I%1 mena#arkan dua keunggulan, yakni&
2 1ata langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa
data yang terpisah secara sendiri-sendiri. 1engan menggunakan blok data, prosesor
dapat memuat data secara keseluruhan pada #aktu yang sama. 1aripada melakukan
beberapa instruksi Dambil piBel ini, lalu ambil piBel itu, dstD, sebuah prosesor $I%1
akan melakukannya dalam sebuah instruksi saja, yaitu Dambil semuapiBelituED (istilah
DsemuaD adalah nilai yang berbeda dari satu desain ke desain lainnya). 9elas, hal ini
http://id.wikipedia.org/wiki/Superkomputerhttp://id.wikipedia.org/wiki/Multimediahttp://id.wikipedia.org/wiki/Pixelhttp://id.wikipedia.org/wiki/Pixelhttp://id.wikipedia.org/wiki/Pixelhttp://id.wikipedia.org/wiki/Superkomputerhttp://id.wikipedia.org/wiki/Multimediahttp://id.wikipedia.org/wiki/Pixelhttp://id.wikipedia.org/wiki/Pixel7/25/2019 Parallel Processing AOK
6/36
dapat mengurangi banyak #aktu pemrosesan (akibat instruksi yang dikeluarkan hanya
satu untuk sekumpulan data), jika dibandingkan dengan desain prosesor tradisional
yang tidak memiliki $I%1 (yang memberikan satu instruksi untuk satu data saja).
$istem $I%1 umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan
terhadap semua data dalam satu operasi. 1engan kata lain, sistem $I%1 dapat bekerja
dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap
titik data secara sekaligus.
$ayangnya, beberapa desainer $I%1 terbentur dengan beberapa pertimbangan desain
yang berada di luar kontrol mereka. $alah satu pertimbangan tersebut adalah harus
menambahkan banyak register untuk menampung data yang akan diproses. Idealnya, hal
ini dapat dilakukan dengan menambahkan unit $I%1 ke dalam prosesor agar memiliki
registernya sendiri, tetapi beberapa desainer terpaksa menggunakan register yang telah
ada, umumnya yang digunakan adalah register !loating-point. egister !loating-point
umumnya memiliki ukuran 46-bit, yang lebih kecil daripada yang dibutuhkan oleh $I%1
agar bekerja secara optimal, meskipun hal ini dapat mendatangkan masalah jika kode
hendak mencoba untuk menggunakan instruksi !loating-point dan $I%1 secara
bersamaan.
Pada pendesainan a#al $I%1, terdapat beberapa prosesor yang khusus disiapkan
untuk melakukan tugas ini, yang seringnya disebut sebagai 1igital $ignal Processor
(1$P). Perbedaan utama antara $I%1 dan 1$P adalah 1$P merupakan prosesor yang
komplit dengan set instruksinya sendiri (yang meskipun lebih sulit digunakan), sementara
$I%1 hanya bergantung pada register general-purpose untuk menangani detail program,
dan instruksi $I%1 hanya menangani manipulasi data.
Penggunaan instruksi $I%1 pertama kali dilakukan dalam superkomputer >ektor dan
dipopulerkan oleh Cray pada tahun 25FG-an. khir-akhir ini, $I%1 skala kecil (46-bit
atau 2-bit) telah menjadi populer dalam CPU yang bersi!at general purpose, yang
dimulai pada tahun 2556 dengan set instruks %H yang diaplikasikan pada @e#lett-
PackardP-I$C. Instruksi $I%1, saat ini dapat ditemukan dalam kebanyakan prosesor,
http://id.wikipedia.org/wiki/Registerhttp://id.wikipedia.org/wiki/Floating-pointhttp://id.wikipedia.org/wiki/Digital_Signal_Processorhttp://id.wikipedia.org/wiki/Hewlett-Packardhttp://id.wikipedia.org/wiki/Hewlett-Packardhttp://id.wikipedia.org/w/index.php?title=PA-RISC&action=edit&redlink=1http://id.wikipedia.org/wiki/Registerhttp://id.wikipedia.org/wiki/Floating-pointhttp://id.wikipedia.org/wiki/Digital_Signal_Processorhttp://id.wikipedia.org/wiki/Hewlett-Packardhttp://id.wikipedia.org/wiki/Hewlett-Packardhttp://id.wikipedia.org/w/index.php?title=PA-RISC&action=edit&redlink=17/25/2019 Parallel Processing AOK
7/36
seperti halnya ltiersi:T$Cke PJatau sebaliknya, :T$C ke@1Tideo, dan perbaikan citra gambar (image enhancement).
- Multiple Instruction, Multiple Data stream(%I%1), pada sistem komputer %I%1
murni terdapat interaksi di antara n pemroses. @al ini disebabkan seluruh aliran dari dan
ke memori berasal dari space data yang sama bagi semua pemroses. omputer %I%1
bersi!at tightly coupled (global memory) jika tingkat interaksi antara pemroses tinggi dan
disebut loosely coupled jika tingkat interaksi antara pemroses rendah. omputer ini
memiliki beberapa prosesor yang bersi!at otonomus yang mampu melakukan instruksi
yang berbeda pada data yang berbeda. $istem terdistribusi umumnya dikenal sebagai
%I%1, entah itu menggunakan satu ruangan memori secara bersama-sama atau sebuah
ruangan memori yang terdistribusi.
http://id.wikipedia.org/w/index.php?title=AltiVec&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=PowerPC&action=edit&redlink=1http://id.wikipedia.org/wiki/SSEhttp://id.wikipedia.org/wiki/3DNow!http://id.wikipedia.org/wiki/3DNow!http://id.wikipedia.org/wiki/SPARChttp://id.wikipedia.org/w/index.php?title=MAX&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=MDMX&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=MIPS-3D&action=edit&redlink=1http://id.wikipedia.org/wiki/MIPShttp://id.wikipedia.org/wiki/MVIhttp://id.wikipedia.org/wiki/DEC_Alphahttp://id.wikipedia.org/wiki/DEC_Alphahttp://id.wikipedia.org/w/index.php?title=GAPP&action=edit&redlink=1http://id.wikipedia.org/wiki/Lockheed_Martinhttp://id.wikipedia.org/wiki/Lockheed_Martinhttp://id.wikipedia.org/wiki/NTSChttp://id.wikipedia.org/wiki/PALhttp://id.wikipedia.org/wiki/HDTVhttp://id.wikipedia.org/wiki/HDTVhttp://id.wikipedia.org/wiki/Videohttp://id.wikipedia.org/w/index.php?title=AltiVec&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=PowerPC&action=edit&redlink=1http://id.wikipedia.org/wiki/SSEhttp://id.wikipedia.org/wiki/3DNow!http://id.wikipedia.org/wiki/SPARChttp://id.wikipedia.org/w/index.php?title=MAX&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=MDMX&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=MIPS-3D&action=edit&redlink=1http://id.wikipedia.org/wiki/MIPShttp://id.wikipedia.org/wiki/MVIhttp://id.wikipedia.org/wiki/DEC_Alphahttp://id.wikipedia.org/w/index.php?title=GAPP&action=edit&redlink=1http://id.wikipedia.org/wiki/Lockheed_Martinhttp://id.wikipedia.org/wiki/NTSChttp://id.wikipedia.org/wiki/PALhttp://id.wikipedia.org/wiki/HDTVhttp://id.wikipedia.org/wiki/Video7/25/2019 Parallel Processing AOK
8/36
&8 T8G8 Le/is
T.?. Je#is membedakan komputer paralel ke dalam dua kelas, berdasarkan ada
atau tidak adanya common global clock, sebagai & synchronous dan asynchronous.
a) Snhr"n"us&
Pada komputer paralel yang termasuk dalam kategori ini terdapat koordinasi yang
mengatur beberapa operasi untuk dapat berjalan bersamaan sedemikian hingga tidak ada
ketergantungan antar operasi.
Parallelism yang termasuk dalam kategori ini adalah >ectorarray parallelism, $I%1 dan
systolic parallelism.
$ystolic parallel computer adalah multiprocessor dimana data didistribusikan dan dipompa
dari memory ke suatu array prosesor sebelum kembali ke memory.
7/25/2019 Parallel Processing AOK
9/36
b) Asnhr"n"us &
Pada komputer paralel yang termasuk dalam kategori asynchronous, masing-masing
prosesor dapat diberi tugas atau menjalankan operasi berbeda dan masing-masing
prosesor melaksanakan operasi tersebut secara sendiri-sendiri tanpa perlu koordinasi.
Paradigma yang juga termasuk dalam kategori ini adalah %I%1 dan reduksi.
Paradigma reduksi adalah paradigma yang berpijak pada konseph graph reduksi. Program
dengan model reduksi diekspresikan sebagai graph alur data. omputasi berlangsung
dengan cara mereduksi graph dan program berhenti jika graph akhirnya hanya
mempunyai satu simpul.
#8 MICHAEL 58 9UINN
Kuinn membedakan paralelisma ke dalam dua jenis & 1ata Parallelism dan
Control Parallelism.
a8 Da!a Parallelis* :
penerapan operasi yang sama secara simultan terhadap elemen-elemen dari
kumpulan data.b. C"n!r"l Parallelis* :
penerapan operasi-operasi berbeda terhadap elemen-elemen data yang berbeda
secara bersamaan. Pada control parallelism dapat terjadi aliran data antar
proses-proses dan kemungkinan terjadi aliran data yang kompleksrumit.
7/25/2019 Parallel Processing AOK
10/36
Pipeline merupakan satu kasus khusus dari control parallelism dimana aliran
data membentuk jalur yang sederhana.
Contoh &
Perhatikan ke-empat taman yang harus dira#at berikut ini &
7/25/2019 Parallel Processing AOK
11/36
Pekerjaan 6 dapat dilakukan jika ketiga pekerjaan 2, dan 0 telah selesai.
Pekerjaan 2, dan 0 dapat dilakukan secara bersamaan, sebagai contoh control
parallelism. %asing-masing pekerjaan adalah contoh data parallelism. $ementara
pekerjaan 6 dikerjakan pada sebuah taman, pekerjaan 2, dan 0 dapat dikerjakan
pada satu taman yang lain.
48 Mul!ir"essin2
%ultiprocessingadalah suatu kemampuan suatu sistem operasi yang menjalankan dua
atau lebih instruksi secara serentak dengan menggunakan sejumlah CPU dalam sebuah
komputer. 1engan sistem seperti ini sebuah sistem operasi dapat mengatur agar sejumlah
CPU menjalankan instruksi-instruksi yang berbeda yang terletak dalam sebuah program
dalam #aktu yang sama. emampuang eksekusi terhadap beberapa proses perangkat lunak
dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah proses dalam satu
#aktu, meski istilah multiprogramming lebih sesuai untuk konsep ini.
7/25/2019 Parallel Processing AOK
12/36
%ultiprocessing sering diimplementasikan dalam perangkat keras (dengan
menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan
dalam perangkat lunak. $ebuah sistem mungkin dapat memiliki dua kemampuan tersebut,
salah satu di antaranya, atau tidak sama sekali.
%ultiprocessing adalah istilah teknologi in!ormasi dalam bahasa Inggris yang
merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak dengan
menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga dapat
merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan
mengalokasikan tugas kepada prosesor-prosesor tersebut.
$istem multi prosessor yang sering digunakan adalah model symmetric
multiprocessing, dimana setiap prosessor menjalankan sistem operasi yang identik dan
komunikasi antar prosesor jika diperlukan. "eberapa sistem menggunakan asymmetric
multiprocessing, dimana setiap prosessor mempunyai tugas tetentu. Prosessor master
mengontrol sistem, prosessor lain menunggu instruksi master atau mempunyai tugas yang
ditentukan oleh master. $kema ini merupakan hubungan master-sla>e. Prosessor master
menjad#al dan mengalokasikan pekerjaan dari prosessor sla>e.
Contoh symmetric multiprocessing adalah sistem U:IH >ersi AncoreLs untuk
komputer %ultimaB omputer dapat dikon!igurasikan untuk menangani satu lusin
prosessor, semua menjalankan U:IH. euntungan dari model ini adalah bah#a beberapa
proses dapat berjalan pada satu #aktu (N proses jika terdapat N CPU) tanpa menyebabkan
pengurangan per!ormansi. $ehingga kita dapat mengontrol I= secara hati-hati untuk
menjamin data mendapatkan prosessor yang tepat.
Keun22ulan Mul!ir"ess"r
2) Peningkatan throughput, karena lebih banyak proses thread yang berjalan dalam satu
#aktu sekaligus (jika proses yang antri di ready Mueue sedikit). Perlu diingat hal ini tidak
berarti daya komputasinya menjadi meningkat sejumlah prosesornya. 8ang meningkat
ialah jumlah pekerjaan yang bisa dilakukannya dalam #aktu tertentu.
) Economy of scale (ekonomis), ekonomis dalam de>ices yang dibagi bersama sama.
Prosesorprosesor terdapat dalam satu komputer dan dapat membagi peripheral
(ekonomis) seperti disk dan catu daya listrik.
7/25/2019 Parallel Processing AOK
13/36
0) Peningkatan kehandalan (reliabilitas), 9ika satu prossor mengalami suatu gangguan,
maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang
terganggu diambil alih oleh prosesor lain. @al ini dikenal dengan istilah ?race!ul
1egradation. $istemnya sendiri dikenal bersi!at !ault tolerant atau !ailo!t system.
4erdasar;an ;ede;a!an an!ar r"ses"r (enis *ul!ir"essin2 daa! di-a2i ;e
dala* :
Loosely coupled
%endistribusikan komputasi diantara beberapa prosessor. Prosessor berkomunikasi
dengan prosessor lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau
saluran telepon. $istem ini disebut loosely coupled system atau sistem terdistribusi
(distributed system) dengan menggunakan memory local atau multi komputer.
$etiap site memiliki processor, memori lokal dan clock sendiri namun semua resource
dapat diakses dari setiap site.Proses yang dijalankan pada komputer yang berbeda modul saling berkomunikasi
dengan bertukar pesan melalui %essage Trans!er $ystem (%T$).
Thightly coupled
Tight coupling di antara #indo# adalah konsep antarmuka yang mendukung
koordinasi secara global atau multi processor.
Prosesor berkomunikasi antara satu dengan yang lain dengan cara berbagi memori
utama, sehingga kecepatan komunikasi dari satu prosesor ke yang lain tergantung
pada band#idth memori.
$ebuah memori lokal kecil atau bu!!er (cache) kemungkinan terdapat pada setiap
prosesor untuk memperbaiki kinerja.
7/25/2019 Parallel Processing AOK
14/36
%ultiprocessing dapat dibagi ke dalam beberapa kelas berdasarkan simetrinya yaitu &
Asymmetric Multiprocessing (AMP)
Symmetric Multiprocessing (SMP)
Non-uniform memory access (NMA)
C8 AMP
7/25/2019 Parallel Processing AOK
15/36
tidak punya kemampuan I= dan disebut sebagai ttached Processor (ps). Ps
mengeksekusi kodekode user diba#ah penga#asan master processor.
!ambar Ma ster sla"e
MultiProcessor
D8 SMP
7/25/2019 Parallel Processing AOK
16/36
untuk memeriksa antrian ready dan memilih suatu proses untuk dieksekusi. 9ika suatu sistem
Multiprocessor Schedulingmencoba untuk mengakses dan mengupdate suatu struktur data,
penjad#al dari prosesor-prosesor tersebut harus diprogram dengan hati-hati, kita harus yakin
bah#a dua prosesor tidak memilih proses yang sama dan proses tersebut tidak hilang dari
antrian. $ecara >irtual, semua sistem operasi modern mendukung $%P, termasuk *indo#s
HP, *indo#s GGG, *indo#s er 6.G ,
=$ !or $%P .22, *indo#s :T 6.G , :o>ell :et*are 6.2 $%P, :o>ell UniB*are $%P
.G , $C= =pen $er>er '.G #ith $C= %PH 0.G , "anyan ice)
?ambarMultiprogr amming dengan Symm
etric Multiprocessing
?ambar =rganisasi $ymmetric
%ultiprocessor
N $etiap prosesor memiliki akses ke memori utama dan perangkat-
perangkat I= bagi-pakai melalui mekanisme interkoneksi tertentu
1alam lasi!ikasi =rganisasi $ymmetric %ultiprocessor
Time-shared atau Common "us &
N Prosesor dapat berkomunikasi dengan prosesor lainnya melalui memori
7/25/2019 Parallel Processing AOK
17/36
N Time shared bus adalah mekanisme simpel untuk membangun sistem multi-processor,
struktur dan inte!ace sama pada single processor yaitu penggunaan bus interconnection
;itur&
N Pengalamatan (ddressing) / %embedakan module untuk mengalokasikan data
dari sumber ke tujuan
N rtbitrasi (rtbitration) / %ekanisme penyediaan permintaan acak -lebih penting
didahulukan- untuk kontrol bus dengan skema prioritas
N Time $haring / 9ika satu mudule berada di bus, yang lain harus menunggu dan
bisa juga di tunda operasinya.
euntungannya Time-shared "us &
N $implicity / ;isik inter!ace, addressing, arbitration, dan time Osharing logic tiap
processor sama seperti sistem single processor
N ;leBibility / mudah ekspansi sistem dengan menyisipkan beberapa processor ke
dalam bus
N eliability / kesalahan pada penyisipan de>ice tidak mengakibatkan kegagalan pada
seluruh sistem
erugian Time-shared "us &
N Per!orma terbatas pada bus cycle time
N $etiap processor harus memiliki local chace
N %engurangi beberapa akses bus
N %asalah Pada chace coherence% (di&elas#an nanti)
%ultiport %emory
Pengijinan akses
langsung, dan
independen pada modul
memory oleh setiapprocessor
ebutuhan logic untuk
pemecahan con!lict
$edikit modi!ikasi (bahkan tidak ada) ke processor atau modul yang dibutuhkan
7/25/2019 Parallel Processing AOK
18/36
Central Control Unit
Pembagian data stream antara independent modul seperti processor, memory, I=.
1apat melakukan bu!!er pada permintaan
%elakukan arbitrasi dan penjad#alan
%elakukan status dan kontrol
%elakukan cache update alerting
Contoh. I"% $05G
=perating system untuk $%P&
N Simultaneous concurrent processes/ %anajemen eksekusi I$ code yang sama secara
simultan pada =$ routine
N Scheduling / %elakukan Penjad#alan untuk menghindari con!lict
N Synchroni'ation/ $inkronisasi yang e!ekti! pada shared address shared I=
N Memory management/ Pengaturan memory yang akurat pada multiport
N eliability and fault tolerance/ Pengenalan kesalahan pada processor
%ain!rame $%P pada I"% $05G
N Processor unit (PU) terdiri dari & CI$C microprocessor, ;reMuently used instructions
hard #ired, 46k J2 uni!ied cache #ith 2 cycle access time
N J cache & 06k
N "us s#itching net#ork adapter ("$:) & Includes % o! J0 cache, %emory card, ?
per card
7/25/2019 Parallel Processing AOK
19/36
1irectory Protocol &
N %engumpukan dan mera#at in!ormasi tentang
copian data pada cache
N 1irectory tersimpan pada memory
N Permintaan di cek oleh directory
N Pelaksanaan trans!er yang lebih penting dahulu
N Pembuatan sentral bottleneck
N A!ekti! pada sistem skala besar dengan
interkoneksi skema yang kompleks
Jock digunakan untuk proses sinkronisasi, apabila ada atau lebih proses yang ingin
mengakses alamat memori yang sama dan mengubah shared memory. 1alam skema
tersebut, salah satu penjad#alan akan digunakan. $alah satu cara menggunakansymmetric
multiprocessing($%P). 1imana setiap prosesor menjad#alkan diri sendiri. $etiap prosesor
memeriksa ready Mueue dan memilih proses yang akan dieksekusi.
1alam sistem multiprocessing, semua CPU mungkin sama, atau beberapa mungkin
disediakan untuk tujuan khusus. $ebuah kombinasi antara perangkat lunak perangkat keras
dan pertimbangan desain sistem operasi menentukan simetri (atau kekurangan daripadanya)
dalam sistem tertentu. $ebagai contoh, perangkat keras atau perangkat lunak mungkinmemerlukan pertimbangan bah#a hanya satu CPU menanggapi semua hard#are interrupts,
sedangkan semua pekerjaan lain dalam sistem boleh didistribusikan merata antara CPU, atau
eksekusi kode kernel-mode dapat dibatasi hanya satu prosesor (baik prosesor tertentu, atau
hanya satu prosesor pada satu #aktu), sedangkan kode pengguna-mode mungkin dijalankan
dalam setiap kombinasi prosesor.
7/25/2019 Parallel Processing AOK
20/36
9ika suatu pekerjaan bisa diorganisasikan, maka porsi yang sama pada sebuah pekerjaan bisa
dilakukan secara paralel, sehingga sistem dengan multiple processor akan menunjukan
per!orma yang tingggi dibandingkan single processor (*illiam $tallings)
$istem %ultiprocessing sering lebih mudah untuk merancang jika larangan tersebut
diberlakukan, tetapi mereka cenderung kurang e!isien dibandingkan dengan sistem di mana
semua CPU yang digunakan.
$istem yang memperlakukan semua CPU sama disebut multiprocessing simetris ($%P)
sistem. 1alam sistem dimana semua CPU yang tidak sama, sumber daya sistem dapat dibagi
dalam beberapa cara, termasuk asymmetric multiprocessing ($%P), non-seragam akses
memori (:U%) multiprocessing, dan berkelompok multiprocessing.
7/25/2019 Parallel Processing AOK
21/36
. . .
interconnection network
. . .
processor
1
cache
processor
2
cache
processor
N
cache
memory
1
memory
M
memory
2
!ambar MA machine bloc# diagram
Per*asalahan ada Mul!ir"ess"r Shedulin2
2) Joad sharing & dapat terjadi apabila proses yang jalan di satu prosesor o>erload sehingga
sebagian proses berpindah ke prosesor yang lain) Time $haring & masing O masing proses akan dijalankan bila terdapat CPU yang telah
menyelesaikan job nya
0) $pace $haring& multiple threads dalam #aktu yang sama masuk ke multiple CPUs6) ?ang scheduling& semua thread berasal dari proses yang running pada suatu #aktu
E8 NUMA
7/25/2019 Parallel Processing AOK
22/36
Shared memoryyang secara phisik didistribusikan kesemua process disebut lokal memori,
dan kumpulan dari lokal memori membentuk ruang alamat global yang dapat diakses
oleh semua process.
:U% dapat mengakses lokal memori lebih cepat dengan local process, sedangkan akses
ke memori yang jauh diberikan ke process lain yang kapasistasnya lebih besar untuk
ditambah delay melalui interconeksi jaringan (N utterfly).
1isamping distribusi memori, secara umum shared memory dapat ditambahkan ke
multiprocessor system, dalam hal ini ada tiga pola akses memory, dimana yang tercepat
adalah akses ke lokal memori, akses ke global memori dan yang paling lambat adalah
akses dari memory yang jauh (*ierarchical $luster Model ).
%=TI
7/25/2019 Parallel Processing AOK
23/36
"atas prosesor di $%P adalah salah satu moti>asi pendorong di belakang
pengembangan sistem klaster. :amun, dengan sebuah cluster, masing-masing node memiliki
sendiri memori utama aplikasi tidak melihat memori global besar. kibatnya,
koherensi dipertahankan dalam perangkat lunak dari pada perangkat keras. ?ranularity memori
ini mempengaruhi kinerja dan, untuk mencapai kinerja maksimum, perangkat lunak harus
disesuaikan dengan lingkungan. $alah satu pendekatan untuk mencapai skala besarmultiprocessingsementara tetap mempertahankan rasa $%P adalah :U%.
a8 Clus!er
Cluster, dalam ilmu komputer dan jaringan komputer adalah sekumpulan komputer
(umumnya ser>er jaringan) independen yang beroperasi serta bekerja secara erat dan terlihat oleh
klien jaringan seolah-olah komputer-komputer tersebut adalah satu buah unit komputer. Proses
menghubungkan beberapa komputer agar dapat bekerja seperti itu dinamakan dengan Clustering.
omponen cluster biasanya saling terhubung dengan cepat melalui sebuah interkoneksi yang
sangat cepat, atau bisa juga melalui jaringan lokal (J:). arena menggunakan lebih dari satu
buahser>er, maka manajemen dan pera#atan sebuah cluster jauh lebih rumit dibandingkandengan manajemen ser>er main!rame tunggal yang memiliki skalabilitas tinggi (semacam I"%
$6GG), meski lebih murah.
Ka!e2"ri ;lus!er ;"*u!er
luster komputer terbagi ke dalam beberapa kategori, sebagai berikut&
- luster untuk ketersediaan yang tinggi (@igh-a>ailability clusters)
@igh-a>ailability cluster, yang juga sering disebut sebagai ;ailo>er Cluster pada
umumnya diimplementasikan untuk tujuan meningkatkan ketersediaan layanan yang
disediakan oleh kluster tersebut. Alemen kluster akan bekerja dengan memiliki node-
node redundan, yang kemudian digunakan untuk menyediakan layanan saat salah satu
elemen kluster mengalami kegagalan. Ukuran yang paling umum dari kategori ini
adalah dua node, yang merupakan syarat minimum untuk melakukan redundansi.
Implementasi kluster jenis ini akan mencoba untuk menggunakan redundansi
komponen kluster untuk menghilangkan kegagalan di satu titik
- ($ingle Point o! ;ailure).
da beberapa implementasi komersial dari sistem kluster kategori ini, dalam
beberapa sistem operasi. %eski demikian, proyek JinuB- @ adalah salah satu paket
yang paling umum digunakan untuk sistem operasi ?:UJinuB.1alam keluarga
sistem operasi %icroso!t *indo#s :T, sebuah layanan yang disebut dengan%icroso!t
Cluster $er>ice (%$C$) dapat digunakan untuk menyediakan kluster kategori ini.
%$C$ ini diperbarui lagi dan telah diintegrasikan dalam *indo#s GGG d>anced$er>er dan *indo#s GGG 1atacenter $er>er, dengan nama%icroso!t Clustering
$er>ice. 1alam *indo#s $er>er GG0, %icroso!t Clustering $er>ice ini ditingkatkan
lagi kinerjanya. luster untuk pemerataan beban komputasi (Joad-balancing clusters)
luster kategori ini beroperasi dengan mendistribusikan beban pekerjaan secara
merata melalui beberapa node yang bekerja di belakang (back-end node). Umumnya
kluster ini akan dikon!igurasikan sedmikian rupa dengan beberapa !ront-end load-
balancing redundan. arena setiap elemen dalam sebuah kluster load-balancing
7/25/2019 Parallel Processing AOK
24/36
mena#arkan layanan penuh, maka dapat dikatakan bah#a komponen kluster tersebut
merupakan sebuah kluster akti!kluster @ akti!, yang bisa menerima semua
permintaan yang diajukan oleh klien.- luster hanya untuk komputasi (Compute clusters)
Penggunaan utama kluster komputer adalah untuk tujuan komputasi, ketimbang
penanganan operasi yang berorientasi I= seperti layanan *eb atau basis data.$ebagai contoh, sebuah kluster mungkin mendukung simulasi komputasional untuk
perubahan cuaca atau tabrakan kendaraan. Perbedaan utama untuk kategori ini
dengan kategori lainnya adalah seberapa eratkah penggabungan antar node-nya.
$ebagai contoh, sebuah tugas komputasi mungkin membutuhkan komunikasi yang
sering antar node--ini berarti bah#a kluster tersebut menggunakan sebuah jaringan
terdedikasi yang sama, yang terletak di lokasi yang sangat berdekatan, dan mungkin
juga merupakan node-node yang bersi!at homogen. 1esain kluster seperti ini,
umumnya disebut juga sebagai "eo#ul! Cluster. da juga desain yang lain, yakni saat
sebuah tugas komputasi hanya menggunakan satu atau beberapa node saja, dan
membutuhkan komunikasi antar-node yang sangat sedikit atau tidak ada sama sekali.
1esain kluster ini, sering disebut sebagai D?ridD. "eberapa compute cluster yang
dihubungkan secara erat yang didesain sedemikian rupa, umumnya disebut dengan
D$upercomputingD. "eberapa perangkat lunak %iddle#are seperti %PI atau Parallel
7/25/2019 Parallel Processing AOK
25/36
Untuk semua protocol cache coherence, tujuannya adalah agar >ariabel local yang
sehabis dipakai mendapatkan cache yang cocok dan tetap disana menggunakan reads dan ,rites.
$embari menggunakan protocol untuk menjaga keteraturandari >ariabel yang terbagi yang
mungkin terjadi pada beberapa cachepada saat bersamaan.$ache coherence umumnya dibagi
menjadi so!t#are dan hard#are."eberapa implementasinya menggunakan so!t#are dan hard#are
sekaligus.:amun, klasi!ikasi so!t#are dan hard#are masih instrukti! dan umumnya digunakandalam mensur>ey cache coherence+
S",!/are S"lu!i"n
Pola cache coherence so!t#are mengusahakan untuk menghindari kebutuhan tambahan
hard#are dengan mengandalkan compiler dan sistem operasi untuk mengatasi masalah tersebut.
$o!t#are ini unik karena o"erhead deteksi potential problem deipindah dati run time ke compile
time, dan desainnya kompleksitasnya dipindah dari hard#are ke so!t#are. $o!t#are $ompiletime
umumnnya membuat pilihan konser!ati!, untuk peman!aatan yang tidak e!isien.
%ekanisme $ompiler-based coherencedapat menganalisa kode dan membedakan data
mana yang tidak baik untuk cache, dan meemberi tanda untuk yang lainnya. $istem operasi atau
hard#are akan menghindari data yang noncacheableuntuk di-cache-kan
Pendekatan yang paling sederhana adalah untuk mencegah >ariabel data yang terbagi dari
di-cache-kan. Ini terlalu sederhana, karena struktur >ariabel data yang terbagi mungkin secara
khusus digunakan dalam beberapa periode dan mungkin secara e!ekti! read-only di periode lain.
Ini terjadi dalam beberapa #aktu saat setidaknya satu proses memperbarui >ariabel dan
setidaknya proses lain mengakses >ariabel cache coherencetersebut.
Pendekatan yang lebih e!isien adalah menganalisa kode untuk membedakan periode
amaan untuk >ariabel yang terbagi.$ompilerkemudian memasukkan instruksi ke kode untuk
melaksanakan cache coherence saat periode kritis.Teknik angka telah dikembangkan untuk
melaksanakan analisis dan mengeluarkan hasilnya.
Hard/are S"lu!i"n
solusi*ard,are-based umumnya ditujukan untuk protocol cache coherence+ $olusi ini
menyediakan pengenalan dinamis saat run time kondisi potensi ketidakteraruran. arena
masalah ini hanya terjadi saat benar-benar muncul, ini lebih e!ekti! menggunakan cache,
meningkatkan per!orma so!t#are.Untuk tambahan, pendekatan ini transparan terhadapprogrammer dan compiler, mengurangi beban pengembangan so!t#are.
Pola hard#are berlainan dalam pengkhususannya.Termasuk dimana in!ormasi tentang
data disimpan, bagaimana in!ormasi tersebut disusun, dimana coherence berjalan, dan
pelaksanaan mekanismenya. $ecara umum, pola hard#are dibagi menjadi dua kategori& directory
protocol dansnoopy protocol+
Dire!"r r"!""l
7/25/2019 Parallel Processing AOK
26/36
/irectory protocol mengumpulkan dan mengatur in!ormasi tentang dimana line-nya
berlokasi.da kontrol sentral yang menjadi bagian dari kontrol memory utama.1an da!tar yang
tersimpan di memry utama.1a!tar tersebut mengandung in!ormasi global tentang isi dari
berbagai macam local cache. $aat sebuah controllercache meminta, kontrol sentral memeriksa
perintah yang dibutuhkan untuk data trans!er antara memory dan cache atau antara sesame
cache. Ini juga bertanggung ja#ab untuk menjaga in!ormasi agar tetap diperbarui.:amun, setiapaksi local dapat mempengaruhi linedan harus dilaporkan kepada kontrol central.
Controller menjaga in!ormasi tentang prosesor mana yang mempunyai salinan dari line
tersebut. $ebelum prosesor dapat menulis ke salinan local line, harus meminta akses khusus ke
linedari controller. $ebelum memberi akses khusus, controller mengirim pesan ke semua
prosesor dengancachesalinan line. memaksa setiap prosesor untuk mentidaksahkan salinan
tersebut.$etelah mendapatkan pengakuan dari setiap prosesor, controller memberi akses khusus
dari permintaan prosesor. $aat prosesor lain mencoba membaca lineyang diberi akses khusus
oleh prosesor lain, prosesor itu akan mengirim pemberitahuan yang salah ke controller.
Controller akan memberi perintah kepada prosesor untuk menahan line tersebut yang
membutuhkan prosesor untuk menulis kembali di memory utama.Line tersebut sekarang dapatdibagi untuk dibaca oleh prosesor yang asli dan prosesor yang meminta.
Pola da!tar terbebani dari kekurangan kemacetan sentral dan konunikasi o"erheadantara
bermacam-macam cache controller dan kontrol sentral.Tetapi ini sangat e!ekti! dalam sistem
skala besar yang melibatkan beberapa buspola hubungan rumit lainnya.
Sn"" r"!""ls
Snoopy protocols membagikan tanggung ja#ab untuk menjaga hubungan cachediantara
semua cache controllers pada multiprosesor. $ache harus mengenali kapan lineyang ditahan
terbagi dengan cache lain. $aat pembaruan dijalankan pada cache lineyang terbagi, harus
diumumkan kepada semua cachelainnya menggunakan mekanisma broadcasting. $etiap cache
controllers dapat melakukan snoop pada jaringan untuk mengamati pemberitahuan yang
disiarkan, dan bereaksi sepantasnya.
Snoop protocols idealnya cocok untuk multiprosesor bus-based. karena bus yang terbagi
menyediakan tanda sederhana untuk broaadcastingdansnooping. Tetapi karena salah satu tujuan
dari preggunaan cache local mencegah akses bus, harus diperhatikan bah#a penambahan
lalulintas bus dibutuhkan untuk broadcastingdansnooping bukan menghapuskan penambahan
dari penggunaan cachelocal.
1ua pendekatan dasar untuk snoopy protocol yaitu& ,rite in"alidate dan ,rite
update(,rite broadcast)+1engan protocol ,rite-in"alidate. dapat terjadi pembaca ganda tetapihanya satu pembaca di satu #aktu. %ulanya, lineterbagi dalam beberapa cacheyang ditujukan
untuk dibaca. $aat salah satu cache ingin menjalankan ,rite pada line. Pertama akan
mengeluarkan tanda mennyalahkan line tersebut pada cache lain. %embuat line khusus ke
,riting cache+ $aat linemenjadi khusus, prosesor yang memilikinya bisa membuat ,rite local
sampai prosesor lain meminta lineyang sama.
7/25/2019 Parallel Processing AOK
27/36
1engan protocol ,rite-update. dapat terjadi ,riter ganda sekaligus reader ganda.$aat
prosesor ingin memperbarui line yang terbagi, pembaruan tersebut dibagi ke semuanya, dan
cacheyang menyimpan linetersebut dapat memperbarui.
edua pendekatan ini tidak superior dalam segala keadaan. Per!ormanya tergantung dari
banyaknya cache local dan pola dari memory read dan ,rite. "eberapa sistem menerapkan
protocol adapti! yang bekerja pada kedua mekanisme ,rite-in"alidate dan ,rite-update+
Pada pendekatan ,rite-in"alidate umumnya digunakan pada multiprosesor sistem umum,
seperti Pentium6 dan Po#erPC. Ini menandakan keadaan setiap line cache(dua bit tambahan
pada cache tag)telah dirubah, khusus, terbagi, atau tidak sah. Untuk alas an ini, protocol ,rite-
in"alidatedinamakan %A$I.
7/25/2019 Parallel Processing AOK
28/36
The MESI Pr"!";"l
Untuk menyediakan konsistensi cachepada $%P, cachedata sering membantu protocol
%A$I. Untuk %A$I, cache data termasuk dua status bits per tanda, jadi setiap linebisa satu
dalam 6 keadaan&
M"di,ied:linepada cache telah dirubah (berbeda dari memory utama) dan tersedia hanya
pada cacheini.
E)lusi>e: line pada cachesama seperti pada memory utama dan tidak tersedia pada
cache lain.
Shared: linepada cachesama seperti pada memory utama dan bisa tersedia pada cache
lain.
In>alid: linepada cachetidak berisi data yang sah
?ambar 2F.2
7/25/2019 Parallel Processing AOK
29/36
?ambar 2F.4
"erdasarkan dari empat keadaan (gambar 2.2). %enyatakan diagram keadaan protocol
%A$I. $etiap line pada cache memiliki keadaan bit sendiri dan pelaksanaan sendiri. Padagambar 2.a menunjukkan transisi yang terjadi karena aksi dimulai oleh prosesor yang terikat
pada cachetersebut. ?ambar 2.b menunjukkan transisi yang terjadi karena kejadian snooppada
bus. ?ambar ini adalah diagram keadaan terpisah untukaksiprocessor-initiated dan bus-initiated
untuk memperjelas logika protocol %A$I.
apanpun itu $achememiliki satu keadaan.9ika kejadian selanjutnya dari prosesor yang
terikat, maka transisi diperintah seperti gambar 2.b.
Read Miss8 $aat read missterjadi pada local cache, prosesor menginisiasi read memory untuk
membaca linepada memory utama yang berisi alamat yang hilang. Prosesor memasukkan sinyal
ke bus yang akan memberi tanda kepada semua prosesorcache untuk melakukan snoop padatransaksi tersebbut. kan ada beberapakemungkinan keluaran&
9ika salah satu cache memiliki salinan orisinal (yang tak dirubah sejak pembaaan dari
memori) dari linepada keadaan khusus, akan mengembalikkan sinyal yang menandakan
untuk membagikan line+ Prosesor yang merespon kemudian mentransisikan keadaan
salinan dari yang khusus untuk dibagikan, dan prosesor yang berjalan membaca linedari
memory utama dan mentransisikan line dalam cachedari yang tidak sah untuk dibagikan.
7/25/2019 Parallel Processing AOK
30/36
9ika satu atau lebih cache memiliki salinan line orisinil pada keadaan terbagi, setiap
sinyal berbagi line. Prosesor yang berjalan membaca linedan mentransisikan linedalam
cachedari yang tidak sah untuk dibagikan.
9ika salah satu cache merubah salinan line, maka cachemem-blok read memory dan
menyediakan line untuk cache yang meminta le#at bus yang terbagi. $ache yang
merespon kemudian merubah line dari modified menjadi shared. Linedikirim menuju
yang cache meminta dan juga diterima dan diproses oleh kontrol memory, yang mana
menyimpan yang ter-blok di memory
9ika tidak ada cache lain memiliki salinan line(orisinil atau telah dirubah), kemudian
taka da sinyal kembalian. Prosesor yang berjalan membaca linedan mentransisikan line
dalam cachedari yang tidak sah ke khusus.
Read Hea!8 9ika read hit terjadi pada line yang sekarang berada pada lokal cache, prosesor
membaca barang yang diminta. 1isini tidak ada keadaan yang diubah& keadaan tetap modified,
shared. atau e0clusi"e+
.ri!e Miss8 $aat ,rite miss terjadi di lokal cache, prosesor yang menginisiasi read memory
untuk membaca linedari memory utama yang berisi alamat yang hilang. Untuk tujuan ini,
prosesor mengeluarkan sinyal pada bus yang berarti read-,ith-intent-to-modify(*IT%). $aat
line terisi, langsung bertanda modified. 1ua kemungkinan scenario mendahului pemuatan data
pada line+
Pertama, beberapa cacheyang lain mungkin memiliki salinan yang telah dirubah di line
ini (state/modi!y). "ila seperti ini, prosesor yang diberi peringatan memberi sinyal kepada
prosesor yang sedang berjalan bah#a prosesor lain telah merubah saline line+ Prosesor yang
sedang berjalan menyerahkan pada bus dan menunggu. Prosesor yang lain menambah akses bus,
menulis cache yang telah dirubah kembali ke memory utam, dan mentransisikan keadaan linecache menjadi tidak sah (karena proses yang menginisisasi sedang merubah line tersebut).
emudian, prosesor yang sedang berjalan akan kembali mengeluarkan sinyal ke *IT% bus
dan kemudian membaca linedari memory utama, merubah line pada cache, dan menandakan
linedalam keadaan modified+
$cenario kedua yaiut tidak ada cachelain yang merubah salinan lineyang diminta. 1alam
keadaan ini tidak ada sinyal yang dikembalikan, dan prosesor yang berjalan menjalankan proses
membaca line dan merubahnya. $ementara jika satu cache atau lebih memiliki salinan line
orisinil dalam keadaan terbagi, setiap cachementidaksahkan salinan line-nya, dan jika salahsatu
cache memiliki salinan line orisinil dalam keadaan khusus, itu mentidaksahkan salinan line-nya.
.ri!e Hi!8 $aat ,rite hitterjadi pada lineberada di cachelokal, e!eknya tergantung keadaan line
yang sekarang di lokal cache1
Shared: sebelum melakukan pembaruan, prosesor harus menambah kepemilikan line
khusus. Prosesor memberi sinyal kepada bus. $etiap prosesor yang memiliki salinan line
yang terbagi dalam cachementransisikan ke sector darisharedmenjdai in"alid. Prosesor
7/25/2019 Parallel Processing AOK
31/36
yang berjalan kemudian melakukan pembaruan dan mentransisikan salinan line dari
sharedmenjadi modified+
E)lusi>e: prosesor yang sudah memmilikiline kontrol khusus, akan dapat melakukan
pembaruan dan mentransisikan salinan linedari e0clusi"e menjadi medified+
M"di,ied: prosesor yang sudah memiliki line kontrol khusus dan memiliki line yang
bertanda modified, dapat langsung melakukan pembaruan
L1?L& ahe "nsis!en8$ache J adalah cache, dan setiap prosesor juga memiliki cache
J2yang tidak terhubung langsung ke bus dan oleh karena itu tidak dapat menggunakan protocol
snoop. 9adi beberapa poola dibutuhkan untuk menjaga integritas data dan melintasi semua cache
di #onfigurasi SMP
Tujuannya adalah untuk memperpanjang protocol %A$I (atau cache coherence protocol)
ke cache L2+ 9adi setiap linedi cacheJ2 termasuk bit dan menunjukkan keadaannya. 1asarnya,
memiliki tujuan seperti& untuk semua lineyang ada pada kedua cache J dan yang cocok dengancache J2, J2 keadaan line harus mengikuti keadaan lineJ. %aksud dari ini adalah untuk
meniru aturan ,rite-trough pada cache J2 dalam keadaan ini ,rite-trough ke cacheJ dan
tidak ke memory. turan *rite-troughJ2 merubah paksa line J2 keluar ke cacheJ dan karena
itu dapat dilihat oleh cacheJ. egunaan aturan ,rite-trough J2 mengharuskan isi J2 harus
menjadi bagian dari isi J.Ini menyatakan bah#a hubungancacheJ harus sama atau lebih
daripada hubungan J2. turan ,rite-troughJ2 digunakan I"% $05G $%P
9ika cache J2 memiliki aturan ,rite-bac#. hubungan antara sua cache J2akan lebih
kompleks. da beberapa pendekatan untuk menjaga koherensi.$ontoh, pendekatan yang
digunakan Pentium II.
&8 MULTITHREADING AND CHIP MULTIPROCESSOR
8ang paling penting dalam mengukur per!orma prosesor adalah menilai dari eksekusi
instruksi. 1apat dilambangkan sebagi
%IP$ rate / ! B IPC
1imana !adalah !rekuensi klok prosesor, dalam %@R, dan IPC (Instruction per cycle)
adalah angka rata-rata instruksi dieksekusi per putaran. arena itu para perancang mengejartujuan menambah per!orma dalam dua cara& menambah !rekuensi klok dan menambah jumlah
ekskusi instruksi atau jumlah instruksi selesai saat putaran prosesor. Para perancang sudah
menambah IPC menggunakan pipeline instruksi dan menggunakanmultiple parallel instruction
pipeline dalam arsitektur skala super. 1engan piplinedan desain multiple-pipeline, prinsipnya
adalah untuk memaksimalkan peman!aatan dari setiap tahap pipeline+Untuk menambah
throughput, para perancang menciptakan mekanisme yang lebih kompleks, seperti mengeksekusi
7/25/2019 Parallel Processing AOK
32/36
instruksi dalam urutan yang berbeda dari jalan yang terjadi pada alur instruksi dan memulai
eksekusi instruksi yang mungkin tidak diperlukan.Pendekatan ini dapat mencapai batas karena
kompleksitas dan konsumsi daya.
lternati>e lain, dimana memperbolehkan instruction-le"el parallelismtingkat atas tanpa
menambah kompleksitas sirkuit dan konsumsi daya, ini dinamakan multithreading.Pada
dasarnya, alur instruksi dibagi menjadi beberapa alur kecil bernama thread. seperti thread yang
bisa dieksekusi pada parallel.
da macam-macam pendekatan, yang memperbolehkan desain multithreading, melihat
sistem komersil dan sistem eksperimental yang luas.
I*lii! and E)lii! Mul!i!hreadin2
onsep penggunaan thread pada multithreading processor bisa saja sama dengan konsep
so!t#are threads pada multiprogrammed operating sistem. kan dijelaskan&
Pr"ess:process dibagi menjadi dua karaktesistik&
2. Res"ure Par!nershi: proses termasuk address spacemenahan proses image&
proses image mengumpulkan program, data, stack, dan atribut yang menjelaskan
proses. Jama-kelamaan proses memberikan control atau kepemilikan sumber,
seperti memory utama, I= channel, I= de>ices, dan !iles.
. Shedulin2@e)eu!i"n: eksekusi proses mengikuti jaluur eksekusi (tracepath)
le#at satu atau lebih program. 9adi proses memiliki keadaan eksekusi (running,
ready, dll) dan mengirim kesatuan prioritas yang terjad#al dan yang terkirim oleh
sistem operasi.
Pr"ess S/i!h: operasi yang mengganti dari prosessor ke prosessor yang lainnya,dengan menyimpan semua proses control data, register, dan semua in!ormasi.
Thread: dispatchable unit diantara proses, termasuk konteks prosesor (termasuk program
counter dan stack pointer) dan data area untuk stack.
9adi, thread menyangkut secheduling dan eBecution, dimana proses menyangkut kedua
schedulingeBecutin dan kepemilikan sumber. %ultiple thread diantara proses membagi sumber
yang sama. ini kenapa thread s#itch menghabiskan #aktu lebih sedikit daripada process s#itch.
=perasi sistem lama, seperti >ersi a#al U:IH tidak menunjang thread.ebanyakan operasi
sistem modern seperti JinuB, >ersi baru U:IH, dan *indo#s dapat menunjang threads.
Perbedaan terjadi antara user-le>el thread, dimana hanya terbuka untuk sistem operasi. eduanyabisa dire!erensikan sebagai thread eBplicit.
$emua prosesor komersial dan kebanyakan prosesor eksperimental sejauh ini telah
menggunakan multithreading eBplicit. $istem ini secara bersamaan mengeksekusi instruksi dari
eBplicit thread yang berbeda, dari instruksi interlea>ing dari threads yang berbeda pada pipeline
yang terbagi atau eksekusi parallel pada pipeline parallel. %ultithreading implicit mengacu pada
7/25/2019 Parallel Processing AOK
33/36
eksekusi multiple thread secara bersamaan dari program sekuensial. Thread implicit bisa
dijelaskan secara statis oleh compiler atau secara dinamis oleh hard#are.
Ar"ahes !" E)lii! Mul!i!hreadin2
1alam keadaan minimum, prosesor multithread harus menyediakan program counter
terpisah untuk setiap eksekusi thread untuk di eksekusi secara bersamaan. Perancang
membedakan dari jumlah dan tipe dari had#are tambahan yang digunakan untuk menunjang
teknik untuk mengoptimalkan eksekusi single-thread, termasuk branch prediction, register
renaming, dan superscalar techniMue. 8ang didapatkan dari thread-le>el parallelism, adalah dapat
menyediakan per!orma yang meningkat saat menyatu dengan instruction-le>el parallelism.
Terdapat empat prinsip multithreading
In!erlea>ed *ul!i!hreadin2: dapat dinamakan sebagai ,ine?2rained *ul!i!hreadin28
Prosesor bekerja dengan dua atau lebih konteks thread bersamaan, mengganti dari satu
thread ke thread yang lain dalam satu putaran clock. 9ika thread di block karenaketergantungan data atau inter>al memory, thread tersebut akan dile#atin dan thread siap
untuk di eksekusi
4l";ed Mul!i!hreadin2: dinamakan juga sebagai "arse?2rained *ul!i!hreadin28
Thread instruksi di eksekusi sampai selesai hingga terjadi penundaan, atau cache miss.
ejadian ini menstimulasi mengganti thread lain. Pendekatan ini e!ekti pada prosesor in-
orderyang akan stall si pipeline untuk penundaan.
Si*ul!ane"us Mul!i!hreadin2 al. $%T melibatkan eksekusi instruksi bersamaan dari thread yang berbeda, menggunakan
sumber eksekusi yang tereplika. %ultiprocessing chip juga dapat mengeksekusi instruksibersamaan dari trhead yang berbeda
7/25/2019 Parallel Processing AOK
34/36
?ambar 2.0
?ambar diatas menyatakan beberapa arsitektur pipeline melibatkan multithreading dan
kontras dengan yang tidak melibatkan multithreading. $etiap kolom horiRontal melambangkan
potensi mengeluarkan slot untuk eksekusi tunggal yang artinya lebar setiap kolom cocok untuk
jumlah maksimum instruksi yang bisa dikeluarkan dalam sekali putaran clock. 8ang >ertical
me#akili sekuen #aktu pada putaran clock. $lot kosong(gelap) me#akili slot eksekusi yang
tidak terpakai di satu pipeline.No-opditandai dengan :.
Tiga gambar pertama menunjukkan pendekatan prosesor sekalar yang berbeda&
Sin2le?!hreaded salar: ini adalah pipeline sederhana pada I$C sederhana dan
mesin CI$C, tanpa multithreading
In!erlea>ed Mul!i!hreaded Salar: ini adalah implementasi multithreading
termudah, dengan mens#itch dari satu thread ke thread yang lain saat setiap
7/25/2019 Parallel Processing AOK
35/36
putaran clock. Tahap pipeline dapat dijaga tetap sibuk, atau keluarkan sampai
sibuk. @ard#are harus dapat mens#itch dari satu konteks thread ke yang lain
diantara putaran.
4l";ed *ul!i!hreaded salar: disini, thread tunggal di eksekusi sampai yang di
blok terjadi hingga pipeline berhenti, saat prosesor mens#itch ke thread lain.
?ambar 2F.Fc menunjukkan #aktu melakukan s#itch thread di satu putaran. ?ambar
2F.Fb menunjukan s#itching thread terjadi pada putaran kosong. 9ika terjadi interlea>ed
multithreading, ini dianggap kalau disini tidak ada control atau ketergantungan data antara
thread, dengan menyederhanakan desain pipeline oleh karena itu harus memperbolehkan s#itch
thread tanpa penundaan. Tetapi, tergantung pada desain khusus dan implementasinya, block
multithreading membutuhkan putaran clock untuk melakukan s#itch thread, ditunjukkan pada
gambar 2F.F.*alaupun interlea>ing multithreading mena#arkan penggunaan prosesor yang lebih
baik, tapi mengorbankan per!orma single-thread. %ultiple thread bersaing untuk resource cache,
yang menaikkan kemungkinan cache miss untuk gi>en thread.
Jebih banyak peluang untuk eksekusi parallel jika prosesor dapat mengeluarkanmultiple instruction per putaran. ?ambar 2F.Fd sampai 2F.Fi menunjukkan jumlah macam
prosesor yang mempunyai hard#are untuk mengeluarkan empat instruksi per putaran. Untuk
semua kasus ini, hanya instruksi daari single thread yang dikeluarkan pada satu putaran.
lternati>e lain dijelaskan diba#ah&
Suersalar: ini adalah pendekatan superscalar dasar tanpa multithreading. Ini adalah
pendekatan yang paling kuat untuk membuktikan paralelisme diantara prosesor. Pada
saat putaran, tidak semua slot digunakan. $aat putaran ini, tidak semua instruksi
dikeluarkan ini lebih mengacu kepada hori'ontal loss. $aat putaran instruksi, tidak
ada slot keluaran ini adalah putaran saat tidak ada instruksi yang dikeluarkan
dinamakan sebagai "ertical loss In!erlea>e *ul!i!hreadin2 suersalar: selama putaran, banyak instruksi yang bisa
dikeluarkan dari sebuah thread. 1engan teknik ini, potensi penundaan karena men-
s#itch thread hilang. Tetapi jumlah instruksi yang keluar setiap putaran dibatasi
tergantung yang diberikan thread.
4l";ed Mul!i!hreaded Suersalar: instruksi hanya dari satu thread dan bisa
dikeluarkan saat cycle, dan memblok multithreading yang bekerja.
3er L"n2 Ins!ru!i"n ."rd
7/25/2019 Parallel Processing AOK
36/36
Si*ul!ane"us Mul!i!hreadin2: gambar 2F.Fj menunjukkan kemampuan sistem
mengeluarkan delapan instruksi bersamaan. 9ika satu thread memiliki tingkat tinggi
instruction-le>el parallelism, beberapa cycle akan dapat memenuhi semua horiRontal
slot. Pada cycle lain, instruksi dari dua atau lebih bisa dikeluarkan, jika thread akan
akti! cukup, biasanya memungkinkan untuk mengeluarkan semua jumlah instruksi
pada setiap cycle, memberikan e!ekti!itas tingkat tinggi
Chi Mul!ir"ess"r
top related