A. Parallel Concept
Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa resources (komputer) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar (di industri keuangan, bioinformatika, dll) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.
Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah / operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing). Tujuan utama dari pemrograman 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 yang anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua. Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik 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.
B. Perkembangan Komputasi Paralel Pada Masa Kini
Komputasi paralel pada masa kini dapat diimplementasikan pada komputer-komputer rumah (Home User). Karena saat ini komputer-komputer sudah memiliki lebih dari 1 core, sehingga dapat diimplementasikan dengan mudah. Akan tetapi penggunaan CPU pada komputasi paralel dirasa kurang memiliki performance yang optimal, sehingga para developer dari NVIDIA mengembangkan hardware yang diberi nama GPU (Graphical Processing Unit) pada tahun 1999, GPU memiliki performance yang jauh lebih baik daripada CPU karena memiliki Core (Inti) yang lebih banyak daripada CPU, 1 inti dapat memiliki banyak thread (Benang), sehingga program dapat berjalan dengan optimal.
NVIDIA juga mengembangkan sebuah software yang dapat digunakan bersamaan dengan GPU NVIDIA, software tersebut diberi nama CUDA (Compute Unified Device Architecture). CUDA digunakan untuk mengendalikan GPU sehingga dapat berjalan dengan optimal dan dikendalikan dengan mudah. NVIDIA memiliki 3 arsitektur GPU yang dapat digunakan untuk komputasi paralel, arsitektur tersebut adalah :
• NVIDIA Tesla Architecture
• NVIDIA Fermi Architecture
• NVIDIA Kepler Architecture
Arsitektur yang pertama kali diproduksi secara massal oleh NVIDIA adalah Tesla. Lalu selanjutnya dioptimalkan dengan Fermi, dan yang saat ini paling banyak digunakan adalah Kepler.
C CUDA
Teknologi CUDA sebenarnya barawal dari riset yang dilakukan NVIDIA mengenai GPGPU (General-Purpose Computing on Graphics processing Unit). Riset tersebut akhirnya melahirkan CUDA (Compute Unified Device Architecture) suatu arsitektur pemrosesan paralel yang diimplementasikan ke dalam GPU buatan NVIDIA, baik untuk seri GeForce, Quadro, maupun Tesla.
Sejak awal kemunculannya sampai saat ini, CUDA mengalami perkembangan yang cukup pesat. Hal ini bisa dilihat dari perbandingan banyaknya riset berbasis CUDA yang dilakukan dan juga banyaknya CUDA SDK yang didownload dalam dua tahun terakhir. Tahun lalu, hanya ada 67 riset mengenai CUDA dan juga 293.000 CUDA SDK yang didownload. Jumlah itu meningkat jauh untuk tahun ini menjadi 334 riset mengenai CUDA dan juga 668.000 CUDA SDK yang didownload.
Selain itu, perkembangan CUDA juga ditandai dengan meningkatnya dukungan aplikasi dan juga berbagai perusahaan terhadap penggunaan CUDA, diantaranya:
o Hadirnya compiler CUDA-x86 hasil kerja sama NVIDIA dengan Portland Group. Compiler CUDA-x86 memungkinkan developer untuk membuat aplikasi dengan memanfaatkan CUDA untuk beragam platform yang tersedia.
o Aplikasi komputasi numerik populer, MATLAB, sudah mendukung CUDA
o Simulator biologis, AMBER, pada versi terbarunya, AMBER 11, sudah mendukung pemanfaatan multi GPU dan mendukung CUDA. NVIDIA mengumumkan bahwa dengan menggunakan IBM Cluster yang dilengkapi dengan 8 GPU Fermi yang sudah mendukung CUDA, simulator bisa menghasilkan perhitungan 52nanosecond dalam sehari, lebih tinggi bila dibandingkan dengan cluster terkuat AMBER saat ini, KRAKEN, hanya bisa menghasilkan 46nanosecond dalam sehari. Sebagai informasi tambahan, satu simulasi langkah manusia membutuhkan jutaan nanosecond.
o ANSYS, perusahaan yang memiliki spesialisasi di bidang desain dan simulasi produk yang memiliki beberapa klien ternama seperti Boeing dan P&G, juga memanfaatkan CUDA untuk melakukan simulasi. Satu proses simulasi, misalnya simulasi kemungkinan masalah yang terjadi pada roda pesawat terbang, membutuhkan kemampuan proses yang tinggi. Dengan menggunakan GPU yang dilengkapi dengan CUDA, proses panjang tersebut dapat diselesaikan dalam waktu setengah dari waktu normal yang diperoleh dengan menggunakan CPU termutakhir.
Sumber : https://celoteh-galang.blogspot.com/2016/06/apa-itu-parallel-computation.html
http://www.jagatreview.com/2010/09/mengenal-teknologi-cuda-lebih-dekat/