Kita sering mendengar tentang komputasi paralel namun banyak petanyaan yang berhungungan dengan kalimat Komputasi Paralel seperti, Apa itu Komputer Paralel?, bagaimana cara kerjanya?, apa kegunaannya dan pertanyaan sebagainnya, maka untuk menjawab pertenyan - pertanyaan yang sering mencul mengenai Komputasi Paralel. Pada Postingan ini akan membahas mengenai Komputasi Paralel, semoga dapat membantu pembaca memahami lebih dalam tentang Komputasi Parale.
What Is Parallel Computing ?
Komputasi atau computing merupakan segala aktivitas menggunakan komputer untuk mengelola, memproses, dan mengkomunikasi informasi.
Komputasi terbagi menjadi 2 yaitu :
ØSerial Computing
Secara tradisional, software digunakan untuk perhitungan serial,
l Masalah dipecahkan menjadi serangkaian instruksi yang terpisah
l Instruksi dieksekusi berurutan satu demi satu
l Dieksekusi pada satu prosesor
l Hanya satu instruksi yang dapat dijalankan kapan saja
ØParallel Computing
Secara sederhana atau secara umum Komputasi Paralel merupakan penggunaan simultan(secara bersamaan) sumber daya komputasi untuk memecahkan masalah komputasi,
lMasalah dipecahkan secara bersamaan
lSetiap bagian lebih lanjut dipecah menjadi serangkaian instruksi
linstruksi dari setiap bagian yanga dijalankan secara bersamaan pada prosesor yang berbeda
lMekanisme kontrol/koordinasi keseluruhan yang digunakan
Why Use Parallel Computing ?
The Real world is Massively Parallel
lBanyak peristiwa kompleks dan saling terkait pada saat bersamaan namun dalam urutan terporal (sementara)
lDibandingkan komputasi Serial, komputasi parallel lebih cocok untuk pemodelan, simulasi dan pemahaman fenomena nyata yang kompleks, cotohnya: bayangan
Alasan utama digunakannya komputasi paralel adalah :
lSave Time and Money
lSolve Large or more complex promblems
lProvide Concurrency
lTake advantage of non-locak resource
lMake better of underlying parallel hardware
The Future
Selama 20 tahun terakhir, tren jaringan yang semakin cepat, sistem terdistribusi, dan arsitektur komputer multi-prosesor menujukkan bahwa paralelisme adalah masa depan komputasi mendatang. Dalam periode waktu yang sama, ada peningkatan lebih dari 500.000x dakam kinerhja superkomputer, tanpa akhir yang terlihat saat ini.
Exascale Computing Exaflop =1018 perhitungan perdetik
Who is Using Parallel Computing ?
a. Science and Engineering
Seecara histori komputasi paralel telang dianggap sebagai “ujung komputasi yang tinggi”, dan digunakan untuk memodelkan masalah-masalah sulit dibanyak bidang sains dan teknik, diantaranya :
l Atmosfer, bumi, lingkungan
l fisika terapan, nuklir, partikel, materi terkondensasi, tekanan tinggi
l Biosains, Bioteknologi, Genetik
l Kimia, Ilmu Molekuler
l Geologi, Seismologi Makanis
l Ilmu komputer, matematika
l Pertahanan, senjata
b. Industrial and Commercial
saat ini, aplikasi komersial memberikan kekuatan dan dorongan yang sama bahkan lebih besar dalam pengembangan komputer yang lebih cepat, aplikasi ini membutuhkan pemrosesan data dalam jumlah besar dengan cara yang canggih, cntohnya :
l Big data, basis data, data mining
l AI (Artificial Intelligence)
l Web Search Engines, layanan bisnis berbasis web
l Medicial Imaging and diagnosis
l Manajemen perusahaan
l Advanced graphics dan virtual reality, khususnya di industri hiburan
l Networked video dan teknologi multimedia
l Eksplorasi minyak
Aplikasi Global :
Komputasi paralel sekarang digunakan secara luas diseluruh dunia, dalam beragam aplikasi
Konsep dan Terminologi
Von Neaumann Architecture
Ahli matematika Hungaria John Von Neumann yang pertama kali menulis persyaratan umum untuk komputer elektronik dalam makalahnya tahun 1945, juga dikenal sebagai “Stored-program computer” instruksi dan data program disimpan dalam memori elektronik. Sejak arsitektur ini ada semua komputer mengikuti arsitektur ini yang mulanya komputer diprogram melalui “hard wiring” sekarang sudah mengikuti arsitektur ini.
Terdiri dari 4 komponen utama :
· Memory
· Control Unit
· Arithmetic Logic Unit
· Input/Output
l Read/Write, memori akses Random digunakan untuk menyimpan instruksi dan data program
l instruksi program adalah data kode yang memberi tahu komputer untuk melakukan sesuatu
l Data hanyalah informasi yang akan digunakan oleh program
l Unit Kontrol mengambil instruksi/data dari memori, mengkode instruksi dan kemudian mengoordinasikan operasi secara sequential untuk menyelesaikan tugas yang diprogram
l Unit Aritmatika melakukan operasi aritmatika dasar
l Input/Output adalah antarmuka ke operator manusia
Flynn’s Classical Taxonomy
Ada berbagai cara untuk mengkasifikasikan komputer paralel, dibawah ini mendefinisikan 4 klasifikasi menurut Flynn :
1. Instruksi tunggal, data tunggal (SISD)
a) Komputer serial(Non-paralel)
b) Instruksi tunggal : hanya aliran instruksi yang dijalankan oleh CPU selama satu siklus satu jam
c) Single data : hanya satu aliran data yang digunakan sebagai input selama siklus
d) Eksekusi deterministik
e) Jenis komputer tertua
Contoh : mainframe generasi lama, minicomputer, workstation dan prosesor tunggal/Pc
2. Instruksi Tunggal, Banyak Data (SIMD)
a) Jenis komputer paralel
b) Instruksi tunggal : semua unit pemrosesan mejnalankan instruksi yang sama pada setiap clock cycle yang diberika
c) Banyak data : setiap unit pemrosesan dapat beroperasi pada elemen data yang berbeda
d) Paling cocok untuk masalah khusus yang ditandai dengan tingkat keteraturan yang tinggi, seperti pemrosesan gambar
Contoh : susunan prosesor Thinking Machines CM-2, MasPar MP-1 & MP-2, ILLIAC IV
3. Intruksi Berganda, Data Tunggal (MISD)
a) Jenis komputer paralel
b) Multiple Instruction: Setiap unit pemrosesan beroperasi pada data secara independen melalui aliran instruksi yang terpisah.
c) Data Tunggal: Aliran data tunggal dimasukkan ke dalam beberapa unit pemrosesan
d) Beberapa kegunaannya
I. Beberapa filter frekuensi yang beroperasi pada aliran sinyal tunggal
II. Beberapa algoritma kriptograsi berusaha memecahkan satu pesan berkode
4. Banyak Inatruksi, Banyak Data (MIMD)
a) Jenis komputer paralel
b) Multiple Instruction: Setiap prosesor dapat menjalankan aliran instruksi yang berbeda
c) Banyak Data: Setiap prosesor dapat bekerja dengan aliran data yang berbeda
d) Eksekusi bisa sinkron atau asinkron, deterministik atau non-deterministik
e) 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.
Beberapa Termonologi Paralel umum :
l Supercomputing / Hidh Performance Computing (HPC)
l Node
l CPU /Soket/Processor/Core
l Task
l Pipelining
l Shared Memory
l Symmetric Multi_Processor(SMP)
l Distributed Memory
l Communications
l Synchronization
l Granularity
l Observed Speedup
l Parallel Overhead
l Massively Parallel
l Embarrassingly Parallel
l Scalability
Limits and Costs of Parallel Programming
Hukum Amdahl :
Menyatakan bahwa potensi program Speedup ditentukan oleh fraksi kode(P) yang dapat diparalelkan :
l Jika tidak ada kode yang dapat diparalelkan, P = 0 dan speedup = 1 (tidak ada speedup).
l Jika semua kode diparalelkan, P = 1 dan speedup tidak terbatas (dalam teori).
l Jika 50% dari kode dapat diparalelkan, speedup maksimum = 2, artinya kode akan berjalan dua kali lebih cepat.
l Memperkenalkan jumlah prosesor yang melakukan fraksi paralel dari pekerjaan, hubungannya dapat dimodelkan dengan:
di mana P = fraksi paralel, N = jumlah prosesor dan S = fraksi serial.
Shared Memory
- Ø General Characteristics
- Ø Uniform Memory Access (UMA)
- Ø Non-Uniform Memory Access (NUMA)
- Ø Advantages
- Ø Disadvantages
Shared Memeory (UMA)
Shared Memory (NUMA)
Parallel Programming Models
1. Overview
2. Shared Memeory Model
3. Threads Model
4. Ditributed Memeory /Message Passing Model
5. Data Parallel Model
6. Hybrid Model
7. Single Program Multiple (SMD) and Multiple Program Multiple Data (MPMP)
Designing Parallel Programs
1. Automatic VS Manual Parallezation
2. Understand the Problem and the Program
3. Partitioning
4. Communications
5. Synchronization
6. Data Sependencies
7. Load Balancing
8. Granularity
9. I/O
10. Debugging
11. Performance Analysis and Turning
Parallel Examples :
ü Simple Heat Equation
sebagian besar masalah dalam komputasi paralel memerlukan komunikasi diantara tugas-tugas yang ada, sejumlah masalah umum membutuhkan komunikasi dengan tugas lainnya
l Persamaan panas 2-D menggambarkan perubahan suhu dari waktu ke waktu, mengingat distribusi suhu awal dan kondisi batas.
l Skema pembeda hingga digunakan untuk menyelesaikan persamaan panas secara numerik pada wilayah kuadrat.
l Elemen-elemen dari array 2 dimensi mewakili suhu pada titik-titik di alun-alun.
l Suhu awal adalah nol pada batas dan tinggi di tengah.
l Suhu batas diadakan pada nol.
l Waktu melangkah
Perhitungan elemen tergantung pada nilai elemen tetangga: algoritma digunakan :
Program Code :
Sumber :
https://computing.llnl.gov/tutorials/parallel_comp/#WhyUse
https://id.wikipedia.org/wiki/Komputasi#:~:text=Komputasi%20sebetulnya%20bisa%20diartikan%20sebagai,input%20dengan%20menggunakan%20suatu%20algoritme.&text=Bidang%20ini%20berbeda%20dengan%20ilmu,komputasi%2C%20komputer%20dan%20pemrosesan%20informasi.