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 untuk mencapai tujuan yang sama. 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.
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. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.
Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah. Adapun tipe-tipe Paralelisme adalah sebagai berikut :
1. Result Paralelisme
Result Paralelisme yang sering disebut sebagai Embarrassingly Parallel atau Perfect Paralel adalah tipe paralelisme dimana komputasinya dapat dibagi menjadi beberapa tugas independen yang mempunyai struktur sama. Data struktur suatu tugas dibagi menjadi beberapa bagian yang berstruktur sama. Contoh tugas yang bisa diselesaikan dengan Result Parallelism adalah Simulasi Montecarlo.
2. Specialist Paralelisme
Cara kerja Specialist Parallelisme adalah dengan mengerjakan beberapa tugas secara bersamaan pada prosesor yang berbeda . Setiap komputer mengerjakan tugas tertentu. Contohnya penggunaanya adalah pada simulasi pabrik kimia, satu prosesor mensimulasikan proses sebelum reaksi kimia, satu prosesor mensimulasikan reaksi pada tahap awal, dan prosesor lainnya mensimulasikan proses penyulingan hasil, dan seterusnya.
3. Agenda Paralelisme
Tipe paralelisme ini mempunyai daftar yang harus dikerjakan oleh sistem komputer . Semua komputer yang terdapat pada sistem dapat mengakses daftar tersebut. Pada Model MW (Manager Worker) terdapat pengelompokan komputer menjadi dua yaitu :
a) Manager : bertugas memulai perhitungan, memonitor kemajuan tugas, melayani permintaan worker. User berkomunikasi dengan sistem komputer melalui komputer yang berfungsi sebagai manager ini.
b) Worker : mengerjakan tugas-tugas yang diberikan oleh manager. Kerja komputer ini dimulai setelah ada perintah dari manager dan diakhiri oleh manager.
Pesan Terdistribusi dan Lingkungan Pemrograman (Distributed Messaging and Programming Enviroment) hubungannya dengan pemrosesan paralel ialah pesan sebagai sesuatu ( objek ) pada pemrosesan itu sendiri sehingga kita harus mendeskripsikan pesan ( message ) itu .
Messages adalah urutan bytes yang dikirimkan antar proses. Pengirim dan penerima harus mempunyai kesepakatan mengenai struktur pesan sehingga isi pesan dapat diterjemahkan dengan benar. Pada prinsipnya cara pengiriman pesan adalah sederhana. Proses A mengirim data buffer sebagai sebuah pesan ke proses B. Pada saat bersamaan proses B menunggu datangnya pesan dari proses A. Ketika pesan tersebut maka proses B akan men-copy pesan tersebut di memori lokalnya. Adapun Metode Pengiriman pesan (message passing) terdapat beberapa metode dalam pengiriman pesan yaitu :
a. Synchronous Message Passing
Cara pengiriman menggunakan metode ini ialah 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.
b. 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. Selain berdasarkan metode pengiriman pesan diatas, pengiriman pesan (message passing) dibedakan berdasarkan jumlah penerima pesan yaitu: Point to Point dan Broadcast. Perbedaan mendasar keduanya adalah jumlah penerima yang menerima pesan. Pada Point to Point penerimanya tunggal sedangkan pada broadcast jumlah penerimanya banyak.
PVM dan MPI Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan Antarmuka Pengiriman Pesan (MPI) adalah kumpulan library yang memungkinkan kita untuk menulis program pengiriman pesan paralel menggunakan bahasa pemrograman C dan FORTRAN agar bisa berjalan pada sistem paralel.
Kemampuan sistem paralel tergantung dari kemampuan pemrogram untuk membuat aplikasi terdistribusi ketika dijalankan pada sistem paralel. Jika node slave mempunyai prosessor lebih dari satu maka pemrogram harus memperhitungkan kemungkinan paralelisme 2 level: Paralelisme di dalam slave node (intra-node parallelism) dan paralelisme antar slave node (inter-node parallelism). Inter-node parallelism menggunakan shared memory dalam node sehingga tidak melakukan pertukaran data secara explicit. Sedangkan Inter-node parallelism melakukan pertukaran data lewat media yang menghubungkan antara node slave yang ada.
Terdapat tiga metode untuk mengimplementasikan Inter-node parallelism yaitu :
a. Dengan cara membuat protokol komunikasi ad hoc level rendah. Contohnya dengan menggunakan socket interface.
b. Dengan menggunakan distributed communication library. Contohnya dengan menggunakan Message Passing Interface (MPI) library
c. Dengan memanfaatkan layer software dengan maksud untuk menyembunyikan interconnect dari programmer.
Setelah kita mengenal , komponen – komponen dan tujuan dari pemrosesan paralel tersebut, kita beralih ke sistem pemrosesan paralel dimana, sistem pemrosesan paralel adalah sekumpulan komputer terhubung dan bekerjasama sebagai satu resource komputer yang terintegrasi untuk menyelesaikan suatu tujuan. Sebuah sistem paralel setidaknya terdiri dari Message Passing Interface (MPI) dan sebuah pengatur beban kerja (job scheduler) . Message Passing Interface bertugas untuk mengirim data antar komputer di dalam sistem paralel (biasanya disebut sebagai node atau host). Job scheduler seperti yang tersirat dari namanya bertugas menerima tugas dari user dan menjadwalkan tugas tersebut pada beberapa node didalam sistem parallel sesuai kebutuhan. Gambar A memperlihatkan lapisan-lapisan pada arsitektur sistem paralel (LinuxSistem paralels.com).
Gambar A memberikan detail lebih mengenai arsitektur sistem paralel seperti yang terlihat pada Gambar B.
Gambar A. Arsitektur Sistem paralel
Gambar B. Detail Arsitektur Sistem paralel
MPI (Message Passing Interface) adalah sebuah mekanisme mengiriman instruksi dan data antara dua proses komputasi yang berbeda yang berada pada komputer berbeda pada sistem sistem paralel. Paket-paket yang mempunyai spesifikasi kebutuhan MPI telah banyak beredar di Internet dan telah dilengkapi dengan LAM/MPI [5] dan MPICH [6]. Paket-paket ini telah dilengkapi dengan fungsi-fungsi yang menggunakan library C dan Fortran. Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero . Pada makalah ini digunakan MPITB dengan pertimbangan fungsionalitas dan kelengkapannya disamping fakta bahwa MPITB dan GNU Octave adalah bebas digunakan bahkan untuk keperluan komersial. Hal ini juga berarti bahwa source code-nya banyak beredar dan dapat dimodifikasi sesuai kebutuhan.
Aplikasi Pemrosesan Paralel
Desain Jaringan
Secara garis besar, mekanisme pemberian layanan publik bagi user di luar jaringan adalah sebagai berikut:
a) User diluar jaringan diatas melakukan suatu request tugas, misalnya tracetest_example.m
b) Request diterima oleh Load balancer/Linux box untuk kemudian diolah dan dibagi menjadi proses yang relatif lebih kecil
c) Proses yang telah berukuran kecil tersebut diolah oleh masing-masing node/slave untuk diselesaikan.
d) Setelah selesai melakukan tugasnya, node/slave mengirimkan kembali hasilnya ke Load balancer untuk kemudian disusun kembali.
e) Hasilnya dikirimkan kembali ke user.
Untuk menerangkan bagaimana jaringan sistem paralel bekerja , kami mengambil contoh dari salah satu penelitian kecil , dalam penelitian ini hanya akan digunakan lima buah komputer karena adanya keterbatasan resource yang ada. Sistem sistem paralel ini tidak terhubung ke Internet. Diasumsikan bahwa user menggunakan komputer Server/Master. Jikapun ada user yang berada dalam jaringan internet menginginkan untuk menggunakan sistem sistem paralel ini, maka ia dapat mengakses komputer server/master menggunakan program aplikasi Telnet/ssh.
Gambar dibawah ini, memperlihatkan skema jaringan sistem paralel.
Gambar C. Skema jaringan sistem paralel
Kesimpulan
Pemrosesan paralel dipergunakan untuk memudahkan user dalam berinteraksi dari satu sistem ke sistem yang lain, dengan tujuan untuk membagi beban yang terdapat pada suatu sistem sehingga satu masalah dipecahkan secara bersama-sama. Dan keberhasilan pemrosesan paralel itu dapat dilihat dari kecepatan (speed up) yang diperoleh dari teknik paralel yang digunakan. Tipe – tipe paralelisme terbagi tiga yaitu : (1) Result Paralelisme, (2) Specialist Paralelisme , dan (3) Agenda Paralelisme. Dari pemrosesan paralel itu , tentunya ada suatu tindakan dari proses tersebut yang dikenal sebagai sistem pemrosesan paralel. Kemudian, aplikasi dari pemrosesan paralel itu salah satunya untuk desain jaringan.
Daftar Pustaka
Creel, Michael (2004), “ParallelKnoppix - Create a Linux Cluster for MPI Parallel Processing in 15 Minutes”, http://pareto.uab.es/mcreel/Parallel Knoppix/
Creel, Michael, 2004, Parallel-Knoppix –Rapid Creation of a Linux Cluster for MPI Parallel Processing Using Non-Dedicated Computers, http://pareto.uab.es/mcreel/Parallel Knoppix/
Fernández Baldomero, J. (2004), “LAM/MPI Parallel Computing under GNU Octave”, http://atc.ugr.es/javier-bin/mpitb.
Hidayat, Syarif. 2006.Pemrosesan Paralel menggunakan Komputer Heterogen.
Kant, Chander, 2002, Introduction to Clusters, http://LinuxCluster.com.
LAM team (2004), “LAM/MPI Parallel Computing”, http://www.lam-mpi.org/
Gropp, W., E. Lusk, N. Doss and A. Skjellum (1996), "A high-performance, portable implementation of the MPI message passing interface standard", Parallel Computing, p.22,p.789-828
Mateti, Prabhaker, 2005, “Cluster Computing with Linux”.
Wikipedia ( Ensiklopedi Bebas Berbahasa Indonesia ) http://id.wikipedia.org/wiki/Pemrograman_paralel .
Terima kasih telah membaca materi kami, jika anda menyalin materi kami harap menampilkan Blog kami sebagai referensi.
3 comments:
sangat membantu tugas kuliah kami
Senang bisa membantu anda :)
mau nanya dong, ada resume tentang pemograman data paralel, berikut contoh programnya, thank you before.
Post a Comment
Tim Gudang Materi mengharapkan komentar anda sebagai kritik dan saran untuk kami .. Hubungi kami jika anda mengalami kesulitan !