KONSEP PARALEL
pengertian komputer paralel menurut dari beberapa sumber yaitu salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak.
pengertian proses paralel itu sendiri adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.
DISTRIBUTED PROCESSING
menurut Gustafson proses terdistribusi adalah sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.
contoh dari proses terdistribusi adalah ketika terdapat macam masalah diberikan pada satu master, maka dengan menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa bagian secara terdistribusi.
ARSITEKTUR KOMPUTER PARALEL
terdapat 4 macam arsitektur dari komputer paralel, yaitu:
- SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor.
- SIMD(Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
- MISD(Multiple Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
- MIMD( Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
PENGANTAR THREAD PROGRAMING
Menurut salah satu blog, thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi.
PENGANTAR MESSAGE PASSING, OpenMP
MPI
adalah
sebuah standard pemrograman yang memungkinkan pemrogram untuk membuatsebuah
aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh
sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node
yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan
hasilnya ke komputer head node.Untuk merancang aplikasi paralel tentu
membutuhkan banyak pertimbangan - pertimbangandiantaranya adalah latensi dari
jaringan dan lama sebuah tugas dieksekusi oleh prosesor
OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi
processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk UNix dan Microsoft
Windows platform. OpenMP Terdiri dari satu set perintah kompiler, perpustakaan
rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi
dibangun dengan model hibrida pemrograman paralel dapat dijalankan pada
komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI),
atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory
systems.
Sebuah GPU (Graphical Processing
Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk
melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin
meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang
realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan
prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat
daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya
GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan
rendering saja melainkan bisa untuk proses komputasi secara umum.
penggunaan Multi GPU dapat mempercepat
waktu proses dalam mengeksekusi program karena arsitekturnya yang natively
parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan
kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara
membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.
sekian dari pembahasan materi ini, jika ada kesalahan dan kekurangn mohon dimaafkan.
sumber:
http://seto.citravision.com/berita-49-parallel-computation---pengantar-thread-programming.html