Pertimbangkan dua komputer dengan konfigurasi perangkat keras dan perangkat lunak yang berbeda. Saat menjalankan kode Navier-Stokes serial yang sama persis pada setiap platform, diperlukan waktu x dan y untuk menjalankan satu iterasi untuk komputer 1 dan 2, secara berurutan. Dalam kasus ini, , adalah perbedaan waktu iterasi antara komputer 1 dan komputer 2.
Apa yang bisa berdampak pada besarnya ? Salah satu kandidat yang jelas adalah CPU, pertanyaan utama saya adalah apakah ada faktor-faktor lain yang dapat mempengaruhi pada urutan yang sama dengan perbedaan perangkat keras antara CPU?
performance
iterative-method
navier-stokes
Osilasi Isopycnal
sumber
sumber
Jawaban:
Daftar ini sama sekali tidak lengkap, tetapi mudah-mudahan ukurannya akan memberi petunjuk tentang skala faktor yang mungkin. Saya berasumsi Anda sedang mengkompilasi kode dari sumber pada platform pilihan Anda.
Perangkat lunak
Perangkat keras
CPU
Penyimpanan
HDD
Ini semua mengabaikan trik kecil dan fitur produsen yang berbeda termasuk untuk memberikan chip mereka keunggulan di pasar. Namun yang besar adalah bahwa banyak perpustakaan aljabar linier jarang terikat memori. Mengalikan matriks jarang melibatkan banyak data bergerak tanpa banyak jepit yang sebenarnya.
sumber
-march=native
, atau opsi icc / ifort-xHOST
yang akan menerapkan optimasi khusus untuk arsitektur yang mendasarinya.Kedua, pertanyaan Anda secara khusus mengecualikan perbedaan dalam perangkat lunak. Dalam pengalaman saya, penghargaan kinerja untuk penyetelan yang hati-hati bisa menjadi faktor besar, jadi saat Anda mempertimbangkan masalah perangkat keras, jangan lupa masalah perangkat lunak. Bagaimanapun, perangkat keras hanya dapat menjalankan instruksi yang Anda berikan, dan jika Anda memberikannya lebih sedikit, itu akan selesai lebih cepat.
Bukan untuk memperluas ini terlalu banyak, tetapi untuk setiap masalah yang ada ada tak terhitung program yang akan menyelesaikannya. Di antara ini, beberapa memakan waktu lebih sedikit daripada yang lain, dan itu adalah batas bawah. Jangan menganggap program apa pun berada pada atau bahkan di dekat batas bawah ini jika belum disetel dengan cermat.
Tautan ini menjelaskan secara rinci metode ortodoks yang saya gunakan.
sumber