Skip to content

Latest commit

 

History

History
140 lines (135 loc) · 6.07 KB

README-run.md

File metadata and controls

140 lines (135 loc) · 6.07 KB

⚙️🤔 How to Run the program?

Berikut adalah cara untuk melakukan segala setup, mulai dari SSH, cara menggunakan server, hingga apa yang harus dilakukan jika melakukan additional changes.

🔑  Initialize SSH

  1. Buka direktori kumpulan ssh yang disediakan asisten disini, kemudian download k02-05 dan k02-05.pub.
  2. Jika menggunakan WSL, setelah di download, pindahkan SSH key (keduanya) ke directory WSL (/home/[username]/). Bukan pada directory Windows (/mnt/[drive letter]/[any]/**/*). Masukkan kedanya di folder .ssh.
  3. Edit permission SSH key dengan chmod.
    $ chmod 600 ~/.ssh/k02-05
    $ chmod 644 ~/.ssh/k02-05.pub
  4. Add SSH key nya agar tercatat sebagai known host.
    $ ssh-add ~/.ssh/k02-05
  5. Ubah authorization keys SSH nya agar available.
    $ cd ~/.ssh/
    $ sudo nano authorized_keys
    Selanjutnya akan muncul code editor nano. Jika berhasil, sekarang buka k02-05.pub, lalu salin semua isinya dan paste di code editor nano. Jika sudah, jangan lupa untuk melakukan save (Ctrl + S) dan exit (Ctrl + X).
  6. Sekarang setup sshd_config nya agar setiap coba akses ke server tidak selalu meminta password.
    $ cd ..
    $ sudo nano /etc/ssh/sshd_config
    Selanjutnya akan muncul code editor nano. Jika berhasil, masukkan 2 permission ini ke code editor nano nya.
    PasswordAuthentication no
    PubkeyAuthentication yes
    Jika sudah, jangan lupa untuk melakukan save (Ctrl + S) dan exit (Ctrl + X).
  7. Jika semua langkah diatas sudah dilakukan, SSH sudah siap untuk menembak server!

🗄️  Menggunakan Server (Khusus Serial, MPI, dan OpenMP)

  1. Hubungkan dengan salah satu server menggunakan SSH melewati IP publik. IP publik yang disediakan asisten, ada 2 yaitu.

    4.145.183.206
    4.145.178.6
    

    Kita akan menggunakan IP publik yang pertama, lakukan dengan run command berikut.

    Jika sudah berhasil, seharusnya program akan minta permission, ketik yes.

  2. Dalam kondisi masih terhubung dengan salah satu server, lakukan SSH ke semua server dengan IP private.

    • Jika SSH key public 4.145.183.206, maka private nya ada 10.0.1.7 dan 10.0.1.4
    • Jika SSH key public 4.145.178.6, maka private nya ada 10.0.1.6 dan 10.0.1.5

    Caranya, tanpa merubah apapun, ketik dua command berikut secara bergantian (dalam kasus ini, digunakan IP publik pertama).

  3. Putuskan koneksi SSH ke server dan kembali ke local. Caranya tinggal ketik exit hingga kembali.

    $ exit
    
  4. Masuk ke directory tucil (dalam kondisi menggunakan WSL), Buat file hostname dengan isi semua IP privat yang dipisahkan dengan newline. Dapat dilakukan dengan menjalankan command berikut.

    $ echo -e "10.0.1.7\n10.0.1.4" > hostname
  5. Compile program yang baru saja dibuat dengan command berikut.

    • Untuk Serial, jalankan command dibawah.
      $ make compile-serial
    • Untuk MPI, jalankan command dibawah.
      $ make compile-mpi
    • Untuk OpenMP, jalankan command dibawah.
      $ make compile-openmp

    Selanjutnya, salin executable, test cases, makefile, dan result folder ke semua server menggunakan scp. Dapat dilakukan dengan menjalankan command berikut.

    $ make copy-server
  6. Jika langkah sebelumnya berhasil, maka Anda akan masuk ke dalam server publik. Langkah berikutnya, adalah mendistribusikan isinya ke semua server private dengan mengetikkan command berikut.

    $ make copy-branch-server

    Kemudian untuk menjalankan program ketikkan command dibawah.

    • Untuk Serial, jalankan command dibawah.
      $ make serial
    • Untuk MPI, chmod +x executable dan jalankan dengan mpirun, pada command dibawah, MPI dijalankan dengan 4 process.
      $ make mpi
    • Untuk OpenMP, chmod +x executable dan jalankan dengan mpirun, pada command dibawah.
      $ make openmp
      Sebagai catatan, untuk OpenMP tidak perlu melakukan copy branch server.
  7. Jika semua prosedur diatas dijalankan, maka seharusnya program dapat berjalan dengan baik!

📣  Menggunakan Google Colaboratory (Khusus CUDA)

Pastikan sistem yang digunakan memiliki Nvidia GPU yang telah terkonfigurasi dengan baik. Jika tidak memiliki sistem dengan spesifikasi tersebut, gunakan Google Colaboratory. Berikut adalah tautan Google Colaboratory kami.

🛠️  Additional Changes

Jika sebelumnya sudah melakukan prosedur diatas dan melakukan perubahan yang ingin di update, maka kedepannya yang perlu dilakukan hanya run command berikut.

  1. Untuk Serial, jalankan command di bawah.
    $ make compile-serial
    $ make copy-server
    $ make serial
  2. Untuk MPI, jalankan command di bawah.
    $ make compile-mpi
    $ make copy-server
    $ make copy-branch-server
    $ make mpi
    Untuk menjalankannya secara lokal, jalankan command dibawah.
    $ make compile-mpi
    $ make mpi-local
    Untuk menjalankan debugger dengan valgrind (pastikan sudah menginstall sebelumnya), jalankan command dibawah.
    $ make compile-mpi
    $ make mpi-debug
    Anda juga dapat mengubah konfigurasi jumlah proses dengan mengubah langsung konfigurasi makefile.
  3. Untuk OpenMP, baik secara lokal maupun server, jalankan command di bawah.
    $ make compile-openmp
    $ make openmp
  4. Untuk CUDA, jalankan command di bawah.
    $ make compile-cuda
    $ make cuda