Rozważ dwa komputery z różnymi konfiguracjami sprzętu i oprogramowania. Podczas uruchamiania dokładnie tego samego seryjnego kodu Naviera-Stokesa na każdej platformie wykonanie x ity odpowiednio dla komputera 1 i 2 wymaga czasu xiy. W tym przypadku jest różnicą czasu iteracji między komputerem 1 a komputerem 2.
Co może wpłynąć na wielkość ? Jednym oczywistym kandydatem jest procesor, moim głównym pytaniem jest to, czy istnieją inne czynniki, które mogą wpływać na w tej samej kolejności, co różnica sprzętowa między procesorami?Δ
performance
iterative-method
navier-stokes
Oscylacja Isopycnal
źródło
źródło
Odpowiedzi:
Ta lista nie jest jeszcze prawie kompletna, ale mam nadzieję, że jej rozmiar da wskazówkę co do skali możliwych czynników. Zakładam, że kompilujesz kod ze źródła na wybranej platformie.
Oprogramowanie
Sprzęt komputerowy
procesor
Pamięć
HDD
To wszystko ignoruje małe sztuczki i funkcje różnych producentów, aby zapewnić swoim chipom przewagę na rynku. Duża jest jednak to, że wiele rzadkich bibliotek algebry liniowej jest powiązanych z pamięcią. Wykonywanie rzadkiej macierzy wymaga mnóstwa danych przemieszczających się bez wielu rzeczywistych klap.
źródło
-march=native
lub icc / ifort,-xHOST
która zastosuje optymalizacje specyficzne dla architektury bazowej.Po drugie, twoje pytanie wyraźnie wyklucza różnice w oprogramowaniu. Z mojego doświadczenia wynika, że nagrody za wydajność za staranne dostrojenie mogą mieć duże znaczenie, więc rozważając problemy ze sprzętem, nie zapomnij o problemach z oprogramowaniem. W końcu sprzęt może wykonać tylko instrukcje, które mu podasz, a jeśli dasz mu mniej, skończy się szybciej.
Nie rozwijajmy się zbytnio, ale dla każdego problemu istnieje niezliczona liczba programów, które go rozwiążą. Niektóre z nich zajmują mniej czasu niż wszystkie inne, a to jest dolna granica. Nie zakładaj, że żaden program znajduje się w dolnej granicy, a nawet w jej pobliżu, jeśli nie został dokładnie dostrojony.
Ten link szczegółowo wyjaśnia niekonwencjonalną metodę, której używam.
źródło