From 9ffcc1bdba7e065de567550e27ab6e304da8bb25 Mon Sep 17 00:00:00 2001 From: Restu Wahyu Kartiko <13516155@std.stei.itb.ac.id> Date: Thu, 11 Apr 2019 21:23:10 +0700 Subject: [PATCH] Update readme --- README.md | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 63bf3fc..f92445e 100644 --- a/README.md +++ b/README.md @@ -40,19 +40,18 @@ Solusi sekarang memungkinkan program untuk menjalankan sorting lebih cepat diban Perhitungan flag, reverse flag, prefix sum, dan perhitungan index baru dapat dipercepat dengan dijalankan secara paralel. Namun, untuk perhitungan histogram, walaupun pada implementasi dilakukan secara paralael, namun sebenernya mirip dengan dilakukan secara serial karena menggunakan atomic add dari CUDA dimana fungsi tersebut menambahkan nilai pada sebuat resource global tanpa boleh diganggu dengan proses lain. Jika kita bisa benar-benar memparalelkan proses perhitungan histogram, maka proses akan berjalan sedikit lebih cepat. Selain itu, ada satu cara lagi untuk mempercepat proses pengurutan radix sort. Jika pada algoritma yang kami gunakan, pencarian flag dilaukan pada tiap bit. Jika kita bisa melakukan pencarian flag sekali langsung 2 atau 4 bit, maka proses akan menjadi lebih cepat karena iterasi akan berkurang. -**Solusi kinerja yang lebih baik** +#### Jumlah thread per block +##### Pengujian dengan 5000 data +. +| p | Percobaan 1 | Percobaan 2 | Percobaan 3 | Avg | +| --- | ----------- | ----------- | ----------- | ---------- | +| 1 | 9388756 | 9540459 | 9801868 | 9577027.67 | +| 2 | 8321433 | 9714896 | 10681952 | 9572760.33 | +| 4 | 8370137 | 8375228 | 8404319 | 8383228 | +| 8 | 9385675 | 9405848 | 9554137 | 9448553.33 | -#### Jumlah proses, pengujian dengan 5000 data +Dari data diatas, untuk pengukuran kerja kami menggunakan jumlah thread 4 karena terlihat lebih maksimal. -| p | Percobaan 1 | Percobaan 2 | Percobaan 3 | Avg | -| --- | ----------- | ----------- | ----------- | --------- | -| 1 | 7.886.116 | 7.031.364 | 7.225.447 | 7.380.975 | -| 2 | 5.820.907 | 5.038.785 | 5.139.077 | 5.347.923 | -| 4 | 8370137 | 8375228 | 8404319 | 4.109.141 | -| 8 | 9385675 | 9405848 | 4.281.710 | 4.599.084 | - -Dari data diatas, untuk pengukuran kerja kami menggunakan jumlah proses 4 karena terlihat lebih maksimal. -4 proses juga adalah jumlah defaul proses yang dijalankan saat menjalankan `mpirun` tanpa menentukan jumlah proses. #### Pengukuran kinerja Berikut adalah hasil dari pengukuran kinerja dengan jumlah elemen 5.000, 50.000, 100.000, 200.000, dan 400.000. Setiap pengujian dilakukan sebanyak 3 kali dan dihitung rata-ratanya. @@ -60,24 +59,19 @@ Berikut adalah hasil dari pengukuran kinerja dengan jumlah elemen 5.000, 50.000, | N | Percobaan 1 | Percobaan 2 | Percobaan 3 | Avg | Serial | Speedup | | ------- | ----------- | ----------- | ----------- | --------- | --------- | ------- | -| 5.000 | 178.765 | 156.628 | 150.515 | 161.969 | 65.573 | 0.40 | -| 50.000 | 623.373 | 678.248 | 639.913 | 646.980 | 973.833 | 1.52 | -| 100.000 | 1.139.981 | 1.198.428 | 1.112.751 | 1.150.386 | 1.886.436 | 1.64 | -| 200.000 | 2.174.736 | 2.397.348 | 2.455.534 | 2.342.539 | 3.756.605 | 1.60 | -| 400.000 | 4.022.905 | 4.237.897 | 4.066.621 | 4.109.141 | 7.380.975 | 1.80 | +| 5.000 | 8148786 | 8157402 | 8182279 | 8162822.33| 9388756 | 1.15 | +| 50.000 | 9945857 | 9942933 | 9966641 | 9951810.33| 10249821 | 1.03 | +| 100.000 | 10308169 | 10312216 | 10320996 |10313793.67| 10911577 | 1.06 | +| 200.000 | 10917660 | 10925651 | 10885625 |10909645.33| 12662192 | 1.161 | +| 400.000 | 11425132 | 11419351 | 11433364 | 11425949 | 14206280 | 1.24 | #### Analisis perbandingan kinerja -Pada percobaan terlihat bahwa speedup cenderung semakin tinggi ketika problem size ditingkatkan. +Pada percobaan yang telah kami lakukan, proses speed pada tiap percobaan dengan N kecil (5000) hingga N besar (400000) menunjukan performa parlel lebih bagus dari performa serial. Selain itu, nilai speedup yang didapan cenderung naik ketika nilai N juga semakin besar. + Dan juga efisiensi. Hal ini dikarenakan peningkatan ``T``<sub>overhead</sub> lebih kecil dibandingkan dengan ``T``<sub>serial</sub>. -Oleh karena itu, semakin besar problem size, speedup cenderung meningkat, namun tidak akan lebih dari ``p`` kali. -(``p`` banyaknya proses yang digunakan) -(``T``<sub>paralel</sub> = ``T``<sub>serial</sub>/``p`` + ``T``<sub>overhead</sub>) -(speedup = ``T``<sub>serial</sub>/``T``<sub>paralel</sub>) -Pada uji coba problem size 5000, didapatkan bahwa waktu serial justru lebih cepat dibandingkan dengan waktu paralel. Hal ini dikarenakan, proses yang dilakukan untuk melakukan message passing lebih besar dibandingkan dengan operasi sort dan merge yang terjadi, sehingga overhead akibat message passing ini dapat menyebabkan speedup yang berkurang drastis. ### References - Slide kuliah IF3230 Sistem Terdistribusi -- http://mpitutorial.com/tutorials/ -- https://www.geeksforgeeks.org/radix-sort/ \ No newline at end of file +- https://stackoverflow.com/questions/26206544/parallel-radix-sort-how-would-this-implementation-actually-work-are-there-some -- GitLab