You are on page 1of 14

Multiprocessor

Kelompok 4 1. 2. 3. Dian Parikesit (1111600092) Asep Wahyudi (1111600084) Hasto Gesang (1111600100)

Dosen: Drs. Eko Polosoro, M.Eng, M.M

MAGISTER KOMPUTER UNIVERSITAS BUDI LUHUR JAKARTA

Multiprocessor Multiprocessor
Yaitu sistem komputer dengan dua atau lebih CPU identik yang membagi akses secara penuh kepada common RAM ( shared Memory Multiprocessor ). Multiprocessing adalah istilah teknologi informasi dalam bahasa inggris yang merujuk kepada : Dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor prosesor tersebut. Kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, meski istilah multiprograming lebih sesuai untuk konsep ini.

Multiprocessing sering diimplementasikan dalam perangkat keras ( dengan menggunakan beberapa CPU sekaligus ), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu diantaranya, atau tidak sama sekali.

Gambar diatas mengilustrasikan perilaku dari multiprocessor yang digunakan untuk multiprogramming. Beberapa proses terpisah dialokasikan didalam memori. Ruang alamat proses terdiri dari halamanhalaman sehingga hanya sebagian saja dari proses tersebut yang berada dalam memori pada satu waktu. Hal ini memungkinkan banyak proses dapat aktif dalam sistem.

Jenis-jenis multiprosesor Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni:

Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam o Asymmetric Multiprocessing (ASMP) o Symmetric Multiprocessing (SMP) o Non-uniform memory access (NUMA) multiprocessing o Clustering Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihat Taksonomi Flynn) o SISD (Single Instruction on Single Data Stream) o SIMD (Single Instruction on Multiple Data Stream) o MISD (Multiple Instruction on Single Data Stream) o MIMD (Multiple Instruction on Multiple Data Stream) Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam o Loosely coupled o Thightly coupled

Ada juga yag membedakan sistem multiprosesor menjadi : SMP, prosesor vektor, prosesor paralel, dan MMP. SMP (symetric multiprocessor) merupakan sistem multiprosesor dengan masing-masing prosesor bekerja secara-sendiri-sendiri (tidak saling bergantung). Pada sistem ini, sebuah CPU bisa jadi sedang menangani suatu proses misalkan sedang mengolah lembar kerja dan CPU lain sedang melakukan proses grafis.

Prosesor vektor menyatakan suatu sistem multiprosesor dengan masing-masing prosesor dapat bekerja secara serentak dalam menangani proses perhitungan vektor. Prosesor paralel menyatakan sistem yang memiliki sejumlah prosesor yang memilki karakteristik sebagai berikut: o Tidak ada prosesor yang bertindak sebagai prosesor utama. o Sejumlah prosesor tidak selalu mengerjakan operasi yang sama dalam waktu yang sama.

Dengan menggunakan prosesor paralel, bagian-bagian sebuah program dapat dikerjakan oleh prosesorprosesor yang berbeda. Penanganan aktifitas prosesor ini ditangani oleh program. Prosesor jenis ini biasa digunakan pada superkomputer.

Prosesor paralel masif (Massively Parallel Processor atau MPP) adalah sistem yang mengandung ratusan atau bahkan ribuan prosesor yang dapat saling berinteraksi dengan pendekatan jaringan syaraf tiruan. Lihat gambar dibawah, prosesor seperti ini sudah diterapkan dalam bisnis salah satu penggunaannya adalah Wal-Mart.

a.

Shared memory model 3 model shared memory multiprosesor Uniform memory access ( UMA ) 1. Terlihat bahwa memori dibagi secara merata ke semua prosesor. 2. Semua prosesor mempunyai waktu akses yang sama ke semua word memori. 3. Setiap prosesor menggunakan private cache. 4. Dan untuk periperal juga dishare dengan cara yang sama. 5. UMA cocok untuk general purpose dan aplikasi time sharing oleh multiple user. 6. UMA dapat digunakan untuk meningkatkan kecepatan eksekusi dari program tunggal yang besar pada aplikasi time-critical. Nonuniform Memory Access ( NUMA ) NUMA multiprosessor adalah sebuah sistem shared memory dimana waktu aksesnya bervariasi ke lokasi memori word.

1. Share memory yang secara fisik didistribusikan kesemua prosesor disebut lokal memori, dan kumpulan dari lokal memori membentuk ruang alamat global yang dapat diakses oleh semua prosesor. 2. NUMA dapat mengakses lokal memori jauh lebih cepat dengan local proc, sedangkan akses ke memori yang jauh diberikan ke prosesor lain yang kapasitasnya lebih besar untuk ditambah delay melalui interkoneksi jaringan ( BBN Butterfly ). 3. Disamping distribusi memori, secara umum shared memory dapat ditambahkan ke multiprosesor 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 memori yang jauh (hierarchical Cluster Model / Chedar System ).

Cache Only Memory Architecture (COMA)

1. COMA adalah multiprosesor yang hanya menggunakan cache memory. 2. COMA dapat ditemukan pada NUMA machines, dimana pendistribusian main memori dirubah ke cache. Disini tidak ada hirarki memori pada setiap node komputer. 3. Semua cache berasal dari ruang alamat global. Akses ke cache yang jauh dibantu oleh direktor cache yang didistribusikan. Tergantung kepada interkoneksi jaringan yang digunakan, terkadang direktori digunakan untuk membantu penempatan kopian dari blok blok cache. 4. Penempatan awal data tidak penting karena data akan menempati tempat dimana data tersebut akan digunakan. Yang membediakan dari ketiga model diatas bagaimana memori dan periperal device dishared atau didistribusikan. Keunggulan Multiprosesor - Peningkatan throughput, karena lebih banyak proses / thread yang berjalan dalam satu waktu sekaligus ( jika proses yang antri di ready queue sedikit ). Perlu diingat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. Yang meningkat ialah jumlah pekerjaan yang bisa dilakukan dalam waktu tertentu. - Economy of scale ( ekonomis ), ekonomis dalam devices yang dibagi bersama sama. Prosesor terdapat dalam satu komputer dan dapat membagi periperal ( ekonomis ) seperti disk atau catu daya listrik. - Peningkatan kehandalan ( realibilitas ), jika satu prosesor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang terganggu diambil alih dengan prosesor lain. Hal ini dikenal dengan istilah Gracefull Degradation. Sistemnya sendiri dikenal bersifat fault tolerant atau failoft system.

Multiprosesor Symetric multiprocessing

SMP Arsitektur
Kernel Linux 2.0 adalah kernel Linux pertama yang stabil untuk mendukung perangkat keras symmetric multiprocessor (SMP). Proses mau pun thread yang berbeda dapat dieksekusi secara paralel dengan processor yang berbeda. Tapi bagaimana pun juga untuk menjaga kelangsungan kebutuhan sinkronisasi

yang tidak dapat di-preemptive dari kernel, penerapan SMP ini menerapkan aturan dimana hanya satu processor yang dapat dieksekusi dengan kode mode kernel pada suatu saat. SMP menggunakan kernel spinlock tunggal untuk menjalankan aturan ini. Spinlock ini tidak memunculkan permasalahan untuk pekerjaan yang banyak menghabiskan waktu untuk menunggu proses komputasi, tapi untuk pekerjaan yang melibatkan banyak aktifitas kernel, spinlock dapat menjadi sangat mengkhawatirkan. Sebuah proyek yang besar dalam pengembangan kernel Linux 2.1 adalah untuk menciptakan penerapan SMP yang lebih masuk akal, dengan membagi kernel spinlock tunggal menjadi banyak kunci yang masing-masing melindungi terhadap masuknya kembali sebagian kecil data struktur kernel. Dengan menggunakan teknik ini, pengembangan kernel yang terbaru mengizinkan banyak processor untuk dieksekusi oleh kode mode kernel secara bersamaan. Hal ini berguna untuk melihat di mana SMP arsitektur muat ke dalam kategori keseluruhan paralel prosesor. Sebuah taksonomi yang menyoroti sistem prosesor paralel pertama kali diperkenalkan oleh Flynn [FLYN72] masih merupakan cara paling umum mengkategorikan sistem tersebut. Flynn diusulkan dengan kategori sebagai berikut sistem komputer: 1. instruksi tunggal data tunggal (SISD) stream: Sebuah prosesor tunggal menjalankan sebuah aliran instruksi untuk beroperasi pada data yang tersimpan dalam memori tunggal.

2. Single instruksi multiple data (SIMD) stream: Sebuah mesin tunggal instruksi mengontrol eksekusi simultan dari sejumlah elemen pengolahan pada dasar berbaris. Setiap elemen pemrosesan memiliki memori data yang terkait, sehingga bahwa setiap instruksi dieksekusi pada satu set data yang berbeda oleh berbagai prosesor. Array prosesor vektor dan termasuk dalam kategori ini.

3. Beberapa instruksi data tunggal (MISD) stream: Sebuah urutan data ditransmisikan ke satu set prosesor, masing-masing melaksanakan instruksi yang berbeda urutan. Struktur ini tidak pernah dilaksanakan.

4. Beberapa instruksi multiple data (MIMD) stream: Satu set prosesor secara simultan mengeksekusi urutan instruksi yang berbeda pada set data yang berbeda.

Skema SMP

Penjadwalan Symmetric Multiprocessing


Penjadwalan SMP ( Symmetric multiprocessing) adalah pendekatan kedua untuk penjadwalan prosesor jamak. Dimana setiap prosesor menjadwalkan dirinya sendiri ( self scheduling). Semua proses mungkin berada pada antrian ready yang biasa, atau mungkin setiap prosesor memiliki antrian ready tersendiri. Bagaimanapun juga, penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih suatu proses untuk dieksekusi. Jika suatu sistem prosesor jamak mencoba untuk mengakses dan meng- update suatu struktur data, penjadwal dari prosesor-prosesor tersebut harus diprogram dengan hati-hati; kita harus yakin bahwa dua prosesor tidak memilih proses yang sama dan proses tersebut tidak hilang dari antrian. Secara virtual, semua sistem operasi modern mendukung SMP, termasuk Windows XP, Windows 2000, Solaris, Linux, dan Mac OS X.

Load Balancing
Dalam sistem SMP, sangat penting untuk menjaga keseimbangan workload antara semua prosesor untuk memaksimalkan keuntungan memiliki multiprocessor. Jika tidak, mungkin satu atau lebih prosesor idle disaat prosesor lain harus bekerja keras dengan workload yang tinggi. Load balancing adalah usaha untuk menjaga workload terdistribusi sama rata untuk semua prosesor dalam sistem SMP. Perlu diperhatikan bahwa load balancing hanya perlu dilakukan pada sistem dimana setiap prosesor memiliki antrian tersendiri( private queue) untuk proses-proses yang berstatus ready. Pada sistem dengan antrian yang biasa ( common queue), load balancing tidak diperlukan karena sekali prosesor menjadi idle, prosesor tersebut segera mengerjakan proses yang dapat dilaksanakan dari antrian biasa tersebut. Perlu juga diperhatikan bahwa pada sebagian besar sistem operasi kontemporer mendukung SMP, jadi setiap prosesor bisa memiliki private queue. Ada dua jenis load balancing, yakni:

Push migration, pada kondisi ini ada suatu task spesifik yang secara berkala memeriksa load dari tiap-tiap prosesor. Jika terdapat ketidakseimbangan, maka dilakukan perataan dengan memindahkan( pushing) proses dari yang kelebihan muatan ke prosesor yang idle atau yang memiliki muatan lebih sedikit. Pull migration, kondisi ini terjadi saat prosesor yang idle menarik( pulling) proses yang sedang menunggu dari prosesor yang sibuk.

Kedua pendekatan tersebut tidak harus mutually exclusive dan dalam kenyataannya sering diimplementasikan secara paralel pada sistem load-balancing. Keuntungan dari affinity berlawanan dengan keuntungan dari load balancing, yaitu keuntungan menjaga suatu proses berjalan pada satu prosesor yang sama dimana proses dapat memanfaatkan data yang sudah ada pada memori cache prosesor tersebut berkebalikan dengan keuntungan menarik atau memindahkan proses dari satu prosesor ke prosesor lain. Dalam kasus system engineering, tidak ada aturan tetap keuntungan yang mana yang lebih baik. Walaupun pada beberapa sistem, prosesor idle selalu menarik proses dari prosesor non-idle sedangkan pada sistem yang lain, proses dipindahkan hanya jika terjadi ketidakseimbangan yang besar antara prosesor.

Symetric Multithreading
Sistem SMP mengizinkan beberapa thread untuk berjalan secara bersamaan dengan menyediakan banyak physical processor. Ada sebuah strategi alternatif yang lebih cenderung untuk menyediakan logical processor daripada physical processor. Strategi ini dikenal sebagai SMT ( Symetric Multithreading). SMT juga biasa disebut teknologi hyperthreading dalam prosesor intel. Ide dari SMT adalah untuk menciptakan banyak logical processor dalam suatu physical processor yang sama dan mempresentasikan beberapa prosesor kepada sistem operasi. Setiap logical processor mempunyai state arsitekturnya sendiri yang mencangkup general purpose dan machine state register. Lebih jauh lagi, setiap logical prosesor bertanggung jawab pada penanganan interupsinya sendiri, yang berarti bahwa interupsi cenderung dikirimkan ke logical processor dan ditangani oleh logical processor bukan physical processor. Dengan kata lain, setiap logical processor men- share resource dari physical processor-nya, seperti chace dan bus.

Komputer MIMD

Berdasarkan cara berkomunikasinya, komputer paralel MIMD dibagi menjadi 2 kelompok besar, yaitu : 1. komputer paralel dengan memori bersama dan komputer paralel memori tersebar. Pada kelompok pertama, data dan program disimpan pada suatu memori bersama dan masing-masing processor (dalam suatu komputer paralel) saling berkomunikasi melalui memori tersebut. 2. Pada SMP, beberapa prosessor berbagi memori yang sama melalui suatu bus dengan waktu akses ke berbagai lokasi memori relatif sama untuk masing-masing processor. Sedangkan pada NUMA, waktu akses memori untuk lokasi yang tidak sama dapat berbeda. 3. Cluster dibentuk dari kumpulan beberapa komputer dengan processor tunggal atau beberapa SMP yang saling dihubungkan dan dapat bekerja bersama-sama sebagai komputer tunggal.

Ukuran performa atau kinerja multiprocessor yang paling penting adalah speedup (Sp) , yaitu perbandingan waktu yang diperlukan untuk menjalankan suatu aplikasi dengan processor tunggal (dari suatu komputer paralel ) dengan waktu untuk menjalankan aplikasi yang sama dengan processor (p).

Effisiensi dari suatu algoritma paralel yang dijalankan pada sistem multiprocessor dengan p processor adalah : Speedup/ p; dengan p = jumlah processor.

Tipe Speedup
Tujuan sistem yang scalable adalah speedup linier (S=P), namun sulit diwujudkan karena: Tidak semua bagian dalam program dapat diparalelkan. Adanya overhead yang disebabkan oleh inisialisasi, sinkronisasi, komunikasi, koherensi cache, dan ketidakseimbangan beban. (S : sppedup dan P : jumlah processor)

Dalam terminologi sistem komputer multiprosessor , hukum Amdahl dinyatakan sebagai berikut :

Dengan, Smax : speedup maksimum yang dapat dicapai oleh komputer paralel dengan p prosesor. P : jumlah prosesor F : bagian / fraksi dari operasi komputasi yang dapat dikerjakan secara parallel ( dalam terminology waktu ), dimana 0 <= f <= 1 Hukum ini mengasumsikan bahwa tiap prosessor melakukan sejumlah komputasi paralel yang setara. Untuk mencapai speedup yang baik, fraksi komputasi yang dijalankan secara sequensial harus sangat kecil. Tidak akan terlalu bermanfaat menggunakan sistem multiprosessor atau komputer paralel untuk mengerjakan aplikasi yang memiliki bagian sequensial yang besar.

Time sharing adalah inovasi yang memungkinkan komputer-komputer besar memproses banyak tugas secara simultan, dengan memberikan potongan waktu pada masing-masing tugas, dan beralih dari satu tugas ke tugas lainnya dengan cepat. Varian dari multiprogramming, dimana tiap pemakai mempunyai satu terminal on-line dengan pemroses hanya memberi layanan pada pemakai yang aktif secara bergantian dengan cepat. Pemakai akan merasa dilayani terus menerus, padahal sebenarnya digilir persatuan waktu yang cukup singkat. Apabila waktu yang diperlukan untuk mengeksekusi suatu program aplikasi dengan suatu algoritma sequensial dengan prosessor tunggal yang merupakan bagian dari suatu komputer paralel adalah 8 detik dan waktu yang diperlukan untuk mengeksekusi program yang sama dengan komputer paralel yang terdiri dari 5 prosessor adalah 2 detik, berapakah speedup (S) dan effisiensinya ? Jawab : Speedup (S) = T1 / T4 = 8 / 2 = 4 Effisiensi = S / p = 4 / 5 = 0.8 Dimisalkan suatu aplikasi tertentu dijalankan pada komputer paralel dengan 64 prosessor dan 70% komputasi dari aplikasi tersebut dapat dikerjakan secara paralel. Berapakah speedup maksimum yang dapat diharapkan dari sistem tersebut dan bandingkan apabila aplikasi yang sama dijalankan pada komputer paralel dengan 16 prosessor. Jawab : S max (64 ) = 64 / (64 0,7.63) = 3,22 S max (16) = 16 / (16 0,7.15) = 2.91 Ternyata perubahan speedup jauh lebih kecil dibanding peningkatan jumlah prosessor yang digunakan. Dimisalkan suatu aplikasi tertentu dijalankan pada komputer paralel dengan 64 prosessor dan 70% komputasi dari aplikasi tersebut dapat dikerjakan secara paralel. Berapakah speedup maksimum yang dapat diharapkan dari sistem tersebut dan bandingkan apabila aplikasi yang sama dijalankan pada komputer paralel dengan 16 prosessor. Jawab : S max (64 ) = 64 / (64 0,7.63) = 3,22 S max (16) = 16 / (16 0,7.15) = 2.91 Ternyata perubahan speedup jauh lebih kecil dibanding peningkatan jumlah prosessor yang digunakan. A. MULTI CORE-PROCESSOR Multi core-prosesor adalah sebuah prosesor yang memiliki banyak inti. Inti adalah bagian dari prosesor yang melakukan read dan execute instruction. Keuntungan Multi core-prosesor

Meningkatkan performa dari operasi cache snoop (bus snooping). Bus snooping adalah suatu teknik yang digunakan dalam sistem pembagian memori terdistribusi dan multiprocessor yang ditujukan untuk mendapatkan koherensi pada cache. Hal ini dikarenakan sinyal antara CPU yang berbeda mengalir pada jarak yang lebih dekat, sehingga kekuatan sinyal hanya berkurang sedikit. Sinyal dengan kualitas baik ini memungkinkan lebih banyak data yang dikirimkan dalam satu periode waktu dan tidak perlu sering di- repeat. Secara fisik, desain CPU multicore menggunakan ruang yang lebih kecil pada PCB ( Printed Circuit Board) dibanding dengan desain multichip SMP

Prosesor dual-core menggunakan sumber daya lebih kecil dibanding sepasang prosesor dualcore Desain multicore memiliki resiko design error yang lebih rendah daripada desain single-core

Kerugian Multi core-prosesor Dalam hal sistem operasi, butuh penyesuaian kepada software yang ada untuk memaksimalkan kegunaan dari sumberdaya komputasi yang disediakan oleh prosesor multicore. Kemampuan prosesor multicore untuk meningkatkan performa aplikasi juga bergantung pada penggunaan banyaknya thread dalam aplikasi tersebut. Dari sudut pandang arsitektur, pemanfaatan daerah permukaan silikon dari desain single-core lebih baik daripada desain multicore. Pengembangan chip multicore membuat produksinya menjadi menurun karena semakin sulitnya pengaturan suhu pada chip yang padat. Time Sharing Time sharing adalah inovasi yang memungkinkan komputer-komputer besar memproses banyak tugas secara simultan, dengan memberikan potongan waktu pada masing-masing tugas, dan beralih dari satu tugas ke tugas lainnya dengan cepat. Varian dari multiprogramming, dimana tiap pemakai mempunyai satu terminal on-line dengan pemroses hanya memberi layanan pada pemakai yang aktif secara bergantian dengan cepat. Pemakai akan merasa dilayaniterus menerus, padahal sebenarnya digilir persatuan waktu yang cukup singkat.

DAFTAR PUSTAKA Stalling, William. Computer Organization And Architecture Designingfor Performance. 2010. Prentice Hall Website: http://en.wikipedia.org/wiki/Flynn%27s_taxonomy http://www.cs.toronto.edu/~demke/469F.06/lectures.shtml http://www.cs.vu.nl/~ast/books/book_software.html

You might also like