From e7d25037fc3b991ec3227ddc535133d068394d9f Mon Sep 17 00:00:00 2001
From: Edward Alexander Jaya <13517115@std.stei.itb.ac.id>
Date: Sun, 23 Feb 2020 16:31:09 +0700
Subject: [PATCH] Update README.md

---
 README.md | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4d1cb45..d4eaad0 100644
--- a/README.md
+++ b/README.md
@@ -129,6 +129,9 @@ Berikut adalah hasil pengujian yang dikerjakan pada server 13517115@167.205.35.1
   | Paralel  | 278.312732 s | 308.372772 s |  198.770362 s|
 
 #### Analisis Perbandingan Kinerja Serial dan Paralel
-- 
+- Pada program serial, proses yang dijalankan hanya satu. Pada program paralel, terdapat enam proses yang dijalankan. Seharusnya kecepatan program paralel adalah `6-1 = 5` kali lebih cepat daripada program serial. Namun pada program paralel, semua proses harus disinkronisasi ( atau join ) dan hal tersebut memakan waktu cukup besar. Secara detail, jika satu proses sudah selesai menjalankan tugasnya, proses tersebut akan mengirimkan `MPI_RECV` dan proses dengan rank = 0 akan menerima `MPI_SEND`. Setelah itu, proses tersebut diblok untuk melanjutkan program oleh `MPI_BARRIER` sampai semua proses lainnya selesai dijalankan. Karena waktu pemblokiran tersebut bisa bervariasi tergantung proses, maka faktor ini juga harus dipertimbangkan.
+- `MPI_SEND` dan `MPI_RECV` memerlukan waktu yang proporsional dengan besar message yang dikirimkan. Artinya, semakin besar message yang dikirimkan, semakin besar overhead yang diperlukan. Sebagai contoh, pada pengujian dengan kasus uji N = 3000, satu proses mengerjakan `3000/5 = 600` task. Artinya, terdapat `3000 x 600 = 1.800.000` elemen yang akan dikirimkan satu proses kepada MPI_SEND. Satu elemen tersebut bertipe `long (8 bytes)`. Sehingga satu proses harus mengirimkan `1.800.000 X 8 bytes = 14.400.000 B = 14 MB` kepada proses dengan rank = 0. Berbeda dengan pada pengujian dengan kasus uji N = 1000, terdapat hanya `1000 / 5 * 1000 * 8 bytes = 1.6 MB` yang dikirimkan pada proses dengan rank = 0. Oleh karena itu, perbandingan waktu serial dan paralel dengan N = 1000 lebih baik dibandingkan dengan perbandingan waktu serial dan paralel dengan N = 3000.
+- Pada proses pengujian dengan N = 100 dan N = 500, perbandingan waktu serial dan paralel mirip. Hal ini dikarenakan nilai N yang kecil, sehingga overhead untuk menggabungkan 6 proses dan `MPI_SEND & MPI_RECV` memperlambat program paralel. Untuk N = 1000 dan N = 3000, perbandingan waktu serial dan paralel signifikan karena nilai N yang besar dapat diimbangi dengan jumlah proses yang besar meskipun terdapat overhead.
+
 
 
-- 
GitLab