Kamis, 08 Juni 2017

Komputasi Paralel

Komputasi Paralel
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. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Parallelism and Distributed Concept

disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paraleladalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitaskingadalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupunbeberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisamelakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistemoperasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralelsudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor ataukomputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahuiterlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan,yaitu:SIMDSIMDMISDMIMDSISDYang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakanarsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karenaitu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnyamerupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yangmenggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

SIMD Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processordengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kitaingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun datayang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hinggaurutan 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).MISDYang merupakan singkatan dari Multiple Instruction, Single Data.

MISD menggunakan banyak processordengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal inimerupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama padacontoh 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 yangdigunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputeryang menggunakan model MISD.MIMDYang merupakan singkatan dari Multiple Instruction, Multiple Data.

MIMD menggunakan banyakprocessor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda.Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk modelSIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/CompaqAlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkanpada gambar di bawah ini:Penyelesaian Sebuah Masalah pada Komputasi TunggalPenyelesaian Sebuah Masalah pada Komputasi ParalelDari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebihefektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlumenggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghematwaktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar.

Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecilatau sedikit lebih efektif jika kita menggunakan komputasi tunggal.Komputasi paralel membutuhkan :· algoritma· bahasa pemrograman· compilerPemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusiperintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupunbanyak (prosesor ganda dengan mesin paralel) CPU.

Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi.* Message Passing Interface (MPI)MPI adalah sebuah standard pemrograman yang memungkinkan pemrogramuntuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.MPI menyediakan fungsi-fungsi untuk menukarkanantar pesan. Kegunaan MPI yang lain adalah1. menulis kode paralel secara portable2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidakbegitu cocok dengan model data paralel.* Message Passing Interface (MPI)MPI adalah sebuah standard pemrograman yang memungkinkan pemrogramuntuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.MPI menyediakan fungsi-fungsi untuk menukarkanantar pesan.

Konsep Paralel

Banyak perkembangan-perkembangan baru dalam arsitektur komputer yang didasarkan pada konseppemrosesan paralel. Pemrosesan paralel dalam sebuah komputer dapat didefinisikan sebagaipelaksanaan instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaankejadian-kejadian (1) dalam interval waktu yang sama, (2) dalam waktu yang bersamaan atau (3) dalamrentang waktu yang saling tumpang tindih.Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetapakan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnyakonsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatanpemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia,perhitungan aerodinamika dan lain-lain.Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasapemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itusendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karenamasalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangattinggi.



Arsitektur Paralel

Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa tingkatan, seperti berikut:1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fase-fase suatu pekerjaan. Hal ini menjadi prinsipdasar dari multiprogramming.2. Tingkat prosedur: antara prosedur-prosedur dan di dalam loop. Hal ini harus tercakup sebagai halyang penting bagi suatu bahasa.3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi, yaitu fetch, decode dan eksekusi suatu

instruksi.4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit aritmatika. Salah satu contohnya adalah adderparalel.Telah banyak usaha untuk mengklasifikasikan perancangan arsitektur komputer paralel. Namun tidakada satupun yang mampu memisahkan semua jenis perancangan menjadi kelompok-kelompok yangberbeda. Skema klasifikasi yang paling umum digunakan adalah taksonomi Flynn. Kita akan membahaspula dua skema lainnya yaitu: Shore dan Feng.

sumber : 
https://www.academia.edu/