Jumat, 03 Juli 2020

Pengenalan Komputasi Paralel

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,
Masalah dipecahkan menjadi serangkaian instruksi yang terpisah
Instruksi dieksekusi berurutan satu demi satu
Dieksekusi pada satu prosesor
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 :
Atmosfer, bumi, lingkungan
fisika terapan, nuklir, partikel, materi terkondensasi, tekanan tinggi
Biosains, Bioteknologi, Genetik
Kimia, Ilmu Molekuler
Geologi, Seismologi Makanis
Ilmu komputer, matematika
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 :
Big data, basis data, data mining
AI (Artificial Intelligence)
Web Search Engines, layanan bisnis berbasis web
Medicial Imaging and diagnosis
Manajemen perusahaan
Advanced graphics dan virtual reality, khususnya di industri hiburan
Networked video dan teknologi multimedia
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
Read/Write, memori akses Random digunakan untuk menyimpan instruksi dan data program
instruksi program adalah data kode yang memberi tahu komputer untuk melakukan sesuatu
Data hanyalah informasi yang akan digunakan oleh program
Unit Kontrol mengambil instruksi/data dari memori, mengkode instruksi dan kemudian mengoordinasikan operasi secara sequential untuk menyelesaikan tugas yang diprogram
Unit Aritmatika melakukan operasi aritmatika dasar
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 :
Supercomputing / Hidh Performance Computing (HPC)
Node
CPU /Soket/Processor/Core
Task
Pipelining
Shared Memory
Symmetric Multi_Processor(SMP)
Distributed Memory
Communications
Synchronization
Granularity
Observed Speedup
Parallel Overhead
Massively Parallel
Embarrassingly Parallel
Scalability

Limits and Costs of Parallel Programming

Hukum Amdahl :
Menyatakan bahwa potensi program Speedup ditentukan oleh fraksi kode(P) yang dapat diparalelkan :


Jika tidak ada kode yang dapat diparalelkan, P = 0 dan speedup = 1 (tidak ada speedup).
Jika semua kode diparalelkan, P = 1 dan speedup tidak terbatas (dalam teori).
Jika 50% dari kode dapat diparalelkan, speedup maksimum = 2, artinya kode akan berjalan dua kali lebih cepat.
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



Persamaan panas 2-D menggambarkan perubahan suhu dari waktu ke waktu, mengingat distribusi suhu awal dan kondisi batas.
Skema pembeda hingga digunakan untuk menyelesaikan persamaan panas secara numerik pada wilayah kuadrat.
Elemen-elemen dari array 2 dimensi mewakili suhu pada titik-titik di alun-alun.
Suhu awal adalah nol pada batas dan tinggi di tengah.
Suhu batas diadakan pada nol.
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.

Tidak ada komentar:

Posting Komentar