Saya mencoba untuk mengoptimalkan aplikasi MPI dengan pola komunikasi yang sangat tidak sinkron. Setiap peringkat memiliki daftar hal-hal untuk dihitung, dan mengirim pesan seperlunya jika input atau output berada pada peringkat yang berbeda. Selain itu, setiap peringkat di utas (saat ini dengan satu utas komunikasi dan 5 pekerja).
Saya telah memasukkan kode dengan pengukur waktu di sekitar bagian kritis kinerja yang berbeda dari kode, yang memberi saya daftar tiga kali lipat (mulai, akhir, jenis) untuk setiap utas. Plot dengan cara yang jelas, dengan waktu sebagai sumbu horizontal, pangkat dan benang sebagai vertikal, dan warna yang menunjukkan apa yang sedang dilakukan masing-masing thread, saya mendapatkan gambar seperti ini untuk 16 peringkat dengan 6 benang / peringkat:
Pertanyaan saya adalah: apa cara lain untuk memvisualisasikan data ini yang dapat membantu merinci masalah kinerja? Adakah yang memiliki jenis plot favorit yang mereka gunakan saat membuat profil aplikasi asinkron?
Kumpulan data ini terbatas karena tidak mengetahui struktur aliran data, tetapi saya ingin mendapatkan wawasan sebanyak mungkin sebelum mencoba mengumpulkan sesuatu yang lebih rumit.
Gambar yang tidak terkompresi ada di sini kalau-kalau ada yang ingin melihat-lihat (gagal mengunggah melalui rute normal). Sayangnya, Firefox tidak menerimanya meskipun saya yakin itu valid, mungkin karena terlalu besar.