Skip to content
Snippets Groups Projects
Commit 9ffcc1bd authored by Restu Wahyu Kartiko's avatar Restu Wahyu Kartiko
Browse files

Update readme

parent 3321d88d
No related merge requests found
......@@ -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
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment