Rabu, 22 Mei 2019

#SOFTSKILL Komputasi Parallel - Pengantar Thread Programming


1.                  Latar Belakang
Pemanfaatan komputasi parallel adalah sseperti memanfaatkan proses secara bersamaan untuk menyelesaikan suatu permasalahan dengan cara memecahkan masalah menjadi beberapa bagian independen, kemudian masing-masing bagian tersebut diselesaikan oleh masing-masing proses sesuai dengan algoritma secara bersamaan. Pemrosesan parallel merupakan pilihan yang tepat untuk pengolahan data karena didalam sistem akan banyak  berkaitan dengan pengaksesan data, hak pengguna, keamanan data, dan keamanan jaringan dalam penyerangan seseorang atau virus sehingga akan menghambat kinerja dari sistem komputasi. Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Program parallel lebih susah untuk dibangun dibandingkan dengan program komputer serial. Komputasi parallel umumnya dimanfaatkan dalam jumlah besar seperti di industry keuangan, bioinformatikan dll dikarenakan adanya tuntutan komputasi yang banyak.

2.                  Metode
Threading adalah sebuah alur control dari sebuah proses. Konsep thread menjalankan 2 proses yang sama atau yang beda 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 :
  •   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.
Mekanisme ini terhitung lambat karena disebut dengan statis. Selain itu teknik ini tidak mudah diterapkan dan rentan kesalahannya
  • 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.

3.                  Analisa
Thread adalah bentuk kecil dari program yang akan dieksekusi oleh processor. Pada sebuahsingle processor multi-threading biasanya terjadi dengan pengaturan waktu pemrosesan thread.Jadi processor berganti-ganti dan membagi waktu untuk menyelesaikan thread tetapi tidak pada paralel computing. Dengan multi-processor atau multi-core, multi-threading bisa berlangsungsecara bersamaan, maka di situ lah tantangan untuk para programmer agar dapat membuat program yang dapat di proses secara paralel.

4.                  Kesimpulan / tanggapan
Komputasi parallel sangat bermanfaat dibidang teknologi masa kini. Sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Sebuah thread merupakan informasi yang dibutuhkan untuk melayanin satu pengguna individu atau permintaan pelayanan tertentu. Thread dapat memungkinkan program untuk mengetahui pengguna sedang masuk didalam proses secara bergantian dan akan kembali masuk atas nama pengguna berbeda

5.                  Referensi