Sabtu, 30 Juni 2018

Paralel Computing (CUDA)


Judul                : Paralel Computing (Tugas 3)
Nama               : Nur Rohimah
NPM                : 58414184
Kelas               : 4IA21
Mata Kuliah     : Pengantar Komputasi Modern
Nama Dosen    : Indra Adi Permana

 Parallel computing


          Parallel computing adalah penggunakan 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, Maksudnya program dijalankan dengan banyak CPU secara bersamaan dengan tujuan untuk membuat program yang lebih baik dan dapat diproses dengan cepat. Dapat diambil kesimpulan bahwa pada parallel processing berbeda dengan istilah multitasking, yaitu satu CPU mengangani atau mengeksekusi beberapa program sekaligus, parallel processing dapat disebut juga dengan istilah parallel computing.
          Sejarah mencatat Konferensi internasional tentang ParCo97 komputasi paralel (Parallel Computing 97) diadakan di Bonn, Jerman 19-22 September 1997. Konferensi pertama dalam seri ini dua tahunan diadakan pada tahun 1983 di Berlin. Selanjutnya konferensi diadakan di Leiden (Belanda), London (Inggris), Grenoble (Prancis) dan Gent (Belgia).

          Sejak awal tujuan dengan (Komputasi Paralel) konferensi parco adalah untuk mempromosikan penerapan komputer paralel untuk memecahkan masalah kehidupan nyata. Dalam kasus ParCo97 tonggak baru dicapai dalam bahwa lebih dari setengah dari makalah dan poster yang disajikan prihatin dengan aspek aplikasi. Fakta ini mencerminkan kedatangan usia komputasi paralel. Sekitar 200 makalah yang disampaikan kepada Komite Program oleh penulis dari seluruh dunia. Program akhir terdiri dari empat makalah diundang, 71 kontribusi ilmiah / industri kertas dan 45 poster. Selain diskusi panel tentang Komputasi Paralel dan Evolusi Cyberspace diadakan.

          Penekanan praktis konferensi ini ditekankan oleh pameran industri di mana perusahaan menunjukkan perkembangan terbaru dalam peralatan pemrosesan paralel dan perangkat lunak. Pembicara dari perusahaan yang berpartisipasi mempresentasikan makalah dalam sesi industri di mana perkembangan baru dalam komputasi paralel dilaporkan.
 Komputer paralel secara kasar dapat diklasifikasikan menurut tingkat di mana hardware mendukungparalelisme, dengan komputer multi-core dan multi-prosesor yang memiliki elemen pemrosesan gandadalam satu mesin, sedangkan cluster, MPP, dan grid menggunakan beberapa komputer untuk bekerja pada hal yang sama tugas. Khusus arsitektur komputer paralel kadang-kadang digunakan bersamaprosesor tradisional, untuk mempercepat tugas-tugas tertentu.

Komputasi paralel membutuhkan:
·                     algoritma
·                     bahasa pemrograman
·                     compiler

          Sumber daya komputer (computer resource) dapat terdiri dari sebuah komputer dengan beberapa processor, atau beberapa komputer yang terhubung oleh sebuah jaringan, atau pun kombinasi antara keduanya. Processor mengakses data melalui shared memory. Beberapa supercomputer parallel processing system memiliki ratusan bahkan ribuan microprocessor. Dengan bantuan dari parallel processing, sejumlah komputasi dapat dijalankan dalam satu waktu, memangkas waktu yang dibutuhkan untuk menyelesaikan sebuah project. Parallel processing sangat berguna untuk project yang membutuhkan komputasi komplek, seperti weather modelling dan efek digital spesial (special effect digital). Untuk lebih memahami konsep dari parallel processing, Anda dapat menyimak analoginya berikut ini.
          Dengan bantuan dari parallel processing, masalah yang sangat kompleks dapat terselesaikan dengan efektif dan lebih efisien. Parallel computing dapat secara efektif digunakan untuk tugas-tugas (task) yang melibatkan begitu banyak komputasi, untuk dapat dibagi menjadi task-task yang lebih kecil. Contoh sistem yang diterapkan pada obyek 3D yang besar dan rinci, interpretasi geometrik yang melekat seri membatasi kecepatan generasi gambar. Untuk mempercepat prosedur menafsirkan, sebuah Graphic Processing Unit (GPU) metode berbasis memanfaatkan Compute Arsitektur Unified Device (CUDA) yang diusulkan dalam tulisan ini. Pendekatan terfokus melibatkan dua tahap: pertama adalah scan sekuensial pada string yang dihasilkan negara dari derivasi dari L-sistem yang berjalan pada CPU, yang kedua adalah komputasi paralel pada GPU dengan CUDA.
          GPU (Graphic Processing Unit) sendiri merupakan sebuah alat/hardware, yang berfungsi sebagai render grafis terdedikasi dalam kesatuan sistem hardware PC atau Notebook. GPU bisa berada pada Video Card khusus (VGA Card) atau terintegrasi dalam Motherboard berupa Integrated GPU. GPU berfungsi untuk mengolah dan memanipulasi grafis pada CPU (Central Processing Unit), untuk nantinya ditampilkan dalam bentuk Visual Grafis pada Monitor (output).
          CUDA (Compute-Unified-Device-Architecture) adalah arsitektur komputasi paralel yang dikembangkan oleh NVIDIA. CUDA adalah mesin komputasi dalam pemrosesan grafis NVIDIA unit (GPU) yang dapat diakses oleh pengembang perangkat lunak melalui varian dari bahasa pemrograman standar industri. CUDA merupakan kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit a.k.a Processor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang pararel.

     Komputasi Parallel pada GPU
§  GPU computing (General Purpose GPU – GPGPU) merupakan konsep pemrograman parallel yang menggunakan GPU sebagai media komputasi untuk memproses komputasi yang umumnya dikerjakan CPU.
§  Model untuk komputasi GPU adalah dengan menggunakan CPU dan GPU bersama-sama dalam suatu model komputasi heterogen co-processing.
§  Dari sudut pandang pengguna, aplikasi akan berjalan lebih cepat karena menggunakan kinerja-tinggi dari GPU untuk meningkatkan kinerja.
§  CPU lebih spesifik menangani permasalahan logika, sedangkan permasalahan komputasi diserahkan kepada GPU.

     Untuk penggunaan / implementasi cuda kita bisa menggunakan beberapa software yang bisa digunakan untuk membuat program dengan dukungan teknologi CUDA seperti :
§  CUDA x86 Compiler, hasil kerja sama NVIDIA dan Portland Group untuk membuat aplikasi dengan menggunakan CUDA.
§  ANSYS, spesialisasi di bidang desain dan simulasi yang memanfaatkan CUDA untuk melakukan simulasi. Satu proses simulasi, misalnya simulasi kemungkinan masalah yang terjadi pada roda pesawat terbang, membutuhkan kemampuan proses yang tinggi.
§  Autodesk,menambahkan dukungan terhadap CUDA pada aplikasi populer mereka, 3ds Max, melalui plugin iray. iray memungkinkan rendering objek 3D dilakukan dengan menggunakan GPU yang mendukung CUDA.
§  Autodesk juga menunjukkan sebuah proyek masa depan dimana pengguna 3ds Max bisa melakukan editing dari jarak jauh pada aplikasi 3ds Max yang terpasang di server yang didukung tenaga 32 GPU Fermi, hanya melalui sebuah browser.
§  MATLAB.