Thursday, July 2, 2020

paralel komputasi


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