Parallel computing adalah penggunakan lebih dari
satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel
processing membuat program berjalan lebih cepat karena semakin banyak CPU yang
digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga
dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan. Maksudnya program
dijalankan dengan banyak CPU secara bersamaan dengan tujuan untuk membuat
program yang lebih baik dan dapat diproses dengan cepat. Dapat diambil
kesimpulan bahwa pada parallel processing berbeda dengan istilah multitasking,
yaitu satu CPU mengangani atau mengeksekusi beberapa program sekaligus,
parallel processing dapat disebut juga dengan istilah parallel computing. 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.
1. Komputasi Seri
Secara tradisional, perangkat lunak telah ditulis untuk perhitungan serial
:
o Masalah dipecah menjadi
serangkaian instruksi yang terpisah
o Instruksi dieksekusi
secara berurutan satu demi satu
o Dieksekusi pada satu
prosesor
o Hanya satu instruksi yang
dapat dijalankan kapan saja
2. Komputasi
Paralel:
Dalam pengertian yang paling sederhana, komputasi paralel adalah penggunaan
simultan sumber daya komputasi ganda untuk memecahkan masalah komputasi:
o Masalah dipecah menjadi
bagian-bagian terpisah yang dapat dipecahkan secara bersamaan
o Setiap bagian selanjutnya
dipecah menjadi serangkaian instruksi
o Instruksi dari setiap
bagian dijalankan secara bersamaan pada prosesor yang berbeda
o Keseluruhan mekanisme
kontrol / koordinasi digunakan
Mengapa Menggunakan Komputasi Paralel?
Dunia Nyata secara Paralel Masif:
Di dunia alami, banyak peristiwa kompleks dan saling terkait terjadi pada
saat yang sama, namun dalam urutan temporal. Dibandingkan dengan komputasi
serial, komputasi paralel jauh lebih cocok untuk pemodelan, simulasi, dan
pemahaman fenomena dunia nyata yang kompleks. Sebagai contoh, bayangkan
pemodelan ini secara seri:
Dimasa depan, selama 20+ tahun terakhir, tren yang ditunjukkan oleh
jaringan yang semakin cepat, sistem terdistribusi, dan arsitektur komputer
multi-prosesor (bahkan pada tingkat desktop) jelas menunjukkan bahwa
paralelisme adalah masa depan komputasi . Dalam periode waktu yang sama ini,
ada peningkatan lebih dari 500.000x dalam kinerja superkomputer, tanpa akhir
yang terlihat. Perlombaan sudah berjalan
untuk Exascale Computing!
o Exaflop = 10 18
perhitungan per detik
Siapa yang menggunakan komputasi paralel?
Sains dan Teknik:
Secara historis, komputasi paralel telah dianggap sebagai "ujung
komputasi yang tinggi", dan telah digunakan untuk memodelkan
masalah-masalah sulit di banyak bidang sains dan teknik:
o Atmosfer, Bumi,
Lingkungan
o Fisika - diterapkan,
nuklir, partikel, materi terkondensasi, tekanan tinggi, fusi, fotonik
o Biosains, Bioteknologi,
Genetika
o Kimia, Ilmu Molekuler
o Geologi, Seismologi
o Teknik Mesin - dari
prosthetics ke pesawat ruang angkasa
o Teknik Listrik, Desain
Sirkuit, Mikroelektronika
o Ilmu Komputer, Matematika
o Pertahanan, Senjata
Industri dan komersial:
Saat ini, aplikasi komersial memberikan kekuatan
pendorong yang sama atau lebih besar dalam pengembangan komputer yang lebih
cepat. Aplikasi ini membutuhkan pemrosesan data dalam jumlah besar dengan cara
yang canggih. Sebagai contoh:
o "Big Data",
basis data, penggalian data
o Kecerdasan Buatan (AI)
o Mesin pencari web,
layanan bisnis berbasis web
o Pencitraan dan diagnosis
medis
o Desain farmasi
o Pemodelan keuangan dan
ekonomi
o Manajemen perusahaan nasional
dan multi-nasional
o Grafis canggih dan
realitas virtual, khususnya di industri hiburan
o Video jaringan dan
teknologi multi-media
o Eksplorasi minyak
Taksonomi Klasik Flynn
Salah satu klasifikasi yang lebih banyak digunakan, digunakan sejak 1966,
disebut Flynn's Taxonomy. Taksonomi Flynn membedakan arsitektur komputer
multi-prosesor berdasarkan bagaimana mereka dapat diklasifikasikan di sepanjang
dua dimensi independen dari Instruction Stream dan Data Stream . Masing-masing
dimensi ini hanya dapat memiliki satu dari dua status yang mungkin: Tunggal
atau Banyak. Matriks di bawah ini mendefinisikan 4 klasifikasi yang mungkin
menurut Flynn:
1. Instruksi Tunggal, Data Tunggal (SISD):
• Komputer serial
(non-paralel)
• Instruksi Tunggal: Hanya
satu aliran instruksi yang dijalankan oleh CPU selama satu siklus satu jam
• Data Tunggal: Hanya satu
aliran data yang digunakan sebagai input selama satu siklus satu jam
• Eksekusi deterministik
• Ini adalah tipe komputer
tertua
• Contoh: mainframe
generasi lama, minicomputer, workstation dan prosesor tunggal / PC inti.
2. Instruksi Tunggal, Banyak Data (SIMD):
• Suatu jenis komputer
paralel
• Instruksi Tunggal: Semua
unit pemrosesan menjalankan instruksi yang sama pada setiap siklus clock yang
diberikan
• Banyak Data: Setiap unit
pemrosesan dapat beroperasi pada elemen data yang berbeda
• Paling cocok untuk
masalah khusus yang ditandai dengan tingkat keteraturan yang tinggi, seperti
pemrosesan gambar / gambar.
• Sinkronisasi (lockstep)
dan eksekusi deterministik
• Dua varietas: Susunan
Prosesor dan Saluran Pipa Vektor
• Sebagian besar komputer
modern, terutama yang memiliki unit prosesor grafis (GPU) menggunakan instruksi
dan unit eksekusi SIMD.
3. Instruksi Berganda, Data Tunggal (MISD):
• Suatu jenis komputer
paralel
• Instruksi Berganda:
Setiap unit pemrosesan beroperasi pada data secara independen melalui aliran
instruksi terpisah.
• Data Tunggal: Aliran data
tunggal dimasukkan ke dalam beberapa unit pemrosesan.
• Beberapa (jika ada)
contoh nyata dari kelas komputer paralel ini pernah ada.
4. Banyak Instruksi, Banyak Data (MIMD):
• Suatu jenis komputer
paralel
• Instruksi Berganda:
Setiap prosesor dapat menjalankan aliran instruksi yang berbeda
• Banyak Data: Setiap
prosesor dapat bekerja dengan aliran data yang berbeda
• Eksekusi dapat sinkron
atau asinkron, deterministik atau non-deterministik
• Saat ini, jenis komputer
paralel yang paling umum - kebanyakan superkomputer modern termasuk dalam
kategori ini.
• Contoh: sebagian besar
komputer super saat ini, jaringan komputer paralel dan "grid",
komputer SMP multi-prosesor, PC multi-core.
• Catatan: banyak arsitektur
MIMD juga menyertakan sub-komponen eksekusi SIMD
Komentar
Posting Komentar