PENGERTIAN KONSEP DISTRIBUTED PROCESSING
Yang dimaksud dengan Distributed Processing adalah 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.
ARSITEKTUR KOMPUTER PARALEL
Pemrosesan paralel (parallel processing) adalah penggunaaan
lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya,
parallel processing membuat program berjalan lebih cepat karena semakin banyak
CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program
sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di
antaranya.
Komputasi paralel adalah salah satu teknik melakukan komputasi
secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena
harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi
yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan
infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan
dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu
masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa
disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan
antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat
pemrograman paralel untuk merealisasikan komputasi.
Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi
4 :
- SISD (Single Instruction Single
Data Stream) Arus Instruksi Tunggal dan Data Tunggal
- SIMD (Single Instruction
Multiple Data Stream) Arus Instruksi Tunggal dan Multiple Data
- MISD (Multiple Instruction
Single Data Stream) Arus Multiple Instruksi dan Data Tunggal
- MIMD (Multiple Instruction
Multiple Data Stream) Arus Multiple Instruksi dan Multiple Data
1.
Organisasi Prosesor SISD
- Prosesor tunggal
- Aliran instruksi tunggal
- Data disimpan dalam memori
tunggal
- Uni-processor
2.
Single Instruction, Multiple Data Stream – SIMD
- Single machine instruction
- Mengontrol eksekusi secara
simultan
- sejumlah elemen-elemen
pengolahan
- Berdasarkan Lock-step
- Setiap pengolahan elemen
memiliki hubungan dengan memori data
- Setiap instruksi dieksekusi
pada kumpulan data yang berbeda oleh prosesor yang berbeda
- Prosesor Vector and array
3.
Multiple Instruction, Single Data Stream – MISD
- Rangkaian dari data
- Dikirimkan ke kumpulan prosesor
- Setiap prosesor mengeksekusi
urutan instruksi yang berbeda
- Belum pernah diimplementasikan
(komesial)
4.
Multiple Instruction, Multiple Data Stream- MIMD
- Kumpulan/sejumlah prosesor
- Mengeksekusi secara simultan
urutan instruksi yang berbeda
- Kumpulan data yang berbeda
- SMP, Cluster and sistem NUMA
THREAD PROGRAMMING
Thread yaitu kemampuan
untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki
fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang
lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita
dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya
digunakan untuk pemrograman multitasking, networking, yang melibatkan
pengaksesan ke sumber daya secara konkuren. Thread sangat berguna untuk
membuat proses yang interaktif; misalnya pada permainan (game). Dengan
menggunakan sejumlah thread, program tetap dapat menggerakkan sejumlah objek
sembari memberikan kesempatan pemakai untuk melakukan tanggapan melalui
keyboard. Web browser merupakan contoh lain penggunaan thread. Tanpa thread,
Web browser akan menghentikan segala tanggapan.
Sebuah thread memungkinkan untuk memiliki
beberapa state:
- Running Sebuah thread yang pada
saat ini sedang dieksekusi dan didalam control dari CPU.
- Ready to run Thread yang sudah
siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk
melakukannya.
- Resumed Setelah sebelumnya di
block atau diberhentikan sementara, state ini kemudian siap untuk
dijalankan.
- Suspended Sebuah thread yang
berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan
thread lain bekerja.
- Blocked Sebuah thread yang
di-block merupakan sebuah thread yang tidak mampu berjalan, karena ia akan
menunggu sebuah resource tersedia atau sebuah event terjadi
MESSAGING PHASE MULTIPROCESSING
Keuntungan software
dari arsitektur multicore adalah kode-kode dapat
dieksekusi secara paralel. Dalam sistem operasi, kode-kode tersebut dieksekusi
dalam thread-thread atau proses-proses yang terpisah. Setiap aplikasi pada
sistem berjalan pada prosesnya sendiri sehingga aplikasi paralel akan
mendapatkan keuntungan dari arsitektur multicore. Setiap aplikasi
harus tertulis secara spesifik untuk memaksimalkan penggunaan dari banyak
thread.
Banyak aplikasi
software tidak dituliskan dengan menggunakan thread-thread yang concurrent karena kesulitan dalam pembuatannya.Concurrency memegang peranan utama
dalam aplikasi paralel yang sebenarnya.
Langkah-langkah dalam mendesain aplikasi paralel adalah sebagai
berikut:
- Partitioning
. Tahap desain ini dimaksudkan
untuk membuka peluang awal pengeksekusian secara paralel. Fokus dari tahap
ini adalah mempartisi sejumlah besar tugas dalam ukuran kecil dengan
tujuan menguraikan suatu masalah menjadi butiran-butiran kecil.
- Communication
. Tugas-tugas yang telah
terpartisi diharapkan dapat langsung dieksekusi secara paralel tapi tidak
bisa, karena pada umumnya eksekusi berjalan secara independen. Pelaksanaan
komputasi dalam satu tugas membutuhkan asosiasi data antara masing-masing
tugas. Data kemudian harus berpindah-pindah antar tugas dalam
melangsungkan komputasi. Aliran informasi inilah yang dispesifikasi dalam
fase communication.
- Agglomeration
. Pada tahap ini kita pindah dari
sesuatu yang abstrak ke yang konkret. Kita tinjau kembali kedua tahap
diatas dengan tujuan untuk mendapatkan algoritma pengeksekusian yang lebih
efisien. Kita pertimbangkan juga apakah perlu untuk menggumpalkan (
agglomerate) tugas-tugas pada fase partition menjadi lebih sedikit,
denganmasing-masing tugas berukuran lebih besar.
- Mapping
. Dalam tahap yang keempat dan
terakhir ini, kita menspesifikasi dimana setiap tugas akan dieksekusi.
Masalah mapping ini tidak muncul pada uniprocessor yang menyediakan
penjadwalan tugas.
PEMROGRAMAN CUDA (GRAPHICAL PROCESSING UNIT)
CUDA (Compute Unified
Device Architecture) adalah suatu skema yang dibuat oleh NVIDIAagar NVIDIA selaku GPU (Graphic Processing
Unit) mampu melakukan komputasi tidak hanya untuk pengolahan grafis namun
juga untuk tujuan umum. Jadi, dengan CUDA, kita dapat memanfaatkan cukup
banyak processor yang dimiliki oleh NVIDIA untuk berbagai
perhitungan. GPU yang ada saat ini seperti ATI pun sudah memiliki banyak processor di dalamnya. Pada ATI,
skema yang mereka bangun disebut ATI Stream. Saat ini pemrograman paralel
menjadi sangat penting karena kebutuhan kemampuan komputasi komputer yang terus
meningkat seperti kemampuan multitasking dan pengolahan grafis yang andal. Metode saat ini dalam
peningkatan peforma komputer juga berbeda dengan masa lampau dimana peningkatan clock dari processor yang diutamakan.
Peningkatanclock juga dibatasi oleh kemampuan fisik dari perangkat
digital yaitu persoalan daya dan panas. Pada 2005 berbagai industri komputer
mulai menawakan komputer dengan beberapa core mulai dari 2, 3, 4, 6, dst. Pada
awal perkembangan GPU dengan banyakcore, pemanfaatan GPU hanya
dapat dilakukan dengan antarmuka seperti OpenGL dan DirectX dimana antarmuka
tersebut dikhususkan hanya untuk pengolahan grafis.
SUMBER :
- http://xditx32.blogspot.com/2012/09/pengertian-multiprocessingmultitasking.html
- http://organkomputer.blogspot.com/2013/04/prosesor-paralel.html
- https://catatanpilihan.wordpress.com/category/organisasi-dan-arsitektur-komputer/
- https://sangwidy.wordpress.com/web-design/oop-2/7-multi-threading/
- https://amicowo.wordpress.com/2011/07/18/pengertian-thread/
- http://valenciacitra.blogspot.com/2011/11/multiprocessor-vs-multi-core-processor.html
- http://www.lukinotes.com/2012/06/pemrograman-paralel-dengan-cuda.html
- https://kotaksederhana.wordpress.com/2015/06/26/mulriprocessing-dan-komputer-paralel/
0 komentar:
Posting Komentar