Uploaded by farhansyakur852

Modul 3 - Multiprocessing

advertisement
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.
Download