tugas3-openMP/README.md
2022-11-16 20:02:10 +07:00

3.3 KiB

Gabriel Possenti Kheisa Drianasta
19/442374/PA/19123

Hasil Tugas OpenMP

Pengujian terhadap 1, 2, 4, 8, 16, 32, hingga 64 thread

Hasil

Matrix size: 4096

  • 1 Thread: 227.454 sec
  • 2 Thread: 115.605 sec
  • 4 Thread: 60.744 sec
  • 8 Thread: 30.498 sec
  • 16 Thread: 26.556 sec
  • 32 Thread: 24.960 sec
  • 64 Thread: 24.707 sec

Waktu (detik)

Selisih waktu terhadap jumlah core sebelumnya (detik)



Pertanyaan

1. What is the maximum speed up compared to single thread execution?

Dengan menghitung perbandingan selisih waktu yang di dapat antara 1 thread dengan 2 thread, yakni ( 227 / 115 ) detik, maka speedup yang di dapat adalah 1.97 kali. Dengan menggunakan rumus perhitungan speedup berikut:

Maka program bersifat 98.4% parallel. Dengan persentase berikut,maka, perbandingan performa dengan program yang bersifat parallel sempurna adalah sebagai berikut:

Parallel 100% = [1, 2, 4, 8, 16, 32, 64]
Parallel 98.4% = [1, 1.97, 3.8, 7.19, 12.9, 21.4, 31.8]

Selisih speedup terbesar tampak pada jumlah thread 8 ke 16, sama seperti hasil percobaan sebelumnya, sehingga penambahan jumlah core dari 8, ke 16, ke 32, dan seterusnya menjadi relatif lebih tidak efektif.

2. As we increase the number of threads, the execution time starts to saturate at one point (cannot get any faster). Explain why this happens.

Karena program tidak bersifat parallel sempurna (100%). Program bersifat 98.4% parallel, dimana 1.6% bersifat serial. Bagian serial ini merupakan bagian yang tidak dapat dikerjakan secara parallel karena berbagai faktor. Meskipun angka tersebut kecil, selisih speedup dengan program yang dapat dijalankan secara parallel sempurna akan semakin terlihat dengan jumlah core atau thread yang semakin banyak.

3. Find the exact number of threads where saturation begins. What is its relationship with the number of physical cores of the system? Explain.

Berdasarkan hasil yang terlampir, baik hasil eksperimen maupun perhitungan dengan Hukum Amdahl, 8 thread merupakan jumlah core terbaik karena selisih waktu eksekusi (hasil percobaan) tidak begitu besar, sedangkan selisih speedup (perhitungan menggunakan Hukum Amdahl) sangat besar. Dengan kata lain, 8 thread ke 16 thread dan seterusnya relatif tidak efektif. Hubungan antara jumlah thread program dengan jumlah core adalah berbanding lurus dalam hal speedup dan berbanding terbalik dengan waktu eksekusi, dengan program yang bersifat 100% parallel.


Lampiran program dan hasil: https://repo.gabrielkheisa.xyz/gabrielkheisa/tugas3-openMP