parallel processing aok

Upload: canggih-ardiansyah

Post on 26-Feb-2018

274 views

Category:

Documents


0 download

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/Pixel
  • 7/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=1
  • 7/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/Video
  • 7/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