A.
Paralel
Computation
Dalam bahasa indonesia
komputasi bisa diarikan sebagai cara untuk menemukan pemecahan masalah dari
data input dengan menggunakan suatu algoritma. hal ini ialah apa itu teori
komputasi. komputasi paralel itu sendiri yaitu melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. komputasi
paralel itu sendiri membutuhkan :
·
Algoritma
·
Bahasa Pemrograman
·
Compiler
B.
Parallelism
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.
Contoh Parallelism
Concept:
·
Memerintahkan set instruksi (pandangan
programmer).
· File
executable (pandangan sistem operasi)
C.
Architectural
Parallel Computer
1.
SISD
Yang
merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya
yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya
digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai
model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan
komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer
yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP
1.
2.
SIMD
Yang
merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan
banyak processor dengan instruksi yang sama, namun setiap processor mengolah
data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan
angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada
setiap processor kita menggunakan algoritma atau perintah yang sama, namun data
yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan
pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai
urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh
komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray
Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
3.
MISD
Yang
merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan
banyak processor dengan setiap processor menggunakan instruksi yang berbeda
namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD.
Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD
namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama,
kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100,
namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor.
Sampai saat ini belum ada komputer yang menggunakan model MISD.
4.
MIMD
Yang
merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan
banyak processor dengan setiap processor memiliki instruksi yang berbeda dan
mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD
juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan
model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron,
Cray XT3 dan IBM BG/L.
D.
Distributed
Processing
Mengerjakan semua
proses pengolahan data secara bersama antara komputer pusat dengan beberapa
komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi.
Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah
sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan
menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan
atau masalah yang lain akan mengambil alih tugasnya.
Contoh lainnya,
pengolahan data pada server yahoo yang tersebar hampir di seluruh dunia secara
distribusi, setiap wilayah mempunyai server masing-masing. Seperti di indonesia
mempunyai server tersendiri sehingga pengolahan data tidak di pusat melainkan di
wilayah masing-masing, dll.
E.
Pengantar
Thread Programming
Dalam pemrograman
komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah
program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Dari
program point-of-view, sebuah thread adalah informasi yang dibutuhkan untuk
melayani satu pengguna individu atau permintaan layanan tertentu. Jika beberapa
pengguna menggunakan program atau permintaan bersamaan dari program lain yang
sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses.
Thread memungkinkan program untuk mengetahui user sedang masuk didalam program
secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah
satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus
dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu
menyimpan isi register saat program interrupted dan restores ketika memberikan
program kontrol lagi.
Contohnya :
·
Static Threading : Teknik ini biasa
digunakan untuk komputer dengan chip multiprocessors dan jenis komputer
shared-memory lainnya.
·
Dinamic Threading : Teknik ini merupakan
pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena
dengannya programmer tidak harus pusing dengan protokol komunikasi, load
balancing, dan kerumitan lain yang ada pada static threading.
F.
Message
Passing dan Open MP
Massage
Passing merupakan suatu teknik bagaimana mengatur suatu alur
komunikasi messaging terhadap proses pada system. Message passing dalam ilmu
komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel,
pemrograman-berorientasi objek, dan komunikasi interprocess. Dalam model ini,
proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau
lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses
lainnya dan dapat melakukan sinkronisasi.
OpenMP
adalah Application Programing Interface (API) yang mendukung pemrograman
multiprosesing shared memory dalam bahasa C/C++ dan fortran pada berbagai
arsitektur dan sistem operasi diantaranya: Solaris, AIX, HP-UX,GNU/Linux, Mac
OS X, dan Windows.
G.
Pengantar
Pemrograman CUDA GPU
GPU ( Graphical
Processing Unit ) 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, 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 ).
Referensi :