Parallel Computing

Pengolahan Paralel (Parallel Processing)
Pengolahan informasi yang menekankan pada manipulasi data-data elemen secara simultan. Bertujuan mempercepat komputasi dari sistem komputer dan menambah jumlah keluaran yang dapat dihasilkan dalam jangka waktu tertentu.
·         Komputer Paralel
Komputer multi-prosesor dengan kemampuan melakukan pengolahan paralel.
·         Throughput
Banyaknya keluaran yang dihasilkan per unit waktu.Caranya dengan meningkatkan kecepatan operasi, Meningkatkan jumlah operasi yang dapat dilakukan dalam satu waktu tertentu (concurrency).
·         Pipeline
Komputasi dibagi ke dalam sejumlah langkah yang masing-masing disebut sebagai segmen, atau stage. Output dari sebuah segmen menjadi input segmen yang lain.
M. J. Flynn membagi menjadi:
·         SISD (Single Instruction stream, Single Data stream)


·         SIMD (Single Instruction stream, Multiple Data stream)
·         MISD (Multiple Instruction stream, Single Data stream)

·         MIMD (Multiple Instruction stream, Multiple Data stream)

T.G. Lewis membagi menjadi:
·         Systolic parallel computer adalah multiprocessor dimana data didistribusikan dan dipompa dari memory ke suatu array prosesor sebelum kembali ke memory.
·         Asynchronous Paradigma reduksi adalah paradigma yang berpijak pada konsep graph reduksi. Program dengan model reduksi diekspresikan sebagai graph alur data. Komputasi berlangsung dengan cara mereduksi graph dan program berhenti jika graph akhirnya hanya mempunyai satu simpul.

Michael J. Quinn membagi menjadi:
·                  Data Parallelism
Penerapan operasi yang sama secara simultan terhadap elemen-elemen dari kumpulan data
·                  Control Parallelism
Penerapan operasi-operasi berbeda terhadap elemen-elemen data yang berbeda secara bersamaan.dapat terjadi aliran data antar proses-proses dan kemungkinan terjadi aliran data yang kompleks/rumit.Pipeline merupakan satu kasus khusus dari control parallelism, dimana aliran data membentuk jalur yang sederhana


Pengertian Distributed Processing :
Mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Pengertian Thread  Programming :
Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen dengan sebagian program lainnya. Dalam threading anda dapat menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan.
Ms. Dos merupakan salah contoh OS yang hanya mampu menjalankan satu proses dengan hanya 1 thread. Sebaliknya Unix Family 1980 mendukung banyak proses tapi dengan setiap proses hanya memiliki satu thread. Contoh OS yang mampu menjalankan banyak thread dalam suatu proses yaitu, Mac, Windows dan Linux, selain itu bahasa yang memiliki OS mini seperti java yang memiliki Java Virtual Machine juga satu proses yang mampu menjalankan banyak thread.
Keuntungan Penggunaan Thread :
·         Komunikasi thread lebih efisien
·         Waktu pembuatan lebih cepat
·         Waktu pemberhentian lebih cepat
·         Waktu penggantian antar thread lebih cepat
Kerugian penggunaan Thread :
·         Keamanan yang kurang karena penggunaan shared data
Pengantar Dasar Pemrograman CUDA 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.
Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

Message Passing
Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada system. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman-berorientasi objek, dan komunikasi interprocess. Dalam model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. Paradigma Message passing yaitu :
1.  Banyak contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
2.Programmer membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada setiap prosesor.
3. Proses berkomunikasi dengan mengirimkan pesan satu sama lain.
Terdapat beberapa metode dalam pengiriman pesan yaitu :
·         Synchronous Message Passing
Pengirim menunggu untuk mengirim pesan sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada buffering. Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri.
·         Ansynchronous Message Passing
Pengirim akan mengirim pesan kapanpun dia mau. Pengirim tidak peduli ketika penerima belum siap untuk menerima pesan. Oleh karena itu diperlukan buffering untuk menampung pesan sementara sampai penerima siap menerima pesan. Selain itu pengirim dapat pesan untuk dirinya sendiri.

OpenMP (Open Multiprocessing)
OpenMP adalah Application Programing Interface (API) yang mendukung pemrograman multiprosesing shared memory dalam bahasa C/C++ dan fortran pada berbagai arsitektur dan sistem operasi diantaranya: Solaris, AIX, HP-UX,GNU/Linux, Mac OS X, dan Windows.
OpenMP adalah model portabel dan skalabel yang memberikan interface sederhana dan fleksibel bagi programer shared memory dalam membangun aplikasi paralel. Program multithread dapat ditulis dalam berbagai cara. Beberapa diantaranya memungkinkan untuk melakukan interaksi yang kompleks antar thread. OpenMP mencoba untuk memberikan kemudahan pemrograman serta membantu dalam menghindari kesalahan program, melalui pendekatan terstruktur. Pendekatan ini dikenal sebagai model pemrograman fork-join.
OpenMP bekerja berdasarkan model shared memory, maka secara default data dibagi diantara thread-thread dan dapat terlihat dari setiap thread. Terkadang program akan membutuhkan variabel dengan nilai thread spesifik. Jika setiap thread memiliki variabel duplikat akan sangat berpotensi memiliki nilai yang berbeda-beda pada setiap variabel duplikat tersebut.

Share this:

CONVERSATION

0 komentar:

Posting Komentar