Materi 4
Materi 4
Materi
• Pengenalan Thread
• Pemrograman Multicore
• Model Multithread
• Thread Library
• Implicit Threading
• Permasalahan dalam Thread
• Thread dalam Berbagai Sistem Operasi
Tujuan
• Data parralelism
• Task parralelism
Data Parallelism
• Asynchronous Threading
– Setelah thread induk membuat thread anak, proses induk
kembali melanjutkan eksekusi
– Thread induk dan thread anak berjalan independen
– Proses induk tidak perlu tahu status thread anak
• Synchronous Threading
– Proses induk menunggu semua thread anak selesai
sebelum melanjutkan eksekusi (fork-join)
– Setelah thread anak selesai, join ke thread induk
Pthreads
• Thread Pools
• OpenMP
Thread Pools
• Latar Belakang
– Ada ratusan/ribuan thread yang harus dibuat pada satu aplikasi.
Contoh : webserver
– Pembuatan thread memakan waktu, terlebih pada kenyataannya
thread dibuang seketika sesudah ia menyelesaikan tugasnya
• Solusi Thread Pools
– Buat beberapa thread di proses startup dan tempatkan dalam
penampung (pool) dimana mereka menunggu untuk di-assign
– Ketika sebuah tugas akan dieksekusi, gunakan thread-thread yang
sudah tersedia dalam pool, ketika sudah selesai kembali ke pool dan
ketika tidak tersedia pada saat dibutuhkan maka server menunggu
sampai ada satu thread yang selesai
• Kelebihan
– Lebih cepat daripada membuat thread baru setiap kali ada tugas
– Jumlah thread dalam aplikasi dibuat sesuai dengan ukuran dari pool
OpenMP
• API untuk C, C++, FORTRAN
• Menyediakan dukungan untuk
pemrograman parallel pada
lingkungan shared-memory
• Programmer dapat menentukan
Parallel regions – bagian code yang
berjalan secara parallel