Jumat, 27 April 2012

Parallel Processing dan Cloud Computing

1.       Parallel Processing
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. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya.
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.


2.       Cloud computing
Komputasi awan (cloud computing) adalah gabungan pemanfaatan teknologi komputer dan pengembangan berbasis Internet. Awan (cloud) adalah metefora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, awan (cloud) dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu metoda komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan, sehingga pengguna dapat mengaksesnya lewat Internet tanpa mengetahui apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya. Menurut sebuah makalah tahun 2008 yang dipublikasi IEEE Internet Computing "Cloud Computing adalah suatu paradigma di mana informasi secara permanen tersimpan di server di internet dan tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor, monitor dan lain-lain."
Komputasi awan adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dan tren teknologi terbaru lain yang dikenal luas, dengan tema umum berupa ketergantungan terhadap Internet untuk memberikan kebutuhan komputasi pengguna. Sebagai contoh, Google Apps menyediakan aplikasi bisnis umum secara daring yang diakses melalui suatu penjelajah web dengan perangkat lunak dan data yang tersimpan di server. Komputasi awan saat ini merupakan trend teknologi terbaru, dan contoh bentuk pengembangan dari teknologi Cloud Computing ini adalah iCloud.
Karakteristik Cloud Computing
·         On-Demand Self-Services
Sebuah layanan cloud computing harus dapat dimanfaatkan oleh pengguna melalui  mekanisme swalayan dan langsung tersedia pada saat dibutuhkan. Campur tangan penyedia layanan adalah sangat minim. Jadi, apabila kita saat ini membutuhkan layanan aplikasi CRM (sesuai contoh di awal), maka kita harus dapat mendaftar secara swalayan dan layanan tersebut langsung tersedia saat itu juga.
·         Broad Network Access
Sebuah layanan cloud computing harus dapat diakses dari mana saja, kapan saja, dengan alat apa pun, asalkan kita terhubung ke jaringan layanan. Dalam contoh layanan aplikasi CRM di atas, selama kita terhubung ke jaringan Internet, saya harus dapat mengakses layanan tersebut, baik itu melalui laptop, desktop, warnet, handphone, tablet, dan perangkat lain.
·         Resource Pooling
Sebuah layanan cloud computing harus tersedia secara terpusat dan dapat membagi sumber daya secara efisien. Karena cloud computing digunakan bersama-sama oleh berbagai pelanggan, penyedia layanan harus dapat membagi beban secara efisien, sehingga sistem dapat dimanfaatkan secara maksimal.
·         Rapid Elasticity
Sebuah layanan cloud computing harus dapat menaikkan (atau menurunkan) kapasitas sesuai kebutuhan. Misalnya, apabila pegawai di kantor bertambah, maka kita harus dapat menambah user untuk aplikasi CRM tersebut dengan mudah. Begitu juga jika pegawai berkurang. Atau, apabila kita menempatkan sebuah website berita dalam jaringan cloud computing, maka apabila terjadi peningkatkan traffic karena ada berita penting, maka kapasitas harus dapat dinaikkan dengan cepat.
·         Measured Service
Sebuah layanan cloud computing harus disediakan secara terukur, karena nantinya akan digunakan dalam proses pembayaran. Harap diingat bahwa layanan  cloud computing dibayar sesuai penggunaan, sehingga harus terukur dengan baik.

3.   Penerapan Parallel Processing pada Cloud Computing
Penggunaan Komputer untuk menyelesaikan suatu permasalahan dalam berbagai bidang sekarang ini banyak dilakukan karena lebih  cepat dibandingkan penyelesaian secara manual. Oleh karena hal tersebut, perlu adanya peningkatan proses komputasi yang dapat ditempuh dengan 2 cara, yaitu:
- Peningkatan Kecepatan Hardware : peningkatan kecepatan prosesor komputer dengan menggunakan multiprosesor. Perubahan arsitektur komputer menjadi multiprosesor memang dapat mengerjakan banyak proses dalam 1 waktu, namun tidak dapat mempercapat kinerja proses. Hal ini dapat diatasi dengan peningkatan kecepatan software.
- Peningkatan Kecepatan Software : mencari suatu algoritma untuk mempercepat kinerja proses. Algoritma tersebut tidaklah mudah tuk ditemukan, namun berkat adanya komputer multiprosesor, hal tersebut dapat dirancang dengan memparalelkan proses komputasinya.
Komputer multiprosesor masih memerlukan biaya yang cukup besar sehingga menyebabkan beberapa algoritma paralel sulit diimplementasikan. Untuk mengatasinya dirancanglah mesin paralel semuMesin paralel semu ini sebenarnya adalah jaringan komputer yang dikendalikan oleh sebuah perangkat lunak yang mampu mengatur pengalokasian proses-proses komputasi kepada processor-processor yang tersebar dalam  jaringan tersebut.
Ketika pengguna mengakses awan untuk sebuah website populer, banyak hal yang bisa terjadi. Pengguna IP misalnya dapat digunakan untuk menetapkan dimana pengguna berada ( geolocation ). DNS jasa kemudian dapat mengarahkan pengguna ke sebuah cluster server yang dekat dengan pengguna sehingga situs bisa diakses dengan cepat dan dalam bahasa lokal mereka. Pengguna tidak login ke server, tetapi mereka login ke layanan mereka menggunakan dengan mendapatkan id sesi dan / atau cookie yang disimpan dalam mereka browser . Apa yang user lihat pada browser biasanya akan datang dari sekelompok web server. Webservers menjalankan perangkat lunak yang menyajikan pengguna dengan interface yang digunakan untuk mengumpulkan perintah atau instruksi dari pengguna (klik, mengetik, dll upload) Perintah-perintah ini kemudian diinterpretasikan oleh webservers atau diproses oleh server aplikasi. Informasi kemudian disimpan pada atau diambil dari database server atau file server dan pengguna kemudian disajikan dengan halaman diperbarui. Data di beberapa server disinkronisasikan di seluruh dunia untuk akses global cepat dan juga untuk mencegah kehilangan data.
Dengan menggunakan pemrosesan parallel ketika mengakses awan, ha tersebut dapat mempersingkat waktu eksekusi suatu program dengan cara membagi suatu program menjadi bagian yang lebih kecil agar dapat dikerjakan pada masing-masing prosesor secara bersamaan. Performa dalam pemrosesan paralel diukur dari beberapa banyak peningkatan kecepatan yang diperoleh dalam menggunakan teknik paralel. Pada proses kerja pemrosesan paralel yaitu membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan masalah. Sistem yang akan dibangun tidak akan menggunakan komputer yang didedikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Maksudnya sistem ini akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerja sama untuk menyelesaikan suatu masalah.
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 slvae 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.
Komputasi paralel merupakan salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer juga secara bersamaan. Pada komputasi paralel dibutuhkan saat kapasitas yang diperlukan sangat besar untuk memproses komputasi yang banyak. Di samping itu pemakai harus membuat pemrograman paralel untuk dapat merealisasikan komputasi. Pemrograman paralel memiki tujuan utama yaitu untuk meningkatkan performa komputasi. Oleh karena itu semakin banyak hal yang bisa dilakukan secara bersamaan dalam waktu yang sama, semakin banyak pekerjaan yang bisa diselesaikan.

Sumber :
-          http://styaaje.wordpress.com/

Tidak ada komentar:

Posting Komentar