Parallel Computation




Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat. 

A. Konsep Paralel
Konsep paralel adalah sebuah kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas secara simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan satu ataupun banyak tugas dalam satu waktu. 

B. Pemrosesan Terdistribusi
Pemrosesan terdistribusi merupakan proses pendistribusian pengolahan paralel dalam pemrosesan paralel menggunakan beberapa mesin. Jadi, bisa di bilang kemampuan dari suatu komputer-komputer yang dijalankan secara bersamaan untuk memecahkan suatu masalah dengan proses yang cepat.

C. Arsitektur Komputer Paralel
Menurut seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi 4 baguan, yaitu :

1. SISD ( Single Instruction Single Data Stream )
  Jenis Komputer yang hanya memiliki satu prosesor dan satu instruksi yang dieksekusi secara serial. 

2. SIMD ( Single Instruction  Multiple Data Stream )
Jenis komputer yang memiliki lebih dari satu prosesor, tetapi komputer ini hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step. 

3. MISD ( Multiple Instruction Single Data Stream )
Jenis komputer yang memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi di dalam praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami, sampai saat ini pun belum ada komputer yang menggunakan arsitektur jenis ini

4. MIMD ( Multiple Instruction Multiple Data Stream )
Jenis komputer yang memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini, karena model dan konsepnya yang tidak terlalu rumit untuk dipahami.

D. Pengantar Thread Programming 
Sebuah thread di dalam pemrograman komputer adalah sebuah informasi terkait tentang penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan.Thread ini memungkinkan program untuk mengetahui bagaimana user masuk ke dalam program secara bergantian dan user akan masuk kembali menggunakan user yang berbeda. Multiple thread dapat berjalan bersamaan dengan proses lainnya membagi sumberdaya menjadi memori, disaat proses lain tidak membaginya. 


 OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk Unix dan Microsoft Windows platform. OpenMP Terdiri dari satu setperintah kompiler,perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibridapemrograman paralel dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.
Sejarah OpenMP dimulai dari diterbitkannya API pertama untuk Fotran 1.0 pada Oktober 1997 oleh OpenMP Architecture Review Board (ARB). Oktober tahun berikutnya OpenMP Architecture Review Board (ARB) merilis standart C / C++. Pada tahun 2000 mengeluarkan versi 2.0 untuk fotran dan poda tahun 2002 dirilis versi 2.0 untuk C / C++. Pada tahun 2005 dirilis versi 2.5 yang merupakan pengabungan fotran, C, dan C++/ pada mei 2008 versi 3.0 yang terdapat didalmnya konsept tasks dan task construct.
OpenMP mengimplementasi multithreading. Bagian kode yang akan dijalankan secara parallel ditandai sesuai dengan Preprocessor directif sehingga akan membuat thread-thread sebelum dijalnkan. Setiap thread memiliki id yang di buat mengunakan fungsi ( omp_get_thread_num()pada C/C++ dan OMP_GET_THREAD_NUM() pada Fortran). Secara default, setiap thread mengeksekusi kode secara parallel dan independent. "Work-sharing constructs" dapat dapat digunakan untuk membagi tugas antar thread sehingga setiap thread menjalankan sesuai bagian alokasi kodenya. Fungsi OpenMP berada pada file header yang berlabel “omp.h” di C / C++

Multicore gpu cuda
        Sebuah GPU (Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.
penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.
 
     CUDA merupakan teknologi anyar dari produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.
 
      CUDA merupakan singkatan dari Compute Unified Device Architecture, didefinisikan sebagai sebuah arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile (VGA notebook).
Singkatnya, CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

Jika Anda memiliki Perhitungan Toolbox Paralel (PCT) dari MatlabAnda dapat menggunakan kekuatan dankemudahan penggunaan untuk menjalankan analisis neuroimaging secara paralelBaca lebih lanjut di sinidan di sini untuk informasi lebih lanjut tentang toolbox iniCaranya adalah dengan menggunakan beberapa core CPU pada mesin Anda untuk menjalankan analisis secara paralelSebagai contohketika sayamenjalankan beberapa analisis pada setiap pesertasaya dapat menggunakan PCT untuk memulai analisispada 6-8 peserta secara paralelyang menebang waktu lari ke sekitar 5 kali atau lebih.

Untuk menggunakan toolbox inipertama kali membuka kolam matlab sebagai berikut
Sumber :
http://uchaaii.blogspot.co.id/2013/07/parallel-computation.html
- http://myblogisland.blogspot.co.id/2013/04/parallel-computation.html
http://syaefulhamzah.blogspot.co.id/2013/06/v-behaviorurldefaultvmlo.html

Komentar

Postingan populer dari blog ini

PT YANG BERGERAK DI BIDANG TIK

Electronic Data Interchange