Anda di halaman 1dari 13

KOMPUTER PARALEL

Definisi Komputer Paralel


Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan
saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah
besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi
yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan
persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
Tujuan Komputer Paralel
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi.
Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama),
semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila
anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu
yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut
secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit
jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan
(speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda
memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua
anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan
sebanyak 2 kali.
Berikut ini adalah gambar perbedaa antara komputasi tunggal dengan parallel komputasi :
a)

komputasi tunggal/serial

b)

komputasi parallel

Perbandingan antara serial komputasi dan parallel komputasi


Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit
memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared
memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini
komputer paralel dibedakan menjadi shared memory parallel machine dan distributed
memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi)
secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed
memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan
untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch
untuk menghubungkan antar prosesor dan memori.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu
komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini
adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual
Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini
memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit
prosesor.
Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File
System (NFS), NFS adalah protokol yang dapat membagi sumber daya melalui jaringan. NFS
dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol
transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC. NFS
memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote
host seperti mengakses file yang berada di lokal. Protokol yang digunakan protokol mount
menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu
direktori, protokol NFS melakukan I/O pada remote file system. Protokol mount dan protokol
2

NFS bekerja dengan menggunakan RPC dan mengiri dengan protokol TCP dan UDP.
Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan sharing data sehingga
setiap node slave dapat mengakses program yang sama pada node master.
Software yang diperlukan untuk Parallel komputasi adalah PGI CDK, dimana aplikasi
ini telah dilengkapi dengan Cluster Development Kit dimana software ini telah memiliki
feature yang lengkap bila ingin melakukan komputasi dengan parallel prosessing karena
software ini telah mensupport MPI untuk melakukan perhitungan komputasi.
Arsitektur Komputer Paralel:

Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalahmasalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain.
Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal,
karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
o

Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi


dan alur data yang digunakan:

SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.

SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan
terhadap banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah
maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya
lain-lain tapi program yang digunakan sama.

MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya
juga banyak, tapi masing-masing bisa berinteraksi.

MISD Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi
pada data yang sama.

Proses distribusi
Kata didistribusikan dalam istilah seperti "sistem terdistribusi", "didistribusikan
pemrograman", dan "algoritma terdistribusi" awalnya merujuk pada jaringan komputer
dimana setiap komputer yang didistribusikan secara fisik dalam beberapa wilayah geografis.
Istilah yang saat ini digunakan dalam lebih luas akal, bahkan mengacu pada proses otonom
yang dijalankan pada komputer fisik yang sama dan berinteraksi satu sama lain dengan pesan
lewat Meskipun tidak ada definisi tunggal dari sistem terdistribusi, [6] mendefinisikan sifat
berikut yang umum digunakan.:
3

Ada beberapa entitas komputasi otonom, masing-masing memiliki memori lokal


sendiri. Entitas berkomunikasi satu sama lain dengan pesan yang lewat. entitas komputasi
disebut komputer atau node. Sebuah sistem terdistribusi mungkin memiliki tujuan bersama,
seperti pemecahan masalah komputasi yang besar. [9] Atau, setiap komputer mungkin
memiliki pengguna sendiri dengan kebutuhan individu, dan tujuan dari sistem terdistribusi
adalah untuk mengkoordinasikan penggunaan sumber daya bersama atau memberikan
layanan komunikasi kepada pengguna.
Sifat khas lain dari sistem terdistribusi adalah sebagai berikut:

Sistem ini harus mentolerir kegagalan dalam komputer pribadi.

Struktur sistem (topologi jaringan, latency jaringan, jumlah komputer) tidak diketahui
sebelumnya, sistem dapat terdiri dari berbagai jenis komputer dan link jaringan, dan
sistem dapat berubah selama pelaksanaan program didistribusikan.

Setiap komputer hanya memiliki terbatas, pandangan yang tidak lengkap dari sistem.
Setiap komputer mungkin tahu hanya satu bagian dari input.

Paralel dan komputer terdistribusi


Sistem terdistribusi adalah kelompok jaringan komputer, yang memiliki tujuan yang
sama untuk pekerjaan mereka. Istilah "komputasi bersamaan", "komputasi paralel", dan
"komputasi terdistribusi" memiliki banyak tumpang tindih, dan tidak ada perbedaan yang
jelas antara mereka ada Sistem yang sama dapat dicirikan baik sebagai "parallel" dan
"didistribusikan".; prosesor dalam sistem terdistribusi khas berjalan bersamaan secara paralel
komputasi paralel dapat dilihat sebagai bentuk tertentu erat komputasi terdistribusi, dan
komputasi terdistribusi dapat dilihat sebagai bentuk longgar ditambah komputasi paralel.
Namun demikian, adalah mungkin untuk mengklasifikasikan sistem kira-kira bersamaan
sebagai "paralel" atau "didistribusikan" dengan kriteria sebagai berikut:
Dalam komputasi paralel, semua prosesor mungkin memiliki akses ke memori
bersama untuk bertukar informasi antara prosesor.
Dalam komputasi terdistribusi, masing-masing prosesor memiliki memori pribadi
(memori terdistribusi). Informasi dipertukarkan dengan melewatkan pesan antara prosesor.
Setiap komputer memiliki memori lokal sendiri, dan informasi dapat dipertukarkan
hanya dengan melewatkan pesan dari satu node ke yang lain dengan menggunakan link
komunikasi yang tersedia.

Situasi ini semakin rumit oleh penggunaan tradisional istilah paralel dan algoritma
terdistribusi yang tidak cukup cocok dengan definisi di atas sistem paralel dan terdistribusi,
lihat dasar-dasar Teoritis bawah untuk pembahasan lebih rinci. Namun demikian, sebagai
aturan praktis, komputasi paralel kinerja tinggi dalam shared-memory multiprosesor
menggunakan algoritma paralel sedangkan koordinasi dari sistem terdistribusi skala besar
menggunakan algoritma didistribusikan.
Klasifikasi Shore
J.E. Shore membuat klasifikasi arsitektur komputer yang didasarkan pada organisasi bagianbagian penyusun suatu komputer dan membedakannya menjadi enam jenis mesin.
1. Mesin I. Pada komputer ini, satu instruksi dikerjakan pada suatu waktu dan masingmasing beroperasi pada satu word dalam suatu waktu.
2. Mesin II. Komputer ini juga menjalankan satu instruksi pada suatu waktu, namun ia
beroperasi pada sebuah irisan dari suatu bit dalam suatu waktu, bukannya semua bit
dalam suatu word data.
3. Mesin III. Sebuah komputer dalam kelas ini memiliki dua unit pengolahan yang dapat
beroperasi pada data, satu word dalarn suatu waktu atau suatu irisan bit dalam suatu
waktu.
4. Mesin IV. Komputer jenis ini dicirikan oleh sejumlah elemen (unit pengolahan dan unit
memori), semua di bawah kendali sebuah unit kendali logika (CLU) tunggal.
5. Mesin V. Mesin V dihasilkan dengan mengubah Mesin IV sedemikian sehingga elemenelemen pengolahan dapat berkomunikasi dengn tetangga terdekat mereka.
6. Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori, merupakan sebuah
mesin dengan logika prosesor yang tersebar dalam memori.
Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer atas tingkatan
paralelisme mereka. Tingkatan paralelisme (degree of parallelism) diwakili oleh pasangan (n,
m) dimana n merupakan panjang word dan m adalah panjang irisan bit. Pasangan ini
diklasifikasikan menjadi empat kelompok sebagai berikut:
1. Jika n = 1 dan m = I maka tidak terjadi paralelisme. Word dan bit diproses satu per satuan
waktu. Hal ini disebut sebagai word serial/bit serial(WSBS).
2. Jika n> 1 dan m = 1 maka paralelisme itu disebut sebagai word paralel/bit serial (WPBS).
Dalam hal ini, semua n irisan bit diproses satu per satuan waktu.

3. Paralelisme word serial/bit paralel (WSBP) terjadi jika n = 1 dan m> 1. Dengan demikian
sejumlah n word diproses satu per satuan waktu tetapi sejumlah m bit dan masing-masing
word diproses secara paralel.
4. Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan merupakan suatu
paralelisme dimana n > 1 dan m > 1. Dalam hal ini, sejumlah nm bit diproses secara
bersamaan.
Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok komputer
SISD - hanya mempunyai satu unit pengendali untuk menentukan instruksi yang akan
dieksekusi. Pada setiap satuan waktu hanya satu instruksi yang dapat dieksekusi, dimana
kecepatan akses ke memori dan kecepatan piranti masukan dan keluaran dapat
memperlambat proses komputasi. Beberapa metoda dibangun untuk menghindari masalah
tersebut, seperti penggunaan cache memory. Namun komputer sekuensial ini tetap mengalami
keterbatasan jika menangani masalah yang memerlukan kecepatan tinggi. Hal-hal tersebut di
atas

pada

akhirnya

melatarbelakangi

lahirnya

sistem

komputer

paralel.

Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok SIMD atau MIMD.
Komputer paralel mempunyai lebih dari satu unit pemroses dalam sebuah komputer yang
sama. Hal yang membuat suatu komputer dengan banyak prosesor disebut sebagai komputer
paralel adalah bahwa seluruh prosesor tersebut dapat beroperasi secara simultan. Jika tiaptiap prosesor dapat mengerjakan satu juta operasi tiap detik, maka sepuluh prosesor dapat
mengerjakan sepuluh juta operasi tiap detik, seratus prosesor akan dapat mengerjakan seratus
juta operasi tiap detiknya[Les93].
Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah sama dengan
aktivitas sebuah prosesor pada komputer sekuensial. Tiap prosesor membaca (read) data dari
memori, memprosesnya dan menuliskannya (write) kembali ke memori. Aktivitas komputasi
ini dikerjakan oleh seluruh prosesor secara paralel.
PVM (Parallel Virtual Machine)
PVM adalah perangkat lunak yang membuat sekumpulan komputer menjadi tampak
seperti sebuah sistem komputer virtual yang besar. Sekumpulan komputer yang akan terlibat
dalam proses penyelesaian masalah harus didefinisikan trelebih dahulu, agar dapat
menjalankan fungsinya. Komputer-komputer yang terlibat dalam komputasi bisa homogen,
dengan platform yang sama, maupun heterogen, dengan platform yang berbeda, asal di antara
mereka bisa saling berkomunikasi. PVM dapat menangani semua pengiriman proses,

konversi data, dan penjadwalan task secara message passing untuk sistem yang tidak
kompatibel sekalipun.
Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang diberi nama
pvmd. Pvmd diaktifkan di setiap komputer yang akan membentuk mesin virtual. Bagian
kedua adalah pustaka rutin antarmuka PVM yang berisi koleksi perintah-perintah primitif
untuk mengoperasikan proses-proses pustaka tersebut. Pustaka rutin ini digunakan dalam
program aplikasi paralel yang ditulis dengan bahasa pemrograman C, C++, atau FORTRAN
77. Aplikasi dalam bahasa pemrograman C dan C++ dihubungkan melalui pustaka
libpvm3.lib, sedangkan aplikasi dalam bahasa pemrograman FORTRAN 77 dapat mengambil
rutin-rutin dalam libfpvm3.lib. Kedua pustaka tersebut telah tersedia pada saat instalasi.
PVM memberi fasilitas untuk membuat sejumlah proses yang tidak tergantung dari jumlah
prosesor. Setiap proses diidentifikasi menggunakan kode (task ID) dan dipetakan ke prosesor
secara otomatis, atau dapat juga diatur oleh programmer. Program PVM umumnya diatur
dengan model master-slave, yaitu satu proses yang dieksekusi pertama kali menjadi master
dan mengaktifkan semua client dengan memanggil pvm_spawn. Rutin tersebut otomatis akan
menjalankan semua proses dalam sistem PVM. Cara lain untuk menjalankan proses adalah
dengan memanggil rutin pvm_mytid yang mengembalikan kode task ID dari proses tersebut.
Sebelum keluar dari sistem PVM, semua proses client harus dimatikan dari PVM dengan
memanggil rutin pvm_exit.
Komunikasi antar proses di dalam sistem PVM dilakukan secara message passing
menggunakan perintah rutin PVM seperti pvm_send dan pvm_recv. Semua rutin pengiriman
pesan dilakukan secara asinkron, sedangkan semua rutin penerimaan pesan dapat dilakukan
secara sinkron maupun asinkron. Ada tiga tahap dalam mengirim pesan dalam PVM, yaitu :

Menginisialisasi buffer pengiriman dengan rutin pvm_initsend


Mengemas isi pesan ke dalam buffer dengan memanggil

rutin

pvm_pk*.

Data yang dikemas dapat bertipe byte, complex, double, float, integer, dan character. Tipe
tersebut dinyatakan dengan mengganti tanda * dan memberi tipe yang sesuai untuk tiap
parameter di dalam rutin pvm_pk*. Misalnya data yang akan dikemas bertipe float, maka

digunakan pvm_pkfloat().
Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau pvm_mcast. Proses
yang menerima pesan harus membuka paket pesan pada buffer penerima sesuai dengan
format pengiriman pesan.
PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam sistem PVM,
seperti pencetakan pesan kesalahan secara otomatis, tingkat pencarian kesalahan
7

(debugging level), dan metode pengaturan jalur komunikasi. Contoh yang paling umum
dari penggunaan pvm_setopt adalah memungkinkan jalur komunikasi langsung antar task
dalam PVM. Pvm_setopt(PvmRoute, PvmRouteDirect);Dengan perintah ini otomatis
bandwidth komunikasi di dalam jaringan akan digandakan.
MPI (Message Passing Interface)
MPI(Message Passing Interface) adalah bahasa pemrograman dengan basis petukaran
pesan. Dalam implementasinya MPI menggunakan fungsi- fungsi pustaka yang dapat
dipanggil dari program C, C++, atau Fortran. Hampir sama dengan PVM, MPI juga
portable untuk berbagai arsitektur. Salah satu implementasi terbaru pada saat ini yang
berjalan pada lingkungan Windows adalah MPICH. Versi terakhirnya adalah MPICH versi
1.2.5. Ditinjau dari sisi aplikasi, MPI hanya dapat digunakan dengan model single
program multiple data (SPMD), sedangkan PVM dapat digunakan dengan model SPMD
maupun multiple program multiple data (MPMD). Model SPMD secara fisik ditunjukkan
dengan program master dan slave yang menyatu, sedangkan MPMD ditunjukkan dengan
program master dan slave yang terpisah, sehingga slave dapat mengerjakan tugas yang
berbeda-beda antara satu node dengan node lainnya.
MPI adalah bahasa-independen protokol komunikasi yang digunakan untuk program
paralel komputer. Keduanya baik point-to-point dan kolektif komunikasi didukungnya.
MPI "adalah pesan-melewati pemrogram aplikasi antarmuka, bersama-sama dengan
semantik protokol dan spesifikasi untuk fitur-fiturnya bagaimana harus berlaku dalam
setiap pelaksanaannya." MPI tujuan kinerja tinggi, skalabilitas, dan portabilitas. MPI tetap
dominan

model

yang

digunakan

dalam

komputasi

kinerja

tinggi

hari

ini.

MPI tidak disetujui oleh badan standar utama meskipun demikian, hal itu telah menjadi de
facto standar untuk komunikasi di antara proses-proses yang model program paralel
berjalan pada sistem memori terdistribusi. Meskipun demikian, program-program MPI
secara teratur dijalankan pada komputer memori bersama. Walaupun MPI termasuk dalam
lapisan 5 dan yang lebih tinggi dari OSI Reference Model, implementasi dapat mencakup
sebagian besar lapisan model referensi, dengan soket dan TCP yang digunakan pada
lapisan transport. Kebanyakan implementasi MPI terdiri dari serangkaian rutinitas tertentu
(yakni, sebuah API) callable dari Fortran, C, C + + atau Java dan dari bahasa apa pun
mampu berinteraksi dengan routine libraries. Keuntungan dari MPI diantaranya:
portabilitas (karena MPI telah diterapkan untuk hampir semua arsitektur memori
terdistribusi) dan kecepatan (karena setiap pelaksanaan pada prinsipnya dioptimalkan
untuk perangkat keras yang dijalankan).

MPI sering dibandingkan dengan PVM, yang merupakan lingkungan dan didistribusikan
populer lewat pesan sistem yang dikembangkan pada tahun 1989, dan yang merupakan
salah satu sistem yang termotivasi kebutuhan standar sistem lewat pesan paralel. Memori
bersama pemrograman threaded model (seperti pthreads dan OpenMP) dan pesan lewat
pemrograman (MPI / PVM) dapat dianggap sebagai pelengkap pendekatan pemrograman,
dan kadang-kadang dapat dilihat digunakan bersama-sama dalam aplikasi di mana
arsitektur setelan ini, misalnya di server dengan beberapa besar bersama memori node.
Pengantar Thread Programming
Dalam ilmu komputer, sebuah thread eksekusi adalah urutan terkecil instruksi
diprogram yang dapat dikelola secara independen oleh sistem operasi scheduler. Sebuah
thread adalah proses ringan. Pelaksanaan threads dan proses berbeda dari satu sistem operasi
yang lain, tetapi dalam banyak kasus, thread yang terkandung di dalam proses. Beberapa
threads bisa ada dalam proses yang sama dan berbagi sumber daya seperti memori,
sedangkan proses yang berbeda tidak berbagi sumber daya tersebut. Secara khusus, threadsthreads proses berbagi petunjuk yang terakhir (kode) dan konteksnya (nilai-nilai yang
variabel yang referensi pada saat tertentu).
Pada prosesor tunggal, multithreading umumnya terjadi pada saat-division
multiplexing (seperti dalam multitasking): switch prosesor antara threads yang berbeda.
Konteks ini beralih umumnya terjadi cukup sering bahwa pengguna merasakan threads atau
tugas sebagai berjalan pada waktu yang sama. Pada sistem multiprosesor atau multi-core,
threads dapat benar-benar bersamaan, dengan setiap prosesor atau inti mengeksekusi thread
terpisah secara bersamaan.
Banyak sistem operasi modern langsung mendukung baik time-sliced dan
multiprosesor threading dengan scheduler proses. Kernel sistem operasi memungkinkan
programmer untuk memanipulasi threads melalui antarmuka system call. Beberapa
implementasi yang disebut kernel thread, sedangkan proses ringan (LWP) adalah jenis
spesifik kernel thread yang berbagi negara dan informasi yang sama.
Program dapat memiliki threads user-space ketika threading dengan timer, sinyal, atau
metode lain untuk menghentikan eksekusi mereka sendiri, melakukan semacam ad-hoc timeslicing.
Pengantar Message Parsing, OpenMP

Message Parsing dalam ilmu komputer adalah suatu bentuk komunikasi yang
digunakan dalam komputasi paralel, pemrograman berorientasi obyek, dan komunikasi antar.
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. Dengan menunggu pesan, proses juga dapat menyinkronkan
Message passing adalah paradigma komunikasi di mana pesan dikirim dari pengirim
ke satu atau lebih penerima. Bentuk pesan termasuk (remote) pemanggilan metode, sinyal,
dan paket data. Ketika merancang sebuah sistem lewat pesan beberapa pilihan yang dibuat:
Apakah pesan ditransfer andal

Apakah pesan dijamin akan disampaikan dalam rangka

Apakah pesan yang melewati satu-ke-satu (unicast), satu-ke-banyak (multicast atau


broadcast), banyak-ke-satu (client-server), atau banyak-ke-banyak (All-to-Semua).
Apakah komunikasi sinkron atau asinkron
Dasar teoritis yang menonjol perhitungan bersamaan, seperti model Aktor dan bate
proses didasarkan pada pesan lewat. Implementasi sistem konkuren yang menggunakan pesan
lewat dapat memiliki pesan lewat sebagai bagian integral dari bahasa, atau sebagai rangkaian
perpustakaan panggilan dari bahasa. Contoh mantan meliputi banyak sistem objek
terdistribusi. Contoh yang terakhir termasuk sistem operasi mikrokernel yang menyampaikan
pesan antara satu kernel dan satu atau lebih blok Server, dan Message Passing Antarmuka
yang digunakan dalam komputasi kinerja tinggi.
OpenMP adalah Application Program Interface (API), bersama-sama didefinisikan
oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak. OpenMP
menyediakan portabel, model yang terukur untuk pengembang aplikasi paralel memori
bersama. API mendukung C / C + + dan Fortran pada berbagai arsitektur. Tutorial ini
mencakup sebagian besar fitur utama OpenMP, termasuk berbagai konstruksi dan arahan
untuk menentukan daerah paralel, pembagian kerja, sinkronisasi dan lingkungan data. Fungsi
perpustakaan runtime dan variabel lingkungan juga dibahas. Tutorial ini mencakup baik C
dan Fortran kode contoh dan latihan laboratorium.
Tingkat / Prasyarat: Tutorial ini adalah salah satu dari delapan tutorial dalam 4 + hari
"Menggunakan Superkomputer LLNL" lokakarya. Hal ini ditujukan untuk mereka yang baru
untuk pemrograman paralel dengan OpenMP. Pemahaman dasar pemrograman paralel dalam
10

C atau Fortran diperlukan. Bagi mereka yang tidak terbiasa dengan Pemrograman Paralel
pada umumnya, materi yang dibahas dalam EC3500: Pengantar Komputasi Paralel akan
sangat membantu.

Pemrogramman CUDA GPU


CUDA adalah arsitektur komputasi paralel NVIDIA yang memungkinkan peningkatan
dramatis dalam kinerja komputasi dengan memanfaatkan kekuatan GPU (graphics processing
unit).
Dengan jutaan CUDA-enabled GPU terjual hingga saat ini, pengembang perangkat
lunak, ilmuwan dan peneliti yang menemukan penggunaan yang luas-luas untuk CUDA,
termasuk gambar dan pemrosesan video, biologi komputasi dan kimia, simulasi dinamika
fluida, CT rekonstruksi citra, analisis seismik, ray tracing , dan masih banyak lagi.
Komputer Paralel menggunakan CUDA
Komputasi berkembang dari "central processing" pada CPU untuk "co-processing"
pada CPU dan GPU. Untuk mengaktifkan ini paradigma komputasi baru, NVIDIA
menemukan arsitektur komputasi paralel CUDA yang sekarang pengiriman di GeForce, ION
Quadro, dan Tesla GPU, mewakili dasar terinstal signifikan untuk pengembang aplikasi. Di
pasar konsumen, hampir setiap aplikasi video yang konsumen utama telah, atau akan segera,
dipercepat oleh CUDA, termasuk produk dari Teknologi Elemental, MotionDSP dan LoiLo,
CUDA telah antusias diterima di bidang penelitian ilmiah. Misalnya, CUDA sekarang
mempercepat AMBER, sebuah program simulasi dinamika molekuler digunakan oleh lebih
dari 60.000 peneliti dalam dunia akademis dan perusahaan farmasi di seluruh dunia untuk
mempercepat penemuan obat baru.Di pasar keuangan, Numerix dan CompatibL
mengumumkan dukungan CUDA untuk aplikasi counterparty risk baru dan mencapai
speedup 18X. Numerix digunakan oleh hampir 400 lembaga keuangan. Indikator adopsi
CUDA adalah jalan dari Tesla GPU untuk komputasi GPU. Sekarang ada lebih dari 700
kelompok GPU terpasang di seluruh dunia di Fortune 500 perusahaan mulai dari
Schlumberger dan Chevron di sektor energi untuk BNP Paribas di bidang perbankan.
Dan dengan peluncuran terbaru dari Microsoft Windows 7 dan Apple Snow Leopard,
komputasi GPU akan mainstream. Dalam sistem operasi baru, GPU tidak hanya akan menjadi
prosesor grafis, tetapi juga tujuan paralel prosesor umum dapat diakses oleh aplikasi apapun.
11

Sumber
https://computing.llnl.gov/tutorials/openMP/
https://id.wikipedia.org/wiki/Komputasi_paralel
https://en.wikipedia.org/wiki/Thread_%28computing%29
http://www.nvidia.co.uk/object/cuda-parallel-computing-uk.html

MAKALAH
PENGAPLIKASIAN PARALALEL KOMPUTER

OLEH:
WIRA INDRAYANA
NIM: 14157049

12

STIKOM BINANIAGA
BOGOR
2016

13