Komputasi Parallel
KOMPUTASI PARALLEL
Apa itu Komputasi Parallel?
Komputasi parallel merupakan salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberaoa komputer secara bersamaan. Komputasi parallel membutuhkan :
- Algortima
- Bahasa Pemrogaraman
- Compiler
Mengapa menggunakan Komputasi Parallel?
Alasan menggunakan Komputasi Prallel adalah karena sebagai berikut :
- Hemat waktu dan / uang.
- Memecahkan masalah yang lebih besar / lebih kompleks.
- Memberikan Konsurensi.
- Mengambil keuntungan dari sumber daya non-lokal.
Siapa yang menggunakan Komputasi Parallel ?
Komputasi Parallel digunakan di berbagai bidang, seperti :
1. Sains dan Teknik
Komputasi Parallel telah digunakan untuk memodelkan masalah yang sulit di banyak bidang sains dan teknik :
- Atmosfer, Bumi, Lingkungan.
- Fisika - Terapan, nuklir, partikel, materi terkondensasi, tekanan tinggi, fusi, fotonik
- Biosains, Bioteknologi, Genetika.
- Kimia, Ilmu Molekuler.
- Geologi, Seismologi
- Teknik Mesin - dari prostetik hingga pesawat ruang angkasa.
- Teknik Elektro, Desain Sirkuit, Mikroelektronika.
- Ilmu Komputer, Matematika.
- Pertahanan, Senjata.
2. Industri dan Komersial
Saat ini, aplikasi komersial dan industri membutuhkan pengembangan komputer yang lebih cepat. aplikasi ini membutuhkan pemrosesan data dalam jumlah besar dengan cara yang canggih. Contohnya :
- "Big Data", database, penambangan data
- Kecerdasan Buatan (AI)
- Eksplorasi minyak
- Mesin pencari web, layanan bisnis berbasis web
- Pencitraan dan diagnosis medis
- Desain farmasi
- Pemodelan keuangan dan ekonomi
- Manajemen perusahaan nasional dan multinasional
- Grafik canggih dan virtual reality, khususnya di industri hiburan
- Video berjaringan dan teknologi multi-media
- Lingkungan kerja kolaboratif
3. Aplikasi Global
Komputasi paralel sekarang digunakan secara luas di seluruh dunia, dalam berbagai macam aplikasi.
KONSEP DAN TERMINOLOGI KOMPUTASI MODERN
1. Von Neumann Architecture
- Terdiri dari 4 komponen utama : Memori, Control Unit, ALU, Input / Output.
- Memori dalam operasinya menggunakan perintah read/write. program untuk memerintah komputer mengerjakan sesuatu. data sebuah informasi yang digunakan oleh program.
- Control Unit digunakan untuk mengambil data dari memory, menkodekan instruksi dan kemudian secara berurutan mengkoordinasikan operasi untuk menyelesaikan tugas yang diprogarm.
2. Pengelompokan FLYNN
Dibawah ini mendefinisikan 4 kemungkinan klasifikasi menurut Flynn :
- Komputer SISD (Single Instruction Stream - Single Data Stream).
- Komputer MISD (Multiple Instruction Stream - Single Data Stream).
- Komputer MIMD (Multiple Iinstruction Stream - Multiple Data Stream).
3. Beberapa Terminologi Paralel Umum
- Supercomputing / High performance Computing (HPC).
- Node.
- CPU / Socket / Processor / Core.
- Task
- Pipelining
- Shared Memory
- Symmetric Multi-Processor (SMP)
- Memory Terdistribusi.
- Komunikasi.
- Sinkronisasi.
- Granuality.
- Cluster Komputasi
4. Batas dan Biaya Pemrograman Paralel
- Hukum Amdahl
- Kompleksitas
- Portabilitas
- Persyaratan Sumber Daya
- Skalabilitas
- Skala yang kuat
- Penskalaan lemah
ARSITEKTUR MEMORI KOMPUTER PARALEL
Arsitektur memori komputasi paralel adalah sebagai berikut :
- Shared Memori
Karakteristik Shared Memori :
- Memori bersama komputer paralel sangat bervariasi, tetapi umumnya memiliki kesamaan kemampuan untuk semua prosesor untuk mengakses semua memori sebagai ruang alamat global.
- Beberapa prosesor dapat beroperasi secara independen tetapi berbagi sumber daya memori yang sama.
- Perubahan lokasi memori yang dilakukan oleh satu prosesor dapat dilihat oleh semua prosesor lainnya.
- Secara historis, mesin memori bersama telah diklasifikasikan sebagai UMA dan NUMA, berdasarkan waktu akses memori.
- UMA (Uniform Memory Access)
- Saat ini paling sering diwakili oleh mesin Symmetric Multiprocessor (SMP)
- Prosesor identik
- Akses yang sama dan waktu akses ke memori
- Kadang-kadang disebut CC-UMA – Cache Coherent UMA. Cache coherent berarti jika satu prosesor memperbarui lokasi dalam memori bersama, semua prosesor lain tahu tentang pembaruan tersebut. Koherensi cache dicapai pada tingkat perangkat keras.
- NUMA (Non-Uniform Memory Access)
- Seringkali dibuat dengan menghubungkan dua atau lebih SMP secara fisik
- Satu SMP bisa langsung mengakses memori SMP lain
- Tidak semua prosesor memiliki waktu akses yang sama ke semua memori
- Akses memori melalui link lebih lambat
- Jika koherensi cache dipertahankan, maka mungkin juga disebut CC-NUMA - Cache Coherent NUMA
- Keuntungan :
- Ruang alamat global memberikan perspektif pemrograman yang ramah pengguna ke memori.
- Berbagi data antar tugas cepat dan seragam karena kedekatan memori dengan CPU.
- Kekurangan :
- Kerugian utama adalah kurangnya skalabilitas antara memori dan CPU. Menambahkan lebih banyak CPU dapat secara geometris meningkatkan lalu lintas di jalur memori-CPU bersama, dan untuk sistem yang koheren cache, secara geometris meningkatkan lalu lintas yang terkait dengan cache / manajemen memori.
- Tanggung jawab programmer untuk konstruksi sinkronisasi yang memastikan akses "benar" dari memori global.
- Memori Terdistribusi
- Karakteristik Memori Terdistribusi :
- Seperti sistem memori bersama, sistem memori terdistribusi sangat bervariasi tetapi memiliki karakteristik yang sama. Sistem memori terdistribusi memerlukan jaringan komunikasi untuk menghubungkan memori antar prosesor.
- Prosesor memiliki memori lokalnya sendiri. Alamat memori dalam satu prosesor tidak dipetakan ke prosesor lain, jadi tidak ada konsep ruang alamat global di semua prosesor.
- Karena setiap prosesor memiliki memori lokalnya sendiri, ia beroperasi secara independen. Perubahan yang dibuat pada memori lokalnya tidak berpengaruh pada memori prosesor lain. Karenanya, konsep koherensi cache tidak berlaku.
- Ketika prosesor membutuhkan akses ke data di prosesor lain, biasanya tugas programmer untuk secara eksplisit menentukan bagaimana dan kapan data dikomunikasikan. Sinkronisasi antar tugas juga menjadi tanggung jawab programmer.
- "Fabric" jaringan yang digunakan untuk transfer data sangat bervariasi, meskipun dapat sesederhana Ethernet.
- Keuntungan :
- Memori dapat diskalakan dengan jumlah prosesor. Tingkatkan jumlah prosesor dan ukuran memori meningkat secara proporsional.
- Setiap prosesor dapat dengan cepat mengakses memorinya sendiri tanpa gangguan dan tanpa biaya tambahan yang timbul saat mencoba mempertahankan koherensi cache global.
- Efektivitas biaya: dapat menggunakan komoditas, prosesor siap pakai, dan jaringan.
- Kekurangan :
- Pemrogram bertanggung jawab atas banyak detail yang terkait dengan komunikasi data antar prosesor.
- Mungkin sulit untuk memetakan struktur data yang ada, berdasarkan memori global, ke organisasi memori ini.
- Waktu akses memori yang tidak seragam - data yang berada di node jauh membutuhkan waktu lebih lama untuk diakses daripada data lokal node.
- Memori Bersama-Terdistribusi Hibrid
- Karakteristik umum Memori Bersama-Terdistribusi Hibrid
- Komputer terbesar dan tercepat di dunia saat ini menggunakan arsitektur memori bersama dan terdistribusi. Komponen memori bersama dapat berupa mesin memori bersama dan / atau unit pemrosesan grafis (GPU).
- Komponen memori terdistribusi adalah jaringan dari beberapa mesin memori / GPU bersama, yang hanya mengetahui memori mereka sendiri - bukan memori di komputer lain. Oleh karena itu, komunikasi jaringan diperlukan untuk memindahkan data dari satu mesin ke mesin lainnya.
- Tren saat ini tampaknya menunjukkan bahwa jenis arsitektur memori ini akan terus berlaku dan meningkat pada komputasi kelas atas di masa mendatang.
- Keuntungan dan kerugian
- Apa pun yang umum untuk arsitektur memori bersama dan terdistribusi.
- Peningkatan skalabilitas merupakan keuntungan penting
- Kompleksitas programmer yang meningkat merupakan kerugian penting
Model Pemrograman Paralel
- Shared Memory Model
Dalam model pemrograman ini, proses / tugas berbagi ruang alamat yang sama, yang - Threads Model
- Distributed Memory / Message Passing Model
- Serangkaian tugas yang menggunakan memori lokalnya sendiri selama komputasi. Beberapa tugas dapat berada di mesin fisik yang sama dan / atau di sejumlah mesin yang berubah-ubah.
- Tugas bertukar data melalui komunikasi dengan mengirim dan menerima pesan.
- Transfer data biasanya membutuhkan operasi kooperatif yang akan dilakukan oleh setiap proses. Misalnya, operasi pengiriman harus memiliki operasi terima yang cocok.
- Data Parallel Model
- Hybrid Model
- SPMD dan MPMD
- Single Program Multiple Data (SPMD)
- Multiple Program Multiple Data (MPMD)
Merancang Program Paralel
- Paralelisasi Otomatis vs. Manual
Merancang dan mengembangkan program paralel secara khas merupakan proses yang
sangat manual. Pemrogram biasanya bertanggung jawab untuk mengidentifikasi dan
benar-benar menerapkan paralelisme.
- Pahami Masalah dan Programnya
- Mempartisi
Ada dua cara dasar untuk mempartisi pekerjaan komputasi di antara tugas-tugas paralel:
dekomposisi domain dan dekomposisi fungsional.
- Komunikasi
- Sinkroniasi
- Mengelola urutan pekerjaan dan tugas yang melakukannya adalah pertimbangan desain penting untuk sebagian besar program paralel.
- Dapat menjadi faktor penting dalam kinerja program (atau kekurangannya)
- Seringkali membutuhkan "serialisasi" dari segmen program.
- Dependensi Data
Ketergantungan ada antara pernyataan program ketika urutan eksekusi pernyataan
mempengaruhi hasil program Ketergantungan data hasil dari beberapa penggunaan
lokasi yang sama dalam penyimpanan oleh tugas yang berbeda Ketergantungan penting
untuk pemrograman paralel karena mereka adalah salah satu dari penghambat utama
paralelisme.
- Load Balancing
Load Balancing mengacu pada praktik mendistribusikan jumlah pekerjaan yang kira-kira - Granuality
- Input / Output
- Debugging
- Analisis Kinerja dan Tuning
Contoh Parallel :
- Array Processing
- Perhitungan PI
- Simple Heat Equation
- 1-D Wave Equation

Komentar
Posting Komentar