Parallel Computation
Parallel computation
Parallel
computation merupakan teknik menjalankan suatu program untuk menjalankan suatu
proses menggunakan lebih dari satu unit komputer. Untuk mengeloalah data dalam
jumlah besar komputasi paralel diperlukan infrastruktur mesin paralele yang
terdiri dari komputer yang terhubung dengan jaringan dan mampu dalam
menyelesaikan suatu masalah. Berikut adalah contoh bentuk parallel computation
Ø Paralelism consept
Paralelisme merupakan tekhnik yang meningkatkan kecepatan proses dengan
cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara
simulatan disertai dengan memebentuk beberapa proses yang bekerja dengan cara
simultan pada modul – modul perangkat keras tersebut.
Ø Distributed Procesing
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.
Ø Architectural Parallel Computer
Dalam
taksonomi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak
diterapkan adalah
·
Single Instruction Single Data (SISD)
Single Instruction Single Data (SISD) ini memiliki hanya satu instruksi yang
dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional.
Menururut mereka tipe komputer ini tidak ada dalam praktik komputer paralel
karena bahkan mainframe pun tidak lagi menggunakan satu processor. Klasifikasi
ini sekedar untuk melengkapi definisi komputer paralel. Beberapa contoh
komputer yang menggunakan model SISD adalah UNIVACI, IBM 360, CDC 7600, Cray 1
dan PDP 1.
·
Single Instruction Multiple Data (SIMD)
Single
Instruction – Multiple Data, komputer ini memiliki lebih dari satu prosesor, tetapi
hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada
level lock-step. Komputer vektor adalah salah satu komputer paralel yang
menggunakan arsitektur ini. 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).
·
Multiple Instruction Multiple Data (MIMD)
Multiple
Instructions Multiple Data, komputer ini 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. Beberapa komputer yang
menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32,
AMD Opteron, Cray XT3 dan IBM BG/L.
Ø Pengantar Thread Programming
Thread
adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara
independen dengan sebagian program lainnya. Dalam threading anda dapat
menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua
atau lebih bagian dari kode dapat dijalankan secara simultan.
Keuntungan memakai Thread:
ü Tanggap: Multi-threading mengizinkan
program untuk terus berjalan walaupun pada bagian program tersebut diblock atau
sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya
multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu
thread ketika suatu gambar sedang diload oleh thread yang lain.
ü Pembagian sumber daya: Secara
default, thread membagi memori dan sumber daya dari proses. Keuntungan dari
pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan
alokasi.
ü Ekonomis: Mengalokasikan memori dan
sumber daya untuk membuat proses itu sangat mahal. Alternatifnya thread membagi
sumber daya dari proses, Jadi lebih ekonomis.
ü Pemberdayaan arsitektur
multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan
arsitektur multiprosesor, dimana setiap thread dapat berjalan secara parallel
pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya
berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi
paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap
waktu.
Ø Penganatar Massage Passing, Open Mp
Massage Passing merupkan 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. Objek
didistribusikan dan metode sistem remote doa seperti ONC RPC , CORBA , Java RMI
, DCOM , SOAP , . NET Remoting , CTO , QNX Neutrino RTOS , OpenBinder , D-Bus ,
Unison RTOS dan serupa pesan lewat sistem.Paradigma Message passing yaitu :
1. Banyak contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
2. Programmer membayangkan beberapa prosesor,
masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada
setiap prosesor.
3. Proses berkomunikasi dengan mengirimkan pesan satu sama lain
OpenMP merupakan API yang mendukung multi-platform berbagi memori multiprocessing pemrograman C , C + + , dan Fortran , pada kebanyakan arsitektur prosesor dan system operasi , termasuk Solaris , AIX , HP-UX , GNU / Linux , Mac OS X , dan Windows platform. Ini terdiri dari satu set perintah kompiler, rutinitas library, dan variable lingkungan yang mempengaruhi perilaku run-time. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu , Nvidia , NEC , Microsoft , Texas Instruments , Oracle Corporation , dan banyak lagi.
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++
Ø Pengatar Pemorgraman Cuda GPU
CUDA adalah sebuah arsitektur
pemrograman untuk General Purpose Graphics Processing Unit (GPGPU). Secara
umum, komponen-komponen pendukung CUDA adalah:
·
Aplikasi, adalah perangkat lunak yang dibuat oleh penguna, memakai bahasa
pemrograman khusus (kembangan C).
·
Pustaka perangkat lunak, yang menyediakan layanan dasar untuk program
aplikasi mengakses CPU maupun GPU.
·
Perangkat keras khusus, yaitu GPU yang menyediakan mesin paralel.
·
Perangkat keras CPU, sebagai mesin sekuensial.
Dengan demikian, seorang pengguna
CUDA haruslah membuat program dulu dalam bahasa pemrograman kembangan C (dengan
ditambahi beberapa sintak yang sangat memudahkan pemrograman paralel tingkat
tinggi). Kode sumber program itu dikompilasi, kemudian dijalankan. Program CUDA
induk akan berjalan di CPU, sedangkat bagian paralelnya akan berjalan di GPU.
Sumber :




Komentar
Posting Komentar