Parallelism Concept.
komputasi paralel
menjanjikan beberapa pesanan kenaikan besar dalam kemampuan kita untuk
memecahkan masalah komputasi - intensif realistis, tetapi bergantung pada
efisien merekapemetaan dan eksekusi pada arsitektur multiprosesor skala besar .
Sayangnya, banyak aplikasi penting yang tidak teratur dan dinamis di alam ,
membuat merekaparalel pelaksanaan yang efektif tugas yang menakutkan . aplikasi
tidak teratur ditandaioleh pola akses data non - seragam yang secara inheren
bertentangan dengan sistem berbasis Cache yang mencoba untuk menyembunyikan
latency memori dengan menyalin dan menggunakan kembali blok bersebelahan data.
aplikasi tidak teratur dinamis bahkan lebih menantang karena mereka memiliki
beban kerja komputasi yang tumbuh atau menyusut saat runtime , dan memerlukan
load balancing dinamis untuk mencapai skala algoritmik pada mesin paralel
DISTRIBUSI PROCESSING
Definisi umum dari
pemrosesan terdistribusi merupakan cara untuk mempercepat pengolahan data atau
informasi dengan mendistribusikan pekerjaan atau intruksi ke banyak komputer
yang telah dipilih untuk memberi kekuatan pemrosesan yang lebih cepat. Tujuan
dari komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya
(sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam
suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi
dari kapasitas individual komponen-komponennya.
Tujuan lain yang ingin
dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa
sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi
fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut. Transparansi
ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang
terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti
yang biasa digunakannya. Dalam prosesnya setiap komputer berinteraksi satu sama
lain untuk mencapai tujuan bersama.
ARSITEKTUR KOMPUTER
PARALEL
Karakteristik umum dari
architectural parallel komputer adalah sebagai berikut:
Pertama dalam hal
pembagian memori pada komputer parallel yang sangat bervariasi, namun pada umumnya
memiliki kesamaan kemampuan untuk semua prosesor dalam mengakses semua memori
sebagai ruang alamat global.
Kedua beberapa prosesor
dapat beroperasi secara independen akan tetapi harus didukung oleh berbagai
sumber daya memori yang sama.
Ketiga yaitu
karakteristik yang terletak pada perubahan lokasi memori yang dipengaruhi oleh
satu prosesor yang terlihat oleh proses – prosesor lainnya.
Keempat, karakteristiknya
terlihat pada mesin memori bersama dapat dibagi menjadi dua kelas utama
berdasarkan waktu akses memori: UMA dan NUMA.
Sesuai taksonomi Flynn,
seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
SISD (Single Instruction
Single Data Stream)
Single Instruction –
Single Data. Komputer ini memiliki hanya satu prosesor dan satu instruksi yang
dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional.
Menurut mereka tipe komputer ini tidak ada dalam praktik komputer paralel
karena bahkan mainframe pun tidak lagi menggunakan satu prosesor.
SIMD (Single Instruction
Multiple Data Stream)
Single Instruction –
Multiple Data. Komputer ini memiliki lebih dari satu prosesor, tetapi hanya
mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level
lock-step.
MISD (Multiple
Instruction Single Data Stream)
Multiple Instructions –
Single Data. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi
beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang
dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami.
MIMD (Multiple
Instruction Multiple Data Stream)
Multiple Instructions –
Multiple Data. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi
lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak
digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang
menerapkan arsitektur ini.
THREAD PROGRAMMING
Secara umum model
pemrograman ini adalah jenis pemrograman memori yang digunakan secara
bersamaan. Dalam Thread Programming Paralel, sebuah proses tunggal dapat
memiliki beberapa jalur eksekusi yang konkuren. Implementasi thread bukanlah
hal baru dalam teknik komputasi, Secara historis, perusahaan hardware
menerapkan thread versi mereka sendiri. Implementasi tersebut berada secara
substansial dari satu sama lain sehingga sulit bagi programmer untuk
mengembangkan aplikasi yang thread portabel.
MESSAGING PASSING, OPEN
MP
Jenis model ini
menunjukkan karakteristik sebagai berikut:
Tugas pertukaran data
melalui komunikasi dengan mengirim dan menerima pesan.
Transfer data biasanya
memerlukan kerjasama operasi yang akan dilakukan oleh masing-masing proses.
(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.
PEMROGRAMAN CUDA
(GRAPHICAL PROCESSING UNIT)
Sebagaimana telah kita
ketahui bahwa Cuda adalah platform komputasi paralel dan model pemrograman yang
diciptakan oleh perusahaan perangkat keras dunia yaitu NVIDIA. hal ini
memungkinkan peningkatan dramatis dalam kinerja komputasi dengan memanfaatkan
kekuatan dari
Graphics Processing Unit(GPU).
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.
CUDA merupakan singkatan
dari Compute Unified Device Architecture,didefinisikan sebagai sebuah
arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat
digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan
lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA
antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800
GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800
GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200
mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile (VGA notebook).
Singkatnya, CUDA dapat
memberikan proses dengan pendekatan bahasa C, sehingga programmer atau
pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek.
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.
Keuntungan dengan CUDA
sebenarnya tidak luput dari teknologi aplikasi yang ada. CUDA akan mempercepat
proses aplikasi tertentu, tetapi tidak semua aplikasi yang ada akan lebih cepat
walaupun sudah mengunakan fitur CUDA.
Sumber :
https://www.elsevier.com/journals/journal-of-parallel-and-distributed-computing/0743-7315?generatepdf=true
http://www-psych.stanford.edu/~jlm/papers/McCRogers03.pdf
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20020090950.pdf
No comments:
Post a Comment