Anggota
Kelompok:
Alberto Juan
Pablo (58412279)
Denny Bayu
Listiawan (51412846)
Eka Mahlida
(52412410)
Muhammad Gigih
Wicaksono (54412960)
Pemrosesan Paralel adalah komputasi dua atau lebih tugas pada waktu
bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas
tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada.
Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program dengan
cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat
dikerjakan pada masing-masing prosesor secara bersamaan. Suatu program yang
yang dieksekusi oleh n prosesor diharapkan dapat mempersingkat waktu eksekusi n
kali lebih cepat. Salah satu komputer yang menggunakan metode pemrosesan
paralel adalah SMP (Single Multi Processor). Sebuah sistem paralel setidaknya
terdiri dari Message Passing Interface (MPI) dan sebuah pengatur beban kerja
(job scheduler).
Pada bagian komputasi parallel ini akan
dibahas tentang Message Passing dan OpenMP.
Pembahasan Jurnal:
Algoritma genetika sekuensial untuk menyelesaikan Container Loading Problem bekerja
hanya dengan menggunakan satu processor saja
meskipun dijalankan pada system multicore.
Tujuan dari penelitian ini adalah untuk mengoptimalkan kinerja system multicore. Untuk mengoptimalkan kinerja
system multicore diperlukan
adanya paralelisasi algoritma genetika untuk menyelesaikan Container Loading Problem.
Dalam penelitian ini paralelisasi yang digunakan adalah paralelisasi
shared memory menggunakan OpenMP.
Paralelisasi dalam OpenMP dilakukan melalui penyisipan pragma OMP paralel. Dari
algoritma genetika serial Container
Loading Problem akan diparalelisasi menggunakan OpenMP menjadi
algoritma genetika parallel Container
Loading Problem. Selanjutnya akan dilakukan pengujian waktu
eksekusi algoritma dan perhitungan speedup.
Hasil dari penelitian ini berupa hasil pengujian kinerja
algoritma parallel yang menunjukkan bahwa waktu komputasialgoritma
paralel lebih kecil dari algoritma sekuensial sebelum diparalelisasi
menggunakan OpenMP. Waktukomputasi yang lebih kecil ini menyatakan efisiensi
kinerja algoritma paralel yang lebih baik dari algoritmasekuensial. Peningkatan
efisiensi ini juga dapat diidentifikasi dari Speedup paralelisasi yang semakin besar. Kesimpulan diperoleh
dari penelitian ini adalah bahwa paralelisasi terhadap algoritma genetika untuk
menyelesaikan Container Loading
Problem akan meningkatkan efisiensi waktu komputasi melalui pemanfaatan sistem
multicore.
Message Passing
Massage Passing merupkan suatu
teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada
system. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang
digunakan dalam komputasi paralel, pemrograman-berorientasi objek, dan
komunikasi interprocess. Dalam model ini, proses atau benda dapat mengirim dan
menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang
kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan
sinkronisasi. Paradigma Message passing yaitu :
1.
Banyak contoh dari paradigma sekuensial
dipertimbangkan bersama-sama.
2.Programmer membayangkan beberapa prosesor,
masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada
setiap prosesor.
3.
Proses berkomunikasi dengan mengirimkan pesan satu
sama lain.
Terdapat
beberapa metode dalam pengiriman pesan yaitu :
·
Synchronous
Message Passing
Pengirim menunggu untuk mengirim pesan
sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada buffering.
Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri.
·
Ansynchronous
Message Passing
Pengirim akan mengirim pesan kapanpun
dia mau. Pengirim tidak peduli ketika penerima belum siap untuk menerima pesan.
Oleh karena itu diperlukan buffering untuk menampung pesan sementara sampai
penerima siap menerima pesan. Selain itu pengirim dapat pesan untuk dirinya
sendiri.
OpenMP (Open Multiprocessing)
OpenMP adalah Application Programing Interface (API) yang
mendukung pemrograman multiprosesing shared memory dalam bahasa C/C++ dan fortran
pada berbagai arsitektur dan sistem operasi diantaranya: Solaris, AIX,
HP-UX,GNU/Linux, Mac OS X, dan Windows.
OpenMP adalah model portabel dan skalabel yang memberikan interface sederhana
dan fleksibel bagi programer shared memory dalam membangun aplikasi
paralel. Program multithread dapat ditulis dalam berbagai cara. Beberapa
diantaranya memungkinkan untuk melakukan interaksi yang kompleks antar thread. OpenMP
mencoba untuk memberikan kemudahan pemrograman serta membantu dalam menghindari
kesalahan program, melalui pendekatan terstruktur. Pendekatan ini dikenal
sebagai model pemrograman fork-join.
OpenMP bekerja berdasarkan model shared memory, maka secara
default data dibagi diantara thread-thread dan
dapat terlihat dari setiap thread.
Terkadang program akan membutuhkan variabel dengan nilai thread spesifik. Jika setiap thread memiliki variabel
duplikat akan sangat berpotensi memiliki nilai yang berbeda-beda pada setiap variabel
duplikat tersebut.
Sinkronisasi (pengkoordinasian) aksi dari thread adalah sesuatu yang
sangat penting untuk menjamin data yang harus dibagi dan untuk mencegah
terjadinya data race condition.
Secara default OpenMP telah menyediakan mekanisme untuk menunggu thread dalam suatu tim thread sehingga semua thread menyelesaikan tugasnya
dalam region, kemudian dapat
melanjutkan ke proses selanjutnya. Mekanisme ini dikenal sebagai barrier.