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

Komentar

Postingan populer dari blog ini

Kerak Telor, Makanan Khas Betawi

REVIEW IMPLEMENTASI NOSQL DATABASE