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