Skip to main content

PARALEL COMPUTING CUDA


Pengertian Parallel Computing

Parallel Computing merupakan suatu metode komputasi yang prosesnya membutuhkan beberapa komputer secara bersamaan untuk mendapatkan suatu informasi, biasanya hal tersebut terjadi dalam bidang misalnya keuangan, teknik informasi, atau hal-hal yang membutuhkan kapasitas besar baik dalam proses maupun komputasi yang banyak.

Untuk melakukan komputasi jenis parallel ini diperlukannya suatu infrastruktur yang terdiri dari beberapa komputer yang terhubung satu sama lainnya melalui jaringan secara parallel demi mendapatkan suatu informasi atau menyelesaikan suatu pekerjaan, hal ini bisa disebut sebagai sistem terdistribusi. Maka dari itu diperlukan suatu software guna mendukung dalam kegiatan parallel computing ini, perlu adanya middleware yang dimaksudkan sebagai pengatur distribusi pekerjaan antar node dalam satu paralel.

Namun, untuk merealisasikan parallel computing ini harus dibuatkannya pemrograman paralel terlebih dahulu, karena hal tersebut tidak bisa dilakukan secara otomatis. Adapun tujuan utama dari komputasi paralel itu sendiri yaitu untuk meningkatkan suatu performa komputasi yang dilakukan oleh banyak komputer.

Semakin banyak jumlah komputer yang dipakai dalam parallel computing, maka akan semakin cepat suatu pekerjaan dapat diselesaikan. Hal itu terjadi karena secara penjabaran bila suatu pekerjaan diselesaikan oleh banyak orang, maka akan semakin cepat pula pekerjaan tersebut selesai, begitupun sebaliknya.

Yang perlu diketahui adalah bahwa Parallel computing jelas berbeda dengan multitasking, hal ini karena arti dari multitasking sendiri adalah beberapan pekerjaan dapat dilakukan dalam satu waktu, tetapi arti dari parallel computing adalah suatu pekerjaan dapat dikerjakan oleh beberapa komputer yang saling terhubung dengan jaringan. Ada 2 teknik beberbeda yang digunakan untuk mengakses data, yaitu shared memory address dan message passing. Berdasarkan dari cara mengorganisasikan memori tersebut, computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.

Adapun bahasa populer yang dipakai dalam pemrograman parallel, yaitu:

MPI (Message Passing Interface)

MPI merupakan pemrograman berbasis interface yang memungkinkan seorang terjadinya komunikasi antar komputer pada network dalam menyelesaikan suatu tugas.

OpenMP (Open Multi-Processing)

OpenMP adalah sebuah pemrograman berbasis interface yang mendukung multi processing shared memory di suatu pemrograman, pada dasarnya OpenMP tidak jauh berbeda dengan MPI, namun OpenMP lebih mudah digunakan.

Dalam pemodelan komputasi, terdapat 4 macam jenisnya; yaitu SISD (Single Instruction, Single Data), SIMD (Single Instruction, Multiple Data), MISD (Multiple Instruction, Single Data), dan MIMD (Multiple Instruction, Multiple Data). Adapun penjabaran secara jelasnya sebagai berikut:

SISD :  SISD menggunakan 1 prosesor sebagai model untuk komputasi tunggal. SISD juga satu-satunya yang menggunakan arsitektur model Von Neumann.

SIMD : SIMD menggunakan banyak prosesor dengan instruksi yang sama, namun setiap prosesor mengolah data yang berbeda-beda.

MISD : MISD menggunakan banyak prosesor dengan setiap prosesor menggunakan instruksi yang berbeda pula, namun mengolah data yang sama.

MIMD : MIMD menggunakan banyak prosesor dengan setiap prosesor memiliki instruksi yang berbeda, dan juga mengolah data yang berbeda pula.

Compute Unified Device Architecture (CUDA)

CUDA merupakan platform parallel computing dan model pemrograman yang telah dibuat oleh NVIDIA dan diimplementasikan oleh Graphic Processing Unit (GPU). CUDA memberikan akses pengembangan untuk kumpulan visual instruction dan ingatan dari parallel computasional elemen CUDA GPU.

CUDA adalah komputasi paralel Platform dan model aplikasi pemrograman interface (API) yang dibuat oleh Nvidia. Hal ini memungkinkan pengembang perangkat lunak dan insinyur perangkat lunak untuk menggunakan graphics processing unit CUDA-enabled (GPU) untuk tujuan umum pemrosesan dengan pendekatan yang disebut GPGPU (General-Purpose Graphics Processing Unit). Platform CUDA adalah lapisan perangkat lunak yang memberikan akses langsung ke set instruksi virtual GPU dan elemen komputasi paralel, untuk pelaksanaan penghitungan kernel.

CUDA, Compute Unified Device Architecture merupakan suatu framework dari bahasa pemrograman yang mendukung bahas C language, dimana mampu berkomunikasi langsung dengan GPU dan sangat mudah bekerjasama untuk segala multi-threading  parallel execution hampir diseluruh prosesor pada GPU. CUDA menggukan konsep nvcc sebagai ORM dalam object programmingnya.

Platform CUDA dapat diakses oleh pengembang perangkat lunak melalui library CUDA-accelerated , perintah kompiler (seperti OpenACC ), dan ekstensi untuk bahasa pemrograman standar industri, termasuk C, C++ dan Fortran . C / C++ programmer menggunakan CUDA C / C + +, yang disusun dengan "nvcc", NVIDIA LLVM berbasis C / C++ compiler, dan Fortran programmer dapat menggunakan 'CUDA Fortran', yang disusun dengan PGI CUDA Fortran compiler dari The Portland Grup. Selain library, arahan compiler, CUDA C / C++ dan CUDA Fortran, platform CUDA mendukung interface komputasi lainnya, termasuk Khronos Grup 's OpenCL , Microsoft DirectCompute , dan C++ AMP . Pemrograman pihak ketiga juga tersedia untuk Python , Perl , Fortran , Java , Ruby , Lua , Haskell, Matlab , IDL , dan dukungan asli di Mathematica.

Dalam permainan komputer industri, GPU yang digunakan tidak hanya untuk rendering grafis tetapi juga dalam perhitungan fisika permainan (efek fisik seperti puing-puing, asap, api, cairan), contoh termasuk PhysX dan Bullet . CUDA juga telah digunakan untuk mempercepat aplikasi non-grafis dalam biologi komputasi , kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.



Sumber :

Comments

Popular posts from this blog

PERBEDAAN ANTARA ILMU SOSIAL DASAR DAN ILMU BUDAYA DASAR

Ilmu Sosial Dasar adalah ilmu yang mengkaji mengenai masalah-masalah sosial yang terjadi didalam masyarakat. Ilmu sosial dasar ini sangat penting untuk diterapkan didalam masyarakat karena dengan mempelajari ilmu sosial dasar ini masyarakat dapat mengatasi masalah sosial yang sering terjadi sehingga tidak menimbulkan perpecahan antar masyarakat. Ilmu sosial dasar ini saat ini sudah masuk ke dalam kurikulum pembelajaran di perguruan tinggi dengan tujuan untuk menanamkan nilai-nilai sosial sehingga para mahasiswa dapat memahami bahwa adanya kenyataan-kenyataan sosial dan masalah-masalah yang selalu ada didalam masyarakat, menyadari bahwa setiap masalah sosial bahwa setiap masalah sosial yang timbul dalam masyarakat itu bersifat kompleks dan cara penyelesaiannya hanya dengan mempelajarinya, peka dan tanggap/cekatan terhadap masalah-masalah sosial yang ada didalam masyarakat untuk ikut serta dalam upaya menanggulangi masalah-masalah sosial tersebut. Ruang lingkup ilmu sosial dasar men

CLOUD COMPUTING dan GRID COMPUTING

A.    Cloud Computing Pengertian Cloud Computing Cloud Computing atau komputasi awan merupakan kombinasi pemanfaatan teknologi komputer dengan pengembangan berbasis internet. Sebutan cloud sendiri merupakan sebuah istilah yang diberikan pada teknologi jaringan internet. Pada teknlogi komputasi berbasis awan semua data berada dan disimpan di server internet, begitu juga dengan aplikasi ataupun software yang pada umumnya dibutuhkan pengguna semuanya berada di komputer server. Sehingga kita tidak perlu melakukan instalasi pada server. Tetapi pengguna harus terhubung ke internet untuk bisa mengakses dan menjalankan aplikasi yang berada di server tersebut. Dengan kata lain pengguna bisa saja hanya menyediakan sebuah komputer dan perangkat jaringan internet untuk bisa terhubung ke server internet dan menyimpan data di komputer server tanpa harus menyediakan hard-disk yang berkapasitas besar pada komputernya sendiri untuk menyimpan datanya. Jenis-Jenis Cloud Computing Be

METODE GREEDY, DIVIDE AND CONQUER

METODE GREEDY      Metode/Algoritma Greedy merupakan algoritma yang membentuk solusi langkah per langkah. Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal. Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil, dan keputusan tersebut tidak dapat diubah lagi pada langkah selanjutnya. a. Prinsip Utama Algoritma Greedy Prinsip utama algoritma greedy adalah ?take what you can get now!?. Maksud dari prinsip tersebut adalah sebagai berikut: Pada setiap langkah dalam algoritma greedy, kita ambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Kita namakan solusi tersebut dengan optimum lokal. Kemudian saat pengambilan nilai optimum lokal pada setiap langkah, diharapkan tercapai optimum global, yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir. Contoh kasus algoritma greedy : Misalkan tersedia koin : 1, 3, 5. Uang senila