Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Modul 3 Pemrograman Paralel PROCESS – MULTIPROCESSING 1. Praktek 1 Buatlah sebuah file dengan nama proses1.py yang merupakan praktek 1, dengan kode sebagai berikut : Bagian 1 Bagian 2 Bagian 3 Bagian 4 Bagian 5 Tampilan yang akan muncul Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Pada praktek 1 tersebut, program dijalankan tanpa menggunakan modul thread maupun multiprocessing. Pada bagian 4 dilakukan pemanggilan terhadap fungsi(function) pekerjaan() sebanyak 2 kali, karena setiap pekerjaan diberikan waktu tunggu sebesar 1 detik maka total waktu berjalan adalah 2 detik. 2. Praktek 2 Praktek 2, silahkan ubah Bagian 1 menjadi Bagian 4 ubah menjadi Maka tampilan yang dihasilkan adalah sebagai berikut Pada praktek 2 dilakukan pemanggilan fungsi(function) pekerjaan() sebanyak 2 kali dengan menggunakan modul Thread, hasilnya adalah program dapat berjalan dengan lebih cepat dikarenakan Thread menggunakan waktu tunggu untuk mengekeksekusi pekerjaan selanjutnya. Pada tampilan proses dilakukan pada Mainproses dengan ID yang sama namun dengan Thread yagn berbeda yaitu Thread 1 dan Thread 2. 3. Praktek 3 Praktek 3, silahkan ubah Bagian 1 menjadi : Bagian 4 menjadi : Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Maka tampilannya yang dihasilkan adalah sebagai berikut: Pada praktek 3 dilakukan pemanggilan fungsi(function) pekerjaan() sebanyak 2 kali dengan menggunakan modul Multiprocessing, hasilnya adalah program dapat berjalan dengan waktu yang lebih lama daripada menggunakan modul Thread, namun pada tampilan proses dilakukan pada proses yang berbeda yaitu Process 1 dan Process 2 dengan ID yang berbeda pula hal ini dapat menunjukan bahwa proses dilakukan di core processor yang berbeda. 4. Praktek 4 Pada praktek 4, silahkan ubah atau tambahkan 1 fungsi baru di bagian 2 : Fungsi diatas adalah fungsi untuk mengurangi nilai dengan angka 1, perulangan akan berhenti setelah mencapai angka 0. Nilai diberikan sebesar 10.000 Pada bagian 4, ubah menjadi Tampilan yang dihasilkan adalah sebagai berikut Tampilan tersebut menjelaskan bahwa fungsi yang dipanggil sudah mengerjakan penghitungan dan hanya menampilkan waktu yang dibutuhkan untuk mengerjakan perhitungan tersebut. Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing 5. Praktek 5 Pada praktek 5 silahkan ubah bagian 4 menjadi Tampilan yang akan dihasilkan adalah sebagai berikut Jika dibandingkan dengan tampilan pada praktek 4 maka penggunaan modul Thread tetap mempunyai waktu lebih cepat dibandingkan dengan menggunakan modul Multiprocessing pada praktek 5, namun pada praktek 5 fungsi pekerjaan2() dilakukan oleh 2 proses yang berbeda. Silahkan ubah angka pada variabel nilai menjadi 100.000.000 (seratus juta angka), hasilnya adalah sebagai berikut Gambar A Gambar B Gambar A dilakukan menggunakan modul Multiprocessing sedangkan gambar B menggunakan modul Thread, mulai terlihat bahwa Thread lebih lama dibandingkan dengan Multiprocessing. Penggunaan modul multiprocessing mulai memberikan waktu yang baik setelah diberikan tugas yang lebih besar. Tambahkan pada bagian 4 P3-P6 kemudian jalankan menggunakan Modul Thread dan Modul Multiprocessing. Bandingkan waktu keduanya Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Gambar C Gambar D Gambar C adalah tampilan Ketika bagian 4 diberikan instruksi sebanyak 6 (P1-P6) dengan menggunakan modul Multiprocessing, terlihat bahwa CPU mengawali di 100 % penggunaan dan kemudian masih terlihat tinggi penggunaannya sampai semua proses selesai dilakukan. Gambar D menjelaskan bahwa pada penggunaan Modul Multiprocessing setiap proses dilakukan dengan id yang berbeda artinya bekerja secara parallel. Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Gambar E Multithreading mengacu pada kemampuan prosesor untuk mengeksekusi beberapa thread secara bersamaan, di mana setiap thread menjalankan suatu proses. Multiprocessing mengacu pada kemampuan suatu sistem untuk menjalankan beberapa prosesor secara paralel, dimana setiap prosesor dapat menjalankan satu atau lebih thread. Gunawan Wibisono – Pemrograman Paralel-Process Multiprocessing Tugas : Buat program yang berisi function baru dengan nama pekerjaan3(), Pekerjaan 3 berisi menjumlahkan dari 1 – 1.000.000.000 dengan perulangan menggunakan For . Gunakan modul Multiprocessing dan Thread sebanyak 6 proses. ScreenShot tampilan hasilnya, bandingkan waktu yang dibutuhkan antara menggunakan modul Thread dan menggunakan modul Multiprocessing.