Pages

Senin, 30 Juni 2014

Paralel Processing


Pengertian
Pemrosesan paralel (parallel processing) adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat programberjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek,seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yangdiperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karenatuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel inidiperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkandengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itudiperlukan aneka perangkat lunak pendukung yang biasa disebut sebagaimiddleware yangberperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnyapemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.

Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupunbanyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paraleladalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secarabersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
·         algoritma
·         bahasa pemrograman
·         compiler


Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih darisatu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software.

Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
Contoh struktur dari parallel processing sbb :



Aristektur Komputer Parallel
1.      Komputer SISD (Single Instruction stream-Single Data stream)
2.      Komputer SIMD (Single Instruction stream-Multiple Data stream)
3.      Komputer MISD (Multiple Instruction stream-Single Data stream)
4.      Komputer MIMD (Multiple Instruction stream-Multiple Data stream)

TUJUAN PARALLEL PROCESSING
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.
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:
·         SIMD
·         SIMD
·         MISD
·         MIMD

SISD
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
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
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
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.

Perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:



Penyelesaian Sebuah Masalah pada Komputasi Tunggal





Penyelesaian Sebuah Masalah pada Komputasi Paralel

Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif 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 perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu 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 kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Komputasi paralel membutuhkan :
· algoritma
· bahasa pemrograman
· compiler

Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (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 pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.

* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.

Hubungan antara Komputasi Modern dengan Paralel Processing
Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.


Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja

Komputasi Modern

Komputasi berasal dari kata “compute” yang mempunyai arti “menghitung” dalam bahasa Indonesia. Komputasi berasal dari perhitungan-perhitungan yang dilakukan manusia, ilmu berhitung sudah ada dari zaman dahulu dan telah berkembang dari hanya menggunakan alat bantu jari-jari tangan hingga menggunakan bantuan alat yang lebih canggih yang bernama komputer.
Komputasi modern terdiri dari dua kata yaitu komputasi dan modern. Komputasi dapat diartikan sebagai cara untuk menemukan solusi dari suatu permasalahan menggunakan data-data yang sudah ada dengan bantuan suatu algoritma. Komputasi merupakan subbagian dari matematika. Komputasi dapat disebut modern karena menggunakan alat bantu yang canggih saat menyelesaikan masalah. Oleh karena itu, dapat disimpulkan komputasi modern adalah perhitungan untuk menyelesaikan suatu permasalahan dengan bantuan komputer canggih yang dimana pada komputer tersebut terdapat algoritma untuk menyelesaikan permasalahan dengan efektif dan efisien. Komputasi modern digunakan untuk memecahkan masalah antara lain untuk menghitung akurasi (bit, floating point), kecepatan (dalam satuanHz), problem volume besar (paralel), modeling (NN dan GA) dan kompleksitas (menggunakan Teori Big O).
Komputer yang merupakan contoh alat komputasi modern ini pertama kali digagasi oleh John Von Neumann. Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya.Von Neumann menjadi seorang konsultan pada pengembangan komputer ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori. Konsep dasar arsitektur komputer modern sendiri ialah konsep sebuah sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory.



Karakteristik Komputasi Modern
Karakteristik komputasi modern ada 3 macam, yaitu :
  1. Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
  2. Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
  3. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.

Manfaat Komputasi Modern
Banyak manfaat yang terjadi dengan adanya komputasi modern, diantaranya adalah dengan perhitungan-perhitungan kompleks yang bisa mencapai ribuan data dapat dengan mudah dikerjakan manuisa dengan bantuan komputer. Hal ini tentunya dapat mengurangi waktu, biaya dan lain sebagainya. Lahirnya komputer dapat membantu pekerjaan manusia, dalam berbagai bidang. Misalnya pada bidang kedokteran, pertanian, astronomi, teknologi, ekonomi dan lainnya. Bahkan komputer sekarang telah ada dalam hampir semua bidang di dunia ini.

Sejarah Komputasi Modern
Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.

Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.

Awal mula tercetusnya komputasi modern adalah dari pemikiran seorang yang bernama John Von Neumann (1903-1957). Ilmuwan yang lahir dengan nama Neumann Janos meletakan dasar-dasar komputasi modern. Sebagai konsultan pada pengembangan ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori
Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Mungkin Selama bertahun-tahun yang lalu, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer. Itulah yang berkembang dari bidang komputasi modern. Penggunaan komputer sebagai media utama dalam komputasi sudah semakin meluas. Pada intinya, perkembangan komputasi modern/komputasi saat ini lebih menerapkan pada proses pemecahan suatu masalah perhitungan dengan menggunakan algortima yang dilakukan pada sebuah komputer.
Komputasi modern digunakan untuk memecahkan masalah yang ada, contoh perhitungan komputasi modern yaitu seperti: Akurasi (bit, floating point), Kecepatan (dalam satuanHz), Problem volume besar (paralel), Modeling (NN dan GA), Kompleksitas (menggunakan Teori Bog O). Secara pribadi, penerapan komputasi modern saat ini hanya terbatas pada pemecahan masalah algoritma. Bagaimana mencari sebuah kompleksitas, membandingkan kompleksitas untuk beberapa bahasa pemrograman, dst. Kesimpulannya, komputasi modern memiliki banyak sekali manfaat dan perkembangannya pun cukup cepat dalam segala bidang.

Jenis-jenis Komputasi Modern
Contoh alat yang dapat membantu manusia dalam konsep komputasi modern adalah:
1.      Mobile computing, merupakan kemajuan teknologi komputer yang dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan  perubahan dari sisi manusia maupun alat. Contoh dari mobile computing adalah GPS, smart phone, dan sebagainya.

2.      Grid Computing, dengan memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif. Keuntungan dari komputasi grid adalah dua kali lipat: pertama, kekuatan pemrosesan yang tidak digunakan secara efektif digunakan, memaksimalkan sumber daya yang tersedia dan, kedua, waktu yang dibutuhkan untuk menyelesaikan pekerjaan besar berkurang secara signifikan.

3.       Cloud computing, merupakan perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. Semua yang terlihat adalah sebuah antarmuka, yang menerima masukan dan memberikan output. Bagaimana output ini dihitung benar-benar tersembunyi. Sebagai contoh, seorang sopir mobil tahu bahwa roda kemudi dengan memutar arah mobil yang mereka ingin pergi; atau yang menekan pedal gas akan menyebabkan mobil untuk mempercepat. Sopir biasanya tidak peduli tentang bagaimana arah dari roda kemudi dan pedal gas tersebut diterjemahkan ke dalam gerakan yang sebenarnya dari mobil. Oleh karena itu, rincian ini diabstraksikan dari sopir.

4.      Komputer Biometric, adalah komputer yang bekerja dengan pengukuran statistic analisa data biologi yang mengacu pada teknologi untuk menganalisa karakteristik suatu tubuh (individu). Biometric menggambarkan pendeteksian dan pengklasifikasian dari atribut fisik. Terdapat banyak teknik biometric yang berbeda, diantaranya: Pembacaan sidik jari / telapak tangan, Geometri tangan, Pembacaan retina / iris, Pengenalan suara dan Dinamika tanda tangan.

Demikianlah komputasi modern bermula. Alat-alat komputasi modern pun terus berkembang mengikuti perkembangan zaman. Komputer sebagai alat yang tidak bisa dipisahkan dari kehidupan manusia memegang peranan yang sagat penting. Dengan komputer, manusia dapat melakukan berbagai hal, dapat membantu setiap pekerjaan manusia dalam mengolah data dan informasi. Komputasi modern merupakan suatu inovasi baru dalam bidang komputerisasi yang membuat komputer dapat bekerja lebih dari sekedar alat hitung (fungsi awal komputer), karena dengan metode komputasi modern ini komputer dapat mengerjakan pekerjaan yang lebih kompleks.