Definisi Komputasi Paralel
Komputasi paralel adalah jenis arsitektur
komputasi di mana beberapa prosesor secara bersamaan melakukan beberapa,
perhitungan yang lebih kecil yang dipecah dari keseluruhan masalah yang lebih
besar dan kompleks.
Komputasi paralel mengacu pada proses
memecah masalah yang lebih besar menjadi bagian-bagian yang lebih kecil,
mandiri, sering serupa yang dapat dieksekusi secara bersamaan oleh beberapa
prosesor yang berkomunikasi melalui memori bersama, yang hasilnya digabungkan
setelah selesai sebagai bagian dari keseluruhan algoritma. Tujuan utama dari
komputasi paralel adalah untuk meningkatkan daya komputasi yang tersedia untuk
pemrosesan aplikasi yang lebih cepat dan penyelesaian masalah.
Infrastruktur komputasi paralel biasanya ditempatkan
di dalam pusat data tunggal di mana beberapa prosesor dipasang di rak server;
permintaan perhitungan didistribusikan dalam potongan-potongan kecil oleh
server aplikasi yang kemudian dijalankan secara bersamaan di setiap server.
Pada umumnya ada empat jenis komputasi
paralel, tersedia dari vendor komputasi paralel berpemilik dan sumber terbuka -
paralelisme tingkat bit, paralelisme tingkat instruksi, paralelisme tugas, atau
paralelisme tingkat superword:
·
Paralelisme tingkat-bit: meningkatkan ukuran
kata prosesor, yang mengurangi jumlah instruksi yang harus dijalankan prosesor
untuk melakukan operasi pada variabel yang lebih besar daripada panjang kata.
·
Paralelisme tingkat instruksi: pendekatan
perangkat keras bekerja berdasarkan paralelisme dinamis, di mana prosesor
memutuskan pada saat run-time instruksi mana yang harus dieksekusi secara
paralel; pendekatan perangkat lunak bekerja berdasarkan paralelisme statis, di
mana kompiler memutuskan instruksi mana yang harus dieksekusi secara paralel.
·
Paralelisme tugas: suatu bentuk paralelisasi
kode komputer di beberapa prosesor yang menjalankan beberapa tugas berbeda pada
saat yang sama pada data yang sama
·
Paralelisme tingkat-kata: suatu teknik
vektorisasi yang dapat mengeksploitasi paralelisme kode inline
Aplikasi paralel biasanya diklasifikasikan sebagai
paralelisme berbutir halus, di mana subtugas akan berkomunikasi beberapa kali
per detik; paralelisme berbutir kasar, di mana subtugas tidak berkomunikasi
beberapa kali per detik; atau paralelisme yang memalukan, di mana subtugas
jarang atau tidak pernah berkomunikasi. Pemetaan dalam komputasi paralel
digunakan untuk memecahkan masalah paralel yang memalukan dengan menerapkan
operasi sederhana ke semua elemen dari urutan tanpa memerlukan komunikasi antara
subtugas.
Mempopulerkan dan evolusi komputasi paralel pada abad ke-21
datang sebagai tanggapan atas skala frekuensi prosesor yang menabrak dinding
daya. Peningkatan frekuensi meningkatkan jumlah daya yang digunakan dalam
prosesor, dan penskalaan frekuensi prosesor tidak lagi layak setelah titik
tertentu; Oleh karena itu, programmer dan produsen mulai merancang perangkat
lunak sistem paralel dan memproduksi prosesor yang efisien daya dengan banyak
inti untuk mengatasi masalah konsumsi daya dan unit pemrosesan pusat yang
terlalu panas.
Pentingnya komputasi paralel terus tumbuh dengan
meningkatnya penggunaan prosesor multicore dan GPU. GPU bekerja bersama dengan
CPU untuk meningkatkan throughput data dan jumlah perhitungan bersamaan dalam
suatu aplikasi. Menggunakan kekuatan paralelisme, GPU dapat menyelesaikan lebih
banyak pekerjaan daripada CPU dalam jumlah waktu tertentu.
Dasar-dasar
Arsitektur Komputer Paralel
Arsitektur komputer paralel ada dalam berbagai macam
komputer paralel, diklasifikasikan menurut tingkat di mana perangkat keras
mendukung paralelisme. Arsitektur komputer paralel dan teknik pemrograman
bekerja bersama untuk secara efektif memanfaatkan mesin ini. Kelas-kelas
arsitektur komputer paralel meliputi:
·
Komputasi multi-core: Prosesor multi-core adalah
sirkuit terintegrasi prosesor komputer dengan dua atau lebih inti pemrosesan
yang terpisah, yang masing-masing menjalankan instruksi program secara paralel.
Core diintegrasikan ke beberapa cetakan dalam satu paket chip atau ke satu
rangkaian mati terintegrasi, dan dapat mengimplementasikan arsitektur seperti
multithreading, superscalar, vektor, atau VLIW. Arsitektur multi-inti
dikategorikan sebagai homogen, yang hanya mencakup inti identik, atau
heterogen, yang mencakup inti yang tidak identik.
·
Multiprosesor simetris: arsitektur perangkat
keras komputer dan perangkat lunak multiprosesor di mana dua atau lebih prosesor
homogen dikendalikan oleh satu sistem operasi tunggal yang memperlakukan semua
prosesor secara sama, dan terhubung ke memori utama tunggal yang dibagikan
dengan akses penuh ke semua sumber daya umum dan perangkat. Setiap prosesor
memiliki memori cache pribadi, dapat dihubungkan menggunakan jaringan mesh
on-chip, dan dapat bekerja pada tugas apa pun di mana pun data untuk tugas itu
berada di memori.
·
Komputasi terdistribusi: Komponen sistem
terdistribusi terletak pada komputer jaringan yang berbeda yang
mengoordinasikan tindakan mereka dengan berkomunikasi melalui HTTP murni,
konektor mirip RPC, dan antrian pesan. Karakteristik signifikan dari sistem
terdistribusi termasuk kegagalan komponen independen dan konkurensi komponen.
Pemrograman terdistribusi biasanya dikategorikan sebagai client-server,
three-tier, n-tier, atau arsitektur peer-to-peer. Ada banyak tumpang tindih
dalam komputasi paralel dan terdistribusi dan istilah-istilah tersebut kadang
digunakan secara bergantian.
·
Komputasi paralel masif: mengacu pada penggunaan
banyak komputer atau prosesor komputer untuk secara bersamaan menjalankan
serangkaian komputasi secara paralel. Salah satu pendekatan melibatkan
pengelompokan beberapa prosesor dalam sebuah cluster komputer terstruktur yang
terstruktur. Pendekatan lain adalah komputasi grid, di mana banyak komputer
terdistribusi secara luas bekerja bersama dan berkomunikasi melalui Internet
untuk memecahkan masalah tertentu.
Arsitektur komputer paralel lainnya termasuk komputer
paralel khusus, komputasi cluster, komputasi grid, prosesor vektor, sirkuit
terintegrasi khusus aplikasi, komputasi tujuan umum pada unit pemrosesan grafis
(GPGPU), dan komputasi yang dapat dikonfigurasi ulang dengan array gerbang yang
dapat diprogram di lapangan. Memori utama dalam setiap struktur komputer
paralel adalah memori terdistribusi atau memori bersama.
Solusi dan Teknik
Perangkat Lunak Komputasi Paralel
Bahasa pemrograman bersamaan, API, perpustakaan, dan model
pemrograman paralel telah dikembangkan untuk memfasilitasi komputasi paralel
pada perangkat keras paralel. Beberapa solusi dan teknik perangkat lunak
komputasi paralel meliputi:
·
Application checkpointing: teknik yang
memberikan toleransi kesalahan untuk sistem komputasi dengan merekam semua
status variabel aplikasi saat ini, memungkinkan aplikasi untuk memulihkan dan
memulai kembali dari titik itu dalam kasus kegagalan. Checkpointing adalah
teknik penting untuk sistem komputasi yang sangat paralel di mana komputasi
kinerja tinggi dijalankan di sejumlah besar prosesor.
·
Paralelisasi otomatis: mengacu pada konversi
kode sekuensial menjadi kode multi-ulir untuk menggunakan beberapa prosesor
secara bersamaan dalam mesin shared-memory multiprocessor (SMP). Teknik
paralelisasi otomatis meliputi Parse, Analisis, Jadwal, dan Pembuatan Kode.
Contoh-contoh umum dari kompilator paralelisasi dan alat adalah kompilator
Paradigm, kompiler Polaris, kompiler Rice Fortran D, kompiler SUIF, dan
kompiler Vienna Fortran.
·
Bahasa pemrograman paralel: Bahasa pemrograman
paralel biasanya diklasifikasikan sebagai memori terdistribusi atau memori
bersama. Sementara bahasa pemrograman memori terdistribusi menggunakan passing
pesan untuk berkomunikasi, bahasa pemrograman memori bersama berkomunikasi
dengan memanipulasi variabel memori bersama.
0 comments:
Post a Comment