Abstract :
Pemrograman paralel merupakan salah satu strategi yang digunakan. untuk
mempercepat pemrosesan suatu algoritma yang melibatkan perhitungan matematis yang
banyak dan kompleks. Dengan pemrograman paralel ini, suatu tugas dikomposisikan
menjadi tugas-tugas yang lebih kecil dan diproses secara simultan oleh beberapa
prosesor. Pada pemrograman paralel dengan arsitektur master-slave dan penjadwalan
statis, prosesor slave harus menyelesaikan bagian tugas yang telah ditugaskan prosesor
master atau dengan kata lain prosesor slave yang telah diberikan tugas tidak dapat
diinterupsi. Oleh karena itu, pada kasus dimana ada bagian tugas yang mempunyai beban
kerja jauh lebih besar dari pada bagian yang lain terdapat masalah pemerataan beban
kerja. Hal ini menyebabkan pemrograman paralel tidak banyak mengurangi waktu
pemrosesan. Beban kerja dapat diratakan dengan memanfaatkan prosesor slave yang idle
untuk membantu prosesor slave yang masih memproses. Selain itu, pengiriman pesan
antara prosesor master dan slave dilakukan se-minimal mungkin agar tidak
memperlambat waktu proses.
Salah satu algoritma yang dapat menjadi kasus untuk pemrograman paralel adalah
algoritma ray tracing Hal ini dikarenakan algoritma ray tracing memerlukan perhitungan
yang kompleks. Pada algoritma ray tracing suatu sinar dibuat (cast) untuk setiap piksel
pada frame dan semua sinar bersifat independent satu sama lain. Oleh karena itu,
algoritma ini dapat dikerjakan secara paralel dengan cara mendistribusikan sejumlah sinar
pada setiap prosesor.
Agar dapat menunjukkan masalah pemerataan beban kerja pada pemrograman
paralel maka diperlukan kasus yang mendukung hal tersebut Algoritma ray tracing dapat
juga menunjukkan masalah pemerataan beban kerja jika dikerjakan dengan pemrograman
paralel. Hal ini dikarenakan setiap sinar pada algoritma ray tracing mempunyai waktu
komputasi yang berbeda. Waktu komputasi tersebut tergantung pada kompleksitas dari
perpotongan yang terjadi antara sinar dan objek yang ada. Oleh karena itu, persentase
terjadinya ketidakseimbangan beban kerja prosesor Jika dikerjakan dengan pemrograman
paralel adalah besar.
Uji coba dilakukan dengan menggunakan 2 komputer pada 2 jenis scene. Scene
pertama menunjukkan keadaan beban kerja yang tidak merata dan scene kedua
menunjukkan keadaan beban kerja yang hampir merata. Dari hasil ujicoba dapat ditarik
kesimpulan bahwa penentuan jumlah worker dan penentuan pembagian yang dilakukan
saat inisialisasi mempengaruhi waktu proses yang dicapai.