Definisi Komputasi Parallel
Komputasi parallel adalah penggunaan multiprosesor atau komputer dengan
kemampuan melakukan pengolahan parallel yaitu melakukan pekerjaan bersama pada
berbagai tugas. Pengolahan parallel adalah pengolahan informasi yang menekankan
pada manipulasi data-data elemen secara simultan. Dalam komputasi parallel
setiap prosesor bekerja pada bagian atas masalah dan Prosesor dapat bertukar
informasi.
Konsep Proses Komputasi Parallel (Paralel Processing)
Paralel Processing adalah kemampuan
menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara
simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah
teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk
mempercepat proses penyelesaian masalah.
Terdapat dua hukum yang berlaku dalam sebuah parallel processing. yaitu:
·
Hukum Amdahl
Amdahl berpendapat, “Peningkatan
kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses
sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk
menyelesaikan sebuah masalah.”
·
Hukum
Gustafson
Pendapat yang dikemukakan Gustafson
hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi
paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat
penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan
mesin dan kecepatan proses tiap-tiap mesin yang digunakan.
Gambar diatas merupakan contoh dari sebuah komputasi paralel, dimana pada
gambar diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi
menjadi beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.
Paradigma Komputasi Parallel
Taksonomi Komputasi Parallel oleh T.G Lewis membagi 2 klasifikasi yaitu
synchronous dan asynchrounous.
M.J Flynn
menciptakan satu diantara sistem klasifikasi untuk komputer dan program
parallel, yang dikenal dengan Taksonomi Flynn.Beliau membagi
komputer dalam 4 model, yaitu :
- SISD (Single
Instruction stream, Single Data stream) adalah satu CPU mengeksekusi
instruksi satu persatu dan satu CPU memanggil atau menyimpan data satu
persatu. Beberapa contoh komputer yang
menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP
1.
- SIMD (Single
Instruction stream, Multiple Data stream) adalah satu contol unit
mengeksekusi aliran tunggal instruksi dan terdapat lebih dari satu
processing unit. 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).
- MISD (Multiple
Instruction stream, Single Data stream) adalah terdapat beberapa
processing unit yang mengeksekusi instruksi berbeda dengan data yang sama
dan data mengalir ke processing unit serial. Sampai saat ini belum ada komputer yang menggunakan model MISD.
- MIMD (Multiple
Instruction stream, Multiple Data stream) adalah multiprocessor dan
terdapat lebih dari satu instruksi yang dapat dieksekusi terhadap data
masing-masing. Beberapa komputer yang
menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel
IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Michael J.
Quinn membagi
menjadi:
Data
Parallelism
- penerapan operasi yang
sama secara simultan terhadap elemen-elemen dari kumpulan data
Control
Parallelism
- penerapan
operasi-operasi berbeda terhadap elemen-elemen data yang berbeda secara
bersamaan.
- dapat terjadi aliran
data antar proses-proses dan kemungkinan terjadi aliran data yang
kompleks/rumit.
- Pipeline merupakan
satu kasus khusus dari control parallelism, dimana aliran data membentuk
jalur yang sederhana
Tujuan Komputasi Parallel
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.
Pemrograman
Paralel
Pemrograman Paralel sendiri adalah
teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara
bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan
oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer,
biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer
digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan
PVM (Parallel Virtual Machine).
Yang perlu diingat adalah komputasi paralel
berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan
processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun
beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa
komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan
proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti
mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah
dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor
atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von
Neumann.
Perbedaan
Komputasi Tunggal Dengan Komputasi Paralel
Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi
paralel, bisa digambarkan pada gambar di bawah ini:
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja
komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data
yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban
mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah
karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika
kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang
ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan
jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi
tunggal.
Hubungan Antara Komputasi Modern dan Parallel Processing
Pemrosesan
paralel juga disebut komputasi paralel. Dalam upaya lebih murah pengolahan
komputasi paralel menyediakan alternatif pilihan yang layak. Waktu idle siklus
prosesor di seluruh jaringan dapat digunakan secara efektif oleh perangkat
lunak komputasi terdistribusi yang canggih. Pengolahan paralel istilah
digunakan untuk mewakili kelas besar teknik yang digunakan untuk memberikan
tugas pengolahan simultan data untuk tujuan meningkatkan kecepatan komputasi
dari sistem komputer.
Bahasa populer dalam Pemrograman Paralel
1.
MPI (Message Passing Interface) -> bahasa
pemrograman dengan basis pertukaran pesan.
2.
Open MP -> cara kerja nya sama dengan MPI
tetapi lebih mudah untuk digunakan.
Pada awalnya
pemrograman paralel dilakukan pada CPU (Central Processing Unit) yang memiliki
lebih dari 1 Core (Inti), dan pada saat itu hanya super computer saja yang
memiliiki CPU dengan lebih dari 1 inti, dan paralelisasi dilakukan dengan
melalui jaring komputer.
Keuntungan dan kekurangan Komputasi
Parallel
Keuntungan :
- Waktu eksekusi lebih
cepat dan efisien
- Throughput jadi lebih
tinggi (throughput adalah banyaknya keluaran yang dihasilkan per unit
waktu)
- Dapat memecahkan
masalah yang lebih besar
Kekurangan :
- Membutuhkan daya yang besar untuk perangkat yang dibutuhkan
- Perangkat keras lainnya yang dibutuhkan
- Kebutuhan daya juga lebih
- Tidak baik untuk daya rendah dan perangkat mobile
- Paralel processing adalah salah satu teknik komputasi modern larena membutuhkan banyak prosesor maka biaya mahal
Perkembangan
Komputasi Paralel Pada Masa Kini
Komputasi paralel pada masa kini dapat
diimplementasikan pada komputer-komputer rumah (Home User). Karena saat ini
komputer-komputer sudah memiliki lebih dari 1 core, sehingga dapat
diimplementasikan dengan mudah. Akan tetapi penggunaan CPU pada komputasi
paralel dirasa kurang memiliki performance yang optimal, sehingga para
developer dari NVIDIA mengembangkan hardware yang diberi nama GPU (Graphical
Processing Unit) pada tahun 1999, GPU memiliki performance yang jauh lebih baik
daripada CPU karena memiliki Core (Inti) yang lebih banyak daripada CPU, 1 inti
dapat memiliki banyak thread (Benang), sehingga program dapat berjalan dengan
optimal.
NVIDIA juga mengembangkan sebuah software
yang dapat digunakan bersamaan dengan GPU NVIDIA, software tersebut diberi nama
CUDA (Compute Unified Device Architecture). CUDA digunakan untuk mengendalikan
GPU sehingga dapat berjalan dengan optimal dan dikendalikan dengan mudah.
NVIDIA memiliki 3 arsitektur GPU yang
dapat digunakan untuk komputasi paralel, arsitektur tersebut adalah
- NVIDIA Tesla Architecture
- NVIDIA Fermi Architecture
- NVIDIA Kepler Architecture
Arsitektur yang pertama kali diproduksi
secara massal oleh NVIDIA adalah Tesla. Lalu selanjutnya dioptimalkan dengan
Fermi, dan yang saat ini paling banyak digunakan adalah Kepler. Pemrograman
dengan CUDA ditulis dengan bahasa C sehingga dapat diimplementasikan dengan
mudah.
Implementasi
Komputasi Parallel
Penerapan
Komputasi Paralel Bisa di terapkan pada Bidang Ilmu Pengetahuan & Teknik
komputasi paralel telah dianggap sebagai “high end computing”, dan telah
digunakan untuk memodelkan masalah sulit dalam banyak bidang ilmu pengetahuan
dan teknik , sebagai contoh diterapkan pada :
- Ilmu Fisika
- Bioteknologi
- Bioscience
- Pembuatan Pesawat Luar
Angkasa pada Bidang Teknik
- Pembuatan Circuit
untuk Elektronika
URL :
Tidak ada komentar:
Posting Komentar