Analisis Jurnal Pengantar Thread Programming
LATAR BELAKANG
Pengolahan
citra digital memiliki peranan yang cukup penting dalam mengawal perkembangan
teknologi komputer. Beragam aplikasi komputer dapat digunakan untuk
memanipulasi citra digital bertujuan untuk menghasilkan karya seni dan juga
untuk kepentingan-kepentingan lain. Citra digital memiliki beberapa
karakteristik yang berbeda dengan citra analog. Citra digital dan analog
sama-sama memiliki dimensi panjang dan lebar serta komponen warna, tetapi citra
analog tidak memiliki ukuran file dan kedalaman warna yang hanya dimiliki oleh
citra digital.
Masing-masing
citra digital memiliki ukuran file yang berbeda-beda tergantung dari panjang
dan lebar citra. Semakin besar dimensi dan kedalaman warna dari suatu citra
digital maka akan semakin mahal proses komputasi yang dilakukan. Salah satu
indikator kerja proses komputasi citra digital dapat dilihat berdasarkan
lamanya proses pengolahan citra. Pemrosesan yang lebih cepat sangat diharapkan
daripada pemrosesan yang lambat. Kecepatan pengolahan suatu citra menjadi topik
penting mengingat pengolahannya sering dilakukan secara non-paralel. Disamping
itu, sejarah perkembangan citra digital cukup panjang yang awalnya hanya
berwarna hitam-putih (monochrome) beralih menjadi abu-abu (grayscale) dan
kemudian menjadi berwarna yang memiliki beragam tipe. Selain itu ukuran citra
digital beragam dari yang hanya kb (kilobyte) sampai giga (gigabyte), seperti citra
satelit yang digunakan oleh NASA.
Multi-threading
merupakan salah satu teknik dalam pemrograman komputer yang bertujuan untuk
membuat proses berjalan secara paralel (bersamaan). Dengan teknik ini, dapat
dimungkinkan untuk membuat program komputer melakukan pekerjaan yang banyak
dalam satu waktu. Penggunaan teknik ini memiliki keuntungan dan kerugian
tergantung dari kasus yang dihadapi.
Keuntungannya
adalah dapat membuat pekerjaan lebih cepat karena dilakukan secara paralel
sedangkan kerugiannya adalah teknik ini memerlukan cost yang sangat besar
karena menggunakan resource yang lebih banyak dibandingkan dengan
single-threading. Kendala cost yang tinggi tidak terlalu berdampak dikarenakan
kapasitas memori yang sudah semakin besar dan harga yang terjangkau.
Salah
satu bidang yang memerlukan pengolahan citra dengan kecepatan yang tinggi
adalah bidang pengolahan citra dengan waktu nyata (realtime image processing),
seperti: video conference, satellite imaging dan lainnya. Penelitian bidang
citra digital masih terus dikembangkan, hal ini disebabkan oleh karakteristik
citra digital yang terus berkembang. Oleh karena itu, penelitian ini
menggunakan teknik multi-threading dalam pengolahan citra digital untuk
mendapatkan hasil pengolahan citra yang lebih cepat dan melihat signifikansi
kecepatan antara singlethreading dengan multi-threading.
METODE
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, karenanya disebut dengan static. Selain itu teknik ini
tidak mudah diterapkan dan rentan kesalahan. Alasannya, pembagian pekerjaan
yang dinamis di antara thread-thread menyebabkan load balancing-nya cukup
rumit. Untuk memudahkannya programmer harus menggunakan protocol komunikasi
yang kompleks untuk menerapkan scheduler load balancing. Kondisi ini mendorong
pemunculan concurrency platforms yang menyediakan layer untuk mengkoordinasi,
menjadwalkan, dan mengelola sumberdaya komputasi paralel.
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. Nested
parallelism memungkinkan sebuah subroutine di-spawned (ditelurkan dalam jumlah
banyak seperti telur katak) sehingga program utama tetap berjalan sementara
subroutine menghitung hasilnya. Sedangkan parallel loops seperti halnya fungsi
for namun memungkinkan iterasi loop dilakukan secara bersamaan.
ANALISA
Perangkat
lunak yang dihasilkan dalam penelitian ini dikembangkan dengan paradigm berorientasi
obyek dengan bahasa pemrograman Java dalam IDE NetBeans dengan dua buah fitur
utama yaitu pemrosesan secara singl-thread dan pemrosesan secara multi-thread
maka dapat dilakukan pengujian untuk tiga buah sampel citra bahkan jika
diperlukan jumlah sampel dapat diperbanyak lagi.
Berdasarkan
hasil pengujian perangkat lunak untuk rata-rata waktu proses sepertiterlihat
pada menunjukkan teknik pemrograman multi-threading menghasilkan pemrosesan
yang lebih cepat. Berdasarkan selisih waktu pemrosesan secara single thread
dengan multi-thread menunjukkan bahwa perbedaan waktu keduanya semakin signifikan
untuk citra yang berukuran semakin besar. Hal ini disebabkan karena teknik pemrograman
multi-threading dapat lebih mengoptimalkan kinerja prosesor terutama untuk
komputer dengan prosesor ganda.
Pada
komputer dengan prosesor tunggal teknik multi-threading tidak menghasilkan
proses yang benar-benar paralel karena banyak thread tetapi dikerjakan oleh
satu prosesor dengan cara time slicing. Sedangkan untuk komputer dengan
prosesor ganda maka banyak thread benar-benar dapat didistribusikan pada
prosesor-prosesor tersebut sehingga tercipta pemrosesan secara paralel yang
sesungguhnya. Hasil pengujian perangkat lunak tersebut bisa berbeda untuk waktu
pengujian yang berbeda.
Hal
ini disebabkan beban prosesor yang berbeda untuk situasi perangkat lunak
aplikasi yang dieksekusi yang sedang dieksekusi oleh sistem operasi. Namun
demikian hasil pengujian tersebut dapat mewakili perbandingan single-thread dan
multi-thread karena saat pengujian perangkat lunak ini keduanya dijalankan pada
situasi yang sama.
KESIMPULAN
1.
Perangkat lunak yang dikembangkan pada penelitian ini dapat digunakan untuk memperbandingkan
kecepatan pemrosesan citran secara single-thread dan multithread, dan
2. Teknik pemrograman
multi-threading dapat mempercepat proses pengolahan citra terutama untuk citra
dengan ukuran besar.
SUMBER
https://jsiskom.undip.ac.id/index.php/jsk/article.pdf
Komentar
Posting Komentar