Jumat, 03 Juli 2020


Parallel Computing

Apa itu Parallel Computing ?
Serial Computing
Secara tradisional , software ditulis untuk komputasi serial
·         Masalah dipecah menjadi serangkaian instruksi
·         Instruksi dijalankan secara berurutan satu demi satu
·         Dijalankan hanya menggunakan satu prosesor
·         Hanya satu instruksi yang dapat dijalankan dalam satu waktu


Parallel Computing
Dalam pengertian yang paling sederhana, Paralel Computing adalah penggunaan beberapa komputasi yang digunakan secara bersamaan untuk memecahkan masalah komputasi:
·         Masalah dipecah menjadi bagian-bagian terpisah yang dapat diselesaikan secara bersamaan
·         Selanjutnya setiap bagian dipecah menjadi serangkaian instruksi
·         Instruksi dari setiap bagian dijalankan secara bersamaan pada prosesor yang berbeda
·         Keseluruhan mekanisme kontrol / koordinasi digunakan

Parallel Computers
Hampir semua komputer yang berdiri sendiri saat ini sejajar dengan perspektif perangkat keras:
·         Beberapa functional units (L1 cache, L2 cache, branch, prefetch, decode, floating-point, graphics processing (GPU), integer, etc.)
·         Beberapa execution units/cores
·         Beberapa hardware threads

Mengapa menggunakan Parallel Computing ?
·         Hemat waktu dan/atau uang
·         Dapat menyelesaikan masalah yang lebih besar atau lebih kompleks
·         Dapat dilakukan secara bersamaan
·         Mengambil keunggulan dari sumber daya non-lokal
·         Penggunaan hardware parallel yang lebih baik

Bidang yang menggunakan Parallel Computing ?
·         Sains dan Teknik
·         Industri dan komersial
·         Aplikasi Global

Konsep dan Terminologi Parallel Computing

Arsitektur von Neumann

hampir semua komputer telah mengikuti desain dasar ini:
Terdiri dari empat komponen utama:
·         Memory
·         Control Unit
·         Arithmetic Logic Unit
·         Input/Output
Baca / tulis, random access memory 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
Control unit mengambil instruksi / data dari memori, menerjemahkan instruksi dan kemudian mengoordinasikan operasi secara berurutan untuk menyelesaikan tugas yang diprogram.
Arithmetic Unit melakukan operasi aritmatika dasar
Input / Output adalah antarmuka ke operator manusia

Taksonomi Flynn

Taksonomi Flynn, dalam arsitektur komputer, adalah sebuah klasifikasi yang dibuat oleh Michael J. Flynn pada tahun 1966. Klasifikasi ini dibuat berdasarkan jumlah instruksi yang berjalan simultan dan konkuren, dan juga aliran data yang diprosesnya. Dalam Taksonomi Flynn, komputer dibagi menjadi empat buah kelas, yakni
·         Single Instruction Single Data Stream (SISD), yaitu sebuah komputer yang tidak memiliki cara untuk melakukan paralelisasi terhadap instruksi atau data. Contoh mesin SISD adalah PC tradisional atau mainframe yang tua.
·         Multiple Instruction, Single Data Stream (MISD), yaitu sebuah komputer yang dapat melakukan banyak instruksi terhadap satu aliran data. Komputer ini, tidak memiliki contoh, karena meski pernah dibuat, hal itu dibuat sebagai purwarupa (prototipe), dan tidak pernah dirilis secara massal.
·         Single Instruction, Multiple Data Stream (SIMD), yaitu sebuah komputer yang mampu memproses banyak aliran data dengan hanya satu instruksi, sehingga operasi yang dilakukan adalah operasi paralel. Contoh dari SIMD adalah prosesor larik (array processor), atau GPU.
·         Multiple Instruction, Multiple Data stream (MIMD), yaitu sebuah komputer yang memiliki beberapa prosesor yang bersifat otonomus yang mampu melakukan instruksi yang berbeda pada data yang berbeda. Sistem terdistribusi umumnya dikenal sebagai MIMD, entah itu menggunakan satu ruangan memori secara bersama-sama atau sebuah ruangan memori yang terdistribusi.

Arsitektur Memori Komputer Paralel

Shared Memory (UMA)

·         Karakteristik: semua prosesor dapat mengakses semua memori sebagai ruang alamat global
·         Multi prosesor dapat beroperasi secara independent namun sharing memori
·         Perubahan di lokasi memori oleh satu prosesor dapat dilihat oleh prosesor lain
·         Prosesor identik, misalnya mesin SMP
·         Upto 8 prosesor
·         Mempunyai akses dan waktu akses yang sama ke memori
·         Kadang disebut CC-UMA (cache coherent)
·         cache coherent: jika satu prosesor update suatu lokasi di memori, semua prosesor mengetahui update tsb
·         Koherensi dilakukan di level Hardware

Shared Memory (NUMA)

·         Karakteristik: prosesor mempunyai bank alamat memori sendiri
·         Prosesor dapat mengakses memori lokal dengan cepat, memori remote lebih lambat
·         Meningkatkan throughput memori selama mengakses data lokal
·         Seringkali dibuat dengan menghubungkan secara fisik 2 atau lebih SMP
·         Satu SMP dapat mengakses memori secara langsung ke SMP lain NUMA
·         Tidak semua prosesor mempunyai waktu akses yang sama ke memori
·         Akses memori lewat bus interconnect lebih lambat
·         Jika cache coherence dilakukan, disebut CC-NUMA

Kelebihan:
·         Space alamat memori global menyediakan perspektif pemrograman user-friendly ke memori
·         Sharing data antar task cepat dan uniform karena dekatnya memori ke CPU
Kekurangan:
·         Tidak scalable. Menambah CPU dapat meningkatkan trafik di jalur shared memory-CPU. Di cc-(N)UMA, pertambahan trafik berkaitan dengan manajemen cache/memori
·         Programmer bertanggung jawab untuk sinkronisasi yang memastikan akses yang tepat ke memori global
·         Akan bertambah semakin kompleks dan mahal seiring bertambahnya jumlah prosesor

Distributed Memory

·         Tiap prosesor mempunyai memori lokal sendiri
·         Sehingga prosesor dapat beroperasi secara independen
·         Perubahan ke lokal memori tidak membawa efek ke memori lain
·         Konsep cache coherence tidak berlaku
·         Jika memerlukan interprosesor, tugas programmer secara eksplisit mendefinisikan bagaimana dan kapan data akan dikomunikasikan
Kelebihan:
·         scalable jumlah prosesor dan ukuran memori dapat ditingkatkan
·         Tiap prosesor dapat mengakses memorinya tanpa interferensi dan overhead, seperti di koherensi cache
·         Cost effective: dapat menggunakan PC komoditas, off-the-self processor
Kekurangan:
·         tugas programmer semakin kompleks terkait detail komunikasi data
·         Mapping data struktur berbasis memori globlal bisa susah

Hybrid Memory


·         Terdiri dari arsitektur memori shared dan distributed
·         Komponen memori shared biasanya mesin SMP koheren
·         Prosesor di mesin SMP mempunyai akses global ke memori mesin tersebut
·         Komponen distributed adalah jaringan SMP multiple
·         SMP hanya tahu memorinya saja
·         Komunikasi jaringan diperlukan untuk memindahkan data dari satu SMP ke lainnya



Tidak ada komentar:

Posting Komentar