tugas3-openMP/README.md
gabrielkheisa fcabd6b5e0 add
2022-11-16 19:59:19 +07:00

58 lines
3.2 KiB
Markdown

<p>
Gabriel Possenti Kheisa Drianasta<br>
19/442374/PA/19123
</p>
<h1>Hasil Tugas OpenMP</h1>
<h3>Pengujian terhadap 1, 2, 4, 8, 16, 32, hingga 64 thread</h3>
<h2>Hasil</h2>
<p>Matrix size: 4096</p>
<ul>
<li>1 Thread: 227.454 sec</li>
<li>2 Thread: 115.605 sec</li>
<li>4 Thread: 60.744 sec</li>
<li>8 Thread: 30.498 sec</li>
<li>16 Thread: 26.556 sec</li>
<li>32 Thread: 24.960 sec</li>
<li>64 Thread: 24.707 sec</li>
</ul>
<br>
<h3>Waktu (detik)</h3>
<img src="https://media.discordapp.net/attachments/1003173519879847966/1041940259719618560/image.png">
<h3>Selisih waktu terhadap jumlah core sebelumnya (detik)</h3>
<img src="https://cdn.discordapp.com/attachments/1003173519879847966/1042339831071657994/image.png">
<br><br>
<h1>Pertanyaan</h1>
<h3>1. What is the maximum speed up compared to single thread
execution?</h3>
<p>Dengan menghitung perbandingan selisih waktu yang di dapat antara 1 thread dengan 2 thread, yakni ( 227 / 115 ) detik, maka speedup yang di dapat adalah <b>1.97</b> kali. Dengan menggunakan rumus perhitungan speedup berikut:</p>
<img src="https://cdn.discordapp.com/attachments/1003173519879847966/1042413697986994176/image.png">
<p>Maka program bersifat <b>98.4%</b> parallel. Dengan persentase berikut,maka, perbandingan performa dengan program yang bersifat parallel sempurna adalah sebagai berikut:</p>
<pre>
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]
</pre>
<img src="https://media.discordapp.net/attachments/1003173519879847966/1042418071593304117/image.png">
<p>Selisih speedup terbesar tampak pada jumlah thread <b>8 ke 16</b>, sama seperti hasil percobaan sebelumnya, sehingga penambahan jumlah core dari 8, ke 16, ke 32, dan seterusnya menjadi relatif lebih tidak efektif.</p>
<h3>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.</h3>
<p>Karena program tidak bersifat parallel sempurna (100%). Program bersifat 98.4% parallel, dimana <b>1.6%</b> 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.</p>
<img src="https://media.discordapp.net/attachments/1003173519879847966/1042420674385416202/image.png">
<img src="https://media.discordapp.net/attachments/1003173519879847966/1042421381591203871/image.png">
<h3>3. Find the exact number of threads where saturation begins. What is its relationship with the number of physical cores of the system?
Explain.</h3>
<p>Berdasarkan hasil yang terlampir, baik hasil eksperimen maupun perhitungan dengan Hukum Amdahl, <b>8 thread</b> 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.</p>