Parallel Processing
(Sistem Terdistribusi)
1
Parallel Processing
• Penggunaan lebih dari satu CPU (Processor) untuk menjalankan sebuah program secara simultan.
• Tujuan Utama
Untuk meningkatkan kinerja / performa komputasi
2
Komputasi Paralel
Salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Komputasi Paralel memerlukan:
• Algoritma
• Bahasa Pemrograman
• Compiler
3
Pemrograman Paralel
Teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersamaan baik dalam komputer dengan satu (prosesortunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU.
4
Bahasa yang digunakan dalam Pemrograman Parallel:
1. MPI (Message Passing Interface)
2. PVM (Parallel Virtual Machine)
5
MPI (Message Passing Interface)
• Sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
• Suatu standar protokol yang digunakan untuk pemrograman paralel dan terdistribusi.
• Proses pertukaran pesan atau data antar proses adalah dengan mengirimkan pesan melalui media komunikasi.
• Model ini juga dapat diimplementasikan pada bermacam-macam platform, seperti shared-memory.
6
Kegunaan MPI
• Menyediakan fungsi-fungsi untuk menukar pesan.
• Menulis kode paralel secara portable.
• Mendapatkan performa yang tinggi dalam pemrograman paralel.
• Menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel
7
PVM (Parallel Virtual Machine)
• PVM adalah alat perangkat lunak untuk jaringan paralel komputer. Ini dirancang untuk memungkinkan jaringan mesin Unix dan / atau Windows yang heterogen untuk digunakan sebagai prosesor paralel terdistribusi tunggal.
• Dengan demikian masalah komputasi yang besar dapat diselesaikan dengan biaya yang lebih efektif dengan menggunakan daya agregat dan memori banyak komputer.
8
• Perangkat lunak ini sangat portabel; kode sumber, yang tersedia gratis melalui netlib, telah dikompilasi dalam segala hal mulai dari laptop hingga Crays. (https://www.csm.ornl.gov/pvm/)
• PVM memungkinkan pengguna untuk mengeksploitasi perangkat keras komputer yang ada untuk memecahkan masalah yang jauh lebih besar dengan biaya tambahan minimal.
• Banyak situs di seluruh dunia menggunakan PVM untuk memecahkan masalah ilmiah, industri, dan medis yang penting selain penggunaan PVM sebagai alat pendidikan untuk mengajarkan pemrograman paralel.
• Dengan puluhan ribu pengguna, PVM telah menjadi standar de facto untuk komputasi terdistribusi di seluruh dunia.
9
Organisasi Multiple Prosesor terdiri atas:
• Single instruction, single data stream - SISD
• Single instruction, multiple data stream - SIMD
• Multiple instruction, single data stream - MISD
• Multiple instruction, multiple data stream- MIMD
10
Taksonomi dari Arsitektur Prosesor Paralel (Flynn’s Taxonomy)
11
12
Single Instruction, Single Data Stream – SISD
Semua instruksi dikerjakan terurut satu demi satu. Pada umumnya komputer terdiri atas satu buah pemroses (single processor).
• Prosesor tunggal (Single processor)
• Aliran instruksi tunggal (Single instruction stream)
• Data disimpan dalam memori tunggal (Data stored in single memory.
• Uni Processor
• Contoh: UNIVAC1, IBM 360, CDC 7600 , Cray 1, PDP 1
13
Single instruction, multiple data stream – SIMD
Terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama
• Instruksi mesin tunggal (Single machine instruction )
• Eksekusi kendali yang simultan (Controls simultaneous execution)
• Terdapat sejumlah elemen pemroses
• Setiap elemen pemroses memiliki hubungan dengan memori data
• Setiap instruksi yang dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda.
• Vector dan array processors
• Contoh: ILLIAC IV, Cray Y-MP, MasPar, Thingking Machine CM-2, Cray X-MP, Cell Processor (GPU)
14
Multiple instruction, single data stream – MISD
Memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama
• Data yang berurutan
• Ditransmisikan oleh kumpulan prosesor
• Setiap prosesor mengeksekusi urutan instruksi yang berbeda
• Tidak pernah diimplementasikan
15
Multiple instruction, multiple data stream- MIMD
Terdapat interaksi diantara n pemroses, bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan loosely coupled jika tingkat interaksi antara pemroses rendah
• Terdapat kumpulan prosesor
• Secara simultan mengeksekusi urutan instruksi yang berbeda
• Terdiri dari kumpulan data yang berbeda/tidak sama
• Contohnya adalah sistem SMPs, clusters dan NUMA
• Cohtoh: IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3, IBM BG/L
16
17
Komputasi Tunggal dan Komputasi Paralel
18