Anda di halaman 1dari 5

Pemerosesan Paralel

Sistem Terdistribusi
Teknik Informatika Universitas Nasional Jakarta
Author: Ishak Samuel Kejne Papuara Ick¹

Abstrak
Pemrosesan paralel adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah
program secara simultan. Tujuan pemrosesan paralel adalah untuk meningkatkan performa
komputasi. Bahasa pemrograman yang digunakan adalah Message Passing Interface dan
Parallel Virtual Machine. Terdapat 4 model komputasi yang digunakan, yaitu: SISD, SIMD,
MISD, MIMD.

Latar Belakang
Komputer adalah perangkat elektronik yang memanipulasi informasi atau data. Komputer
mampu menyimpan, mengambil, dan mengolah data. Agar komputer berjalan dengan baik
dibutuhkan perangkat keras dan perangkat lunak. CPU merupakan perangkat keras computer
yang berfungsi untuk memproses dan mengolah perintah dan logika yang dimasukkan untuk
menunjang pengoperasian komputer. Apabila sebuah komputer menggunakan CPU lebih dari
satu maka dinamakan Pemrosesan paralel atau parallel processing. Sedangkan apa itu
pemerosesan pararel? Dengan artikel ini kami harap para pembaca dapat memahami
pengertian, tujuan, model, dan bahasa pemrograman yang digunakan dari pemrosesan pararel.

Pembahasan
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk
menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program
berjalan lebih cepat karena semakin banyak CPU yang digunakan.

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat
kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di
industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin
banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak
pekerjaan yang bisa diselesaikan.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur 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 middleware yang berperan untuk mengatur distribusi
pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat
pemrograman paralel untuk merealisasikan komputasi.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan
eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan
tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan
komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan
dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual
Machine).

PVM atau Parallel Virtual Machine adalah perangkat lunak yang membuat sekumpulan
komputer menjadi tampak seperti sebuah sistem komputer virtual yang besar. Sekumpulan
komputer yang akan terlibat dalam proses penyelesaian masalah harus didefinisikan trelebih
dahulu, agar dapat menjalankan fungsinya. Komputer-komputer yang terlibat dalam komputasi
bisa homogen, dengan platform yang sama, maupun heterogen, dengan platform yang berbeda,
asal di antara mereka bisa saling berkomunikasi. PVM dapat menangani semua pengiriman
proses, konversi data, dan penjadwalan task secara message passing untuk sistem yang tidak
kompatibel sekalipun.

Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang diberi nama pvmd.
Pvmd diaktifkan di setiap komputer yang akan membentuk mesin virtual. Bagian kedua adalah
pustaka rutin antarmuka PVM yang berisi koleksi perintah-perintah primitif untuk
mengoperasikan proses-proses pustaka tersebut. Pustaka rutin ini digunakan dalam program
aplikasi paralel yang ditulis dengan bahasa pemrograman C, C++, atau FORTRAN 77.

Kedua pustaka tersebut telah tersedia pada saat instalasi. PVM memberi fasilitas untuk membuat
sejumlah proses yang tidak tergantung dari jumlah prosesor. Setiap proses diidentifikasi
menggunakan kode (task ID) dan dipetakan ke prosesor secara otomatis, atau dapat juga diatur
oleh programmer.

Program PVM umumnya diatur dengan model master-slave, yaitu satu proses yang dieksekusi
pertama kali menjadi master dan mengaktifkan semua client dengan memanggil pvm_spawn.
Rutin tersebut otomatis akan menjalankan semua proses dalam sistem PVM. Cara lain untuk
menjalankan proses adalah dengan memanggil rutin pvm_mytid yang mengembalikan kode task
ID dari proses tersebut. Sebelum keluar dari sistem PVM, semua proses client harus dimatikan
dari PVM dengan memanggil rutin pvm_exit.

Komunikasi antar proses di dalam sistem PVM dilakukan secara message passing menggunakan
perintah rutin PVM seperti pvm_send dan pvm_recv. Semua rutin pengiriman pesan dilakukan
secara asinkron, sedangkan semua rutin penerimaan pesan dapat dilakukan secara sinkron
maupun asinkron. Ada tiga tahap dalam mengirim pesan dalam PVM yaitu:
1. Menginisialisasi buffer pengiriman dengan rutin pvm_initsend.
2. Mengemas isi pesan ke dalam buffer dengan memanggil rutin pvm_pk*.
3. Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau pvm_mcast.
PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam sistem PVM, seperti
pencetakan pesan kesalahan secara otomatis, tingkat pencarian kesalahan (debugging level), dan
metode pengaturan jalur komunikasi. Contoh yang paling umum dari penggunaan pvm_setopt
adalah memungkinkan jalur komunikasi langsung antar task dalam PVM.

MPI atau Message Passing Interface adalah bahasa pemrograman dengan basis petukaran pesan.
Dalam implementasinya MPI menggunakan fungsi-fungsi pustaka yang dapat dipanggil dari
program C, C++, atau Fortran. Hampir sama dengan PVM, MPI juga portable untuk berbagai
arsitektur. Salah satu implementasi terbaru pada saat ini yang berjalan pada lingkungan Windows
adalah MPICH.

Ditinjau dari sisi aplikasi, MPI hanya dapat digunakan dengan model single program multiple
data (SPMD), sedangkan PVM dapat digunakan dengan model SPMD maupun multiple program
multiple data (MPMD). Model SPMD secara fisik ditunjukkan dengan program master dan slave
yang menyatu, sedangkan MPMD ditunjukkan dengan program master dan slave yang terpisah,
sehingga slave dapat mengerjakan tugas yang berbeda-beda antara satu node dengan node
lainnya.

MPI adalah bahasa-independen protokol komunikasi yang digunakan untuk program paralel
komputer. Keduanya baik point-to-point dan kolektif komunikasi didukungnya. MPI "adalah
pesan-melewati pemrogram aplikasi antarmuka, bersama-sama dengan semantik protokol dan
spesifikasi untuk fitur-fiturnya bagaimana harus berlaku dalam setiap pelaksanaannya." MPI
tujuan kinerja tinggi, skalabilitas, dan portabilitas. MPI tetap dominan model yang digunakan
dalam komputasi kinerja tinggi hari ini. MPI tidak disetujui oleh badan standar utama meskipun
demikian, hal itu telah menjadi de facto standar untuk komunikasi di antara proses-proses yang
model program paralel berjalan pada sistem memori terdistribusi.

Meskipun demikian, program-program MPI secara teratur dijalankan pada komputer memori
bersama. Walaupun MPI termasuk dalam lapisan 5 dan yang lebih tinggi dari OSI Reference
Model, implementasi dapat mencakup sebagian besar lapisan model referensi, dengan soket dan
TCP yang digunakan pada lapisan transport. Kebanyakan implementasi MPI terdiri dari
serangkaian rutinitas tertentu (yakni, sebuah API) callable dari Fortran, C, C + + atau Java dan
dari bahasa apa pun mampu berinteraksi dengan routine libraries.

MPI sering dibandingkan dengan PVM, yang merupakan lingkungan dan didistribusikan populer
lewat pesan sistem yang dikembangkan pada tahun 1989, dan yang merupakan salah satu sistem
yang termotivasi kebutuhan standar sistem lewat pesan paralel. Memori bersama pemrograman
threaded model (seperti pthreads dan OpenMP) dan pesan lewat pemrograman (MPI / PVM)
dapat dianggap sebagai pelengkap pendekatan pemrograman, dan kadang-kadang dapat dilihat
digunakan bersama-sama dalam aplikasi di mana arsitektur setelan ini, misalnya di server dengan
beberapa besar bersama memori node.

Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian
multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara
bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan
bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses
penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas
secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi
paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak
menggunakan arsitektur Von Neumann.

Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1
processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus
mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi
yang digunakan, yaitu: SISD, SIMD, MISD, MIMD.

SISD merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang
menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1
processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal.
Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa
processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM
360, CDC 7600, Cray 1 dan PDP 1.

SIMD merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak
processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda.
Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan
kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah
yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan
/ urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan
40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang
menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking
Machine CM-2 dan Cell Processor (GPU).

MISD merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak
processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data
yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa
menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang
berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama
mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya
berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model
MISD.

MIMD merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan
banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data
yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan
komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah
IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM
BG/L.
Daftar Pustaka

https://dokumen.tips/documents/makalah-arkom-paralel-processing.html
http://rikaayuputrik.blogspot.com/2017/05/pararel-processing.html
https://www.scribd.com/doc/32982265/Parallel-Processing

Anda mungkin juga menyukai