diff --git a/README.md b/README.md index f77e0e810edfc34916acba1e68f804cc665adacd..a34d69248e89eb303ebb5f100d58d790958704ad 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,29 @@ -# Announcement +# OpenMPI -Beberapa file yang harus ada dalam repositori tersebut diantaranya: -* Direktori src yang berisi source code yang anda buat. -* File output yang berisi hasil uji dijkstra algorithm pada data uji. -* Makefile. Buatlah sehingga kompilasi program dapat dilakukan hanya dengan pemanggilan command ’make’ saja. -* File README.md yang berisi: - * Petunjuk penggunaan program. - * Pembagian tugas. Sampaikan dalam list pengerjaan untuk setiap mahasiswa. Sebagai contoh: XXXX mengerjakan fungsi YYYY, ZZZZ, dan YYZZ. - * Laporan pengerjaan, dengan struktur laporan sesuai dengan deskripsi pada bagian sebelumnya. +## Petunjuk Penggunaan Program +1. Copy repositori ke storage lokal. +2. Jalankan `make`. +3. Run 'openmpi.out' dengan command +`mpirun -np <jumlah proses> --hostfile mpi_hostfile openmpi.out <jumlah node>` +<br>contoh: `mpirun -np 6 --hostfile mpi_hostfile openmpi.out 100` +4. Buka file 'output.txt' untuk melihat jarak terdekat antar node. +## Pembagian Tugas +1. Harry Prabowo (13517094): Mengintegrasi fungsi dan MPI_Gather untuk menghasilkan file output. +2. Vincent Chuardi (13517103): Mengimplemen fungsi dijkstra, dan inisialisasi, broadcast MPI. + +## Solusi Paralel +Paralel yang dilakukan adalah dengan membagi pencarian jarak terdekat tiap nodus. Pembagiannya dilakukan dengan membagi total nodus terhadap jumlah proses yang diinginkan, kemudian mengalokasikan tiap proses jumlah nodus yang sama. + +### Analisi Solusi +Solusi yang kami tawarkan adalah solusi yang sederhana. Terdapat solusi yang lebih bagus, solusi tersebut memotong kolom kemudian membagi load pekerjaan ke proses-proses dan mencari lokal minimum hasil tiap proses. Setelah itu, membandingkan lokal mininum dan diharapkan mendapatkan global minimum. + +### Jumlah Thread +Berjumlah 6, karena host yang dialokasikan berjumlah 6 buah. Jika dialokasikan lebih dari 6, akan menyebabkan overtime yang disebabkan dari context switching proses-proses. + +### Pengukuran Kinerja +#### 100 node +Serial: 950058 ms + +### Analisis Perbandingan Kinerja Serial & Paralel +Kinerja serial seharusnya lebih buruk daripada paralel karena kinerja paralel membagi tugas ke beberapa proses sedangkan serial hanya dilakukan oleh sebuah proses. Tetapi, karena pengaruh server yang sedang berat, maka komunikasi antar proses menjadi lebih lama yang mengakibatkan waktu paralel lebih lama. \ No newline at end of file