Hallo semua pada kali ini akan saya akan jelaskan mengenaI konsep
paralelisme,pemrosesan terdistribusi dan sebangsanya, bagi kalian yang belum
tau abang akan ngasih tau penjelasannya simak baik-baik ya jangan sampe kelewat
hehe
1.Konsep Paralelisme
Banyak perkembangan-perkembangan baru dalam arsitektur
komputer yang didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel
dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan
instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan
pelaksanaan kejadian-kejadian (1) dalam interval waktu yang sama, (2) dalam
waktu yang bersamaan atau (3) dalam rentang waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor yang berkembang
sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal
kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism)
untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang
sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia,
perhitungan aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek
design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek
pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih
banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karena
masalah numerik merupakan salah satu masalah yang memerlukan kecepatan
komputasi yang sangat tinggi.
2. Pemrosesan
Terdistribusi
Sistem pemrosesan terdistribusi atau biasa disebut juga
dengan komputasi tersebar adalah sistem yang terdiri atas sejumlah komputer
yang tersebar pada berbagai lokasi yang dihubungkan dengan sarana
telekomunikasi dengan masing-masing komputer mampu melakukan pemrosesan yang
serupa secara mandiri, tetapi tetap bisa saling berinteraksi dalam pertukaran
data. Dengan kata lain, sistem pemrosesan data terdistribusi membagi sistem
pemrosesan data terpusat ke dalam subsistem-subsistem yang lebih kecil, yang
pada hakikatnya masing-masing subsistem tetap berlaku sebagai sistem pemrosesan
data terpusat.
Model sederhana sistem pemrosesan terdistribusi terdapat
pada sejumlah komputer yang terhubung dalam jaringan yang menggunakan
arsitektur peer-to-peer pada model ini komputer memiliki kontrol terhadap
resource misalnya data, printer atau cd-rom, tetap memungkinkan komputer lain
menggunakan sumber tersebut. Sistem seperti ini menjadi pemandangan umum
semenjak kehadiran PC yang mendominasi perkantoran.
Sistem pemrosesan terdistribusi bisa diterapkan dalam sebuah
organisasi. Setiap area fungsional atau
setiap departemen yang mempunyai unit pemrosesan informasi tersendiri.
3. Arsitektur
Komputer Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada
beberapa tingkatan, seperti berikut:
A. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau
fase-fase suatu pekerjaan. Hal ini menjadi prinsip dasar dari multiprogramming.
B. Tingkat prosedur: antara prosedur-prosedur dan di dalam
loop. Hal ini harus tercakup sebagai hal yang penting bagi suatu bahasa.
C. Tingkat instruksi: antara fase-fase sebuah siklus
instruksi, yaitu fetch, decode dan eksekusi suatu instruksi.
D. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit
aritmatika. Salah satu contohnya adalah adder paralel.
4. Pengantar Thread
Programming
Threading / Thread adalah sebuah alur kontrol dari sebuah
proses. Konsep threading adalah menjalankan 2 proses ( proses yang sama atau
proses yang berbeda ) dalam satu waktu. Contohnya sebuah web browser mempunyai
thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain
berfungsi sebagai penerima data dari network.
Threading dibagi menjadi 2 :
A. Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip
multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini
memungkinkan thread berbagi memori yang tersedia, menggunakan program counter
dan mengeksekusi program secara independen. Sistem operasi menempatkan satu
thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan
prosesor itu.
B. Dynamic Multithreading
Teknik ini merupakan pengembangan dari teknik sebelumnya
yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing
dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada
static threading. Concurrency platform ini menyediakan scheduler yang melakukan
load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan
namun secara umum mendukung dua fitur : nested parallelism dan parallel loops.
5. Pengantar MPI
& open MP
MPI (Message Passing Interface) adalah spesifikasi API
(Application Programming Interface) yang memungkinkan terjadinya komunikasi
antar komputer pada network dalam usaha untuk menyelesaikan suatu tugas.
Secara umum MPI memliki
tujuan sebagai berikut :
1.MPI akan menjadi sebuah library
untuk membangun program aplikasi dan bukan distributed
operating system.
2.MPI akan
mendukung thread-safe yang penting dalam symmetric multiprocessor pada lingkungan jaringan komputer yang
heterogen.
3.MPI akan
mampu untuk men-deliver high-performance computing. Dsb
Open MP Merupakan API yang mendukung multi-platform berbagi
memori multiprocessing pemrograman C , C + + , dan Fortran , pada kebanyakan
arsitektur prosesor dan system operasi , termasuk Solaris , AIX , HP-UX , GNU /
Linux , Mac OS X , dan Windows platform. Ini terdiri dari satu set perintah
kompiler, rutinitas library, dan variable lingkungan yang mempengaruhi perilaku
run-time. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur
Review Board (ARB atau OpenMP), bersama-sama didefinisikan oleh sekelompok
perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD , IBM ,
Intel , Cray , HP , Fujitsu , Nvidia , NEC , Microsoft , Texas Instruments ,
Oracle Corporation , dan banyak lagi.
6. Pengantar Pemrograman CPU GPU
Graphics Processing Unit merupakan prosesor yang
didedikasikan untuk render cepat dalam pemrosesan polygon baik itu texturing
dan shading. Terdiri atas banyak core namun masih menggunakan arsitektur yang
sederhana, sehingga harganya relative murah dan di produksi secara missal untuk
berbagai keperluan misalnya peneilitian/ilmuah.
CUDA, Compute Unified Device Architecture merupakan suatu
framework dari bahasa pemrograman yang mendukung bahas C language, dimana mampu
berkomunikasi langsung dengan GPU dan sangat mudah bekerjasama untuk segala
multi-threading parallel execution
hampir diseluruh prosesor pada GPU. CUDA menggukan konsep nvcc sebagai ORM
dalam object programmingnya. CUDA merupakan produk dari NVIDIA sebagai produsen
graphic komputer ternama.
CUDA memiliki beberapa keunggulan dibandingkan tradisional
perhitungan tujuan umum pada GPU (GPGPU) menggunakan API grafis:
• Tersebar
membaca - kode dapat membaca dari alamat sewenang-wenang dalam memori.
• Memori bersama - CUDA
memperlihatkan cepat memori bersama wilayah (sampai 48KB p
Multi-Processor)
yang dapat dibagi di antara benang. Ini dapat digunakan sebagai cache dikelola
pengguna, memungkinkan bandwidth yang lebih tinggi daripada yang mungkin
menggunakan
pencarian tekstur.
• Download
lebih cepat dan readbacks ke dan dari GPU.Dukungan penuh untuk integer dan
bitwise operasi, termasuk pencarian tekstur bulat.
Source: