Analisis Program Paralel

Program paralel yang saya maksud di sini adalah versi paralel dari sebuah program yang sebelumnya dibuat secara serial. Untuk membuat program paralel, kita bisa menggunakan MPI, OpenMP, atau Cuda bagi yang kartu grafisnya NVidia. Berikut ini beberapa hal yang menurut saya perlu diamati jika ingin menganalisis sebuah program paralel.

Pertama, utilitas prosesor alias penggunaan CPU. Kalau di OS Windows, kita bisa mendapatkan ini pada jendela “Windows Task Manager” di bagian “Performance”. Perhatikan bedanya dua gambar di bawah ini.

Serial CPU

Gambar 1. Penggunaan CPU pada program serial

paralel CPU

Gambar 2. Penggunan CPU pada program paralel

Gambar 1 menunjukkan performa penggunaan CPU untuk program yang dijalankan secara serial. Pada kotak paling kiri, CPU usage hanya menunjukkan angka 30%. Bandingkan dengan gambar 2 di mana CPU usage-nya mencapai 100%.

Pada gambar 1 (program serial) CPU usage history menunjukkan bahwa hanya satu prosesor (digambarkan dengan 1 kotak) dari 4 prosesor yang ada (semua 4 kotak), yang secara nyata melakukan usaha lebih keras dari ketiga prosesor lainnya. Bandingkan dengan gambar yang bawah, di mana keempat prosesor melakukan kerja keras yang sama.Lihatlah grafik garis yang mengalami fluktuasi serempak mencapai 100%.

Kedua, bandingkan waktu eksekusi antara program yang serial dengan yang paralel. Dari pembandingan ini akan didapat sebuah nilai yang namanya speed up. Nilai speed up didapat dari rumus berikut ini.

Speed up = waktu eksekusi program serial / waktu eksekusi program paralel

Nilai speed up akan bervariasi tergantung jumlah data yang diproses dan jumlah thread yang akan digunakan sebagai faktor paralel alias jumlah concurrent process (proses yang dijalankan bersamaan).

Ketiga, bandingkan efisiensi penggunaan prosesor. Pada jumlah prosesor yang tetap, kita bisa memanipulasi jumlah thread, sehingga angka ini mengacu pada efisiensi penggunaan thread dalam program paralel. Efisiensi dirumuskan sebagai berikut:

Efisiensi = speed up / jumlah thread

Dari poin kedua dan ketiga di atas, sangat disarankan untuk membuatnya dalam bentuk grafik dengan jumlah data yang bervariasi. Dengan visualisasi data, seharusnnya yang kita dapatkan adalah sebuah tren naik/turun tetapi memiliki titik balik.

Sebagai catatan, program paralel biasanya mencapai puncak (optimal) pada penggunaan thread yang sama dengan jumlah prosesor.

Sekian dulu, semoga bermanfaat.

Cipedes Tengah, 27 Mei 2013

Pos ini dipublikasikan di Akademik, Developer dan tag , . Tandai permalink.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s