a.
Konsep
Paralel
Computation
Parallel
adalah salah satu teknik untu melakukan
komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara
bersamaan. Biasanya komputasi parallel ini diperlukan saat kapasitas yang
diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar
ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka
jenis komputasi paralel ini maka diperlukanlah infrastruktur mesin paralel yang
terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja
secara paralel untuk menyelesaikan satu masalah.
b.
Distributed Processing
Distributed
Processing adalah kemampuan untuk melakukan keseluruhan pemrosesan data yang
dilakukan secara bersamaan antara server pusat (komputer) dengan komputer client
melalui jalur komunikasi. Distributed processing ini merupakan suatu sistem
pada jaringan komputer yang menghubungkan antara server komputer dan komputer
client.
c. Architectural
Parallel Computer
Untuk
mengetahui tentang perbedaan komputasi
tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan
beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian
mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:
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.
Pengantar
Thread Programming
Thread adalah sebuah pengontrol aliran program
pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling
Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan
memungkinkan suatu proses terkendali dengan baik.
Jenis-jenis Thread Berdasarkan Waktu Penciptaannya :
1. Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan
dan kompilasi program. Tiap thread langsung dialokasikan stack tetap. Keunggulannya
sederhana., dan kelemahannya tidak fleksibel.
2. Dynamic threads
Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi.
Penciptaan thread biasanya menspesifikasikan fungsi utama thread (seperti
pointer ke procedure) dan ukuran stack, dapat juga ditambah parameter-parameter
lan seperti prioritas panjadwalan. Keunggulannya fleksibel dan kelemahannya
lebih rumit.
e.
Pengantar
Message
Passing, OpenMP
1.
Message Passing
Message passing merupakan salah satu model pemrograman
aplikasi pararel yang banyak digunakan. Setiap proses yang bekerja bersama
secara paralel dapat berkomunikasi satu sama lain dengan cara mengirim pesan. Proses-proses
ini dapat berdiri sendiri dan tidak perlu berbagi apa-apa, termasuk sumber daya
prosesor dan memori.
Dalam message passing, setidaknya ada dua operasi dasar
yang dimiliki oleh program untuk berkirim pesan, yaitu operasi pengiriman pesan
(send) dan operasi untuk menerima pesan (receive).
2.
OpenMP (Open Multi-Processing)
OpenMP 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 set perintah kompiler,perpustakaan rutinitas, dan variabel
lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model
hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan
menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan
dengan menggunakan ekstensi OpenMP non-shared memory system.
f . 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.
CUDA singkatan dari Compute Unified Device Architecture ,
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.