/ / Rôzne výsledky závisia od operačného systému - operačný systém, Fortran, optimalizácia kompilátorov, možnosti kompilátora

Rôzne výsledky závisia od operačného systému - operačný systém, Fortran, optimalizácia kompilátorov, možnosti kompilátora

Používam CFD kód napísaný vo Fortran. Niektoré jeho časti boli paralelizované s OpenMP. Dokonca aj vtedy, keď sa obrátim na OpenMP a používam tie isté možnosti kompilátora (-O3) na systéme Windows a Linux, získam rôzne výsledky. Po pokuse o vypnutie optimalizácie (-O0) a pridanie zdroja (-fp-model) do mojich možností kompilátora sa zobrazí iba NaN po 2 iteračných krokoch. Existuje nejaký iný dôvod, prečo existujú iné výsledky a ako môžem uistite sa, že sú to isté)

Vďaka, sebastian

P.S .: Obidva stroje používajú rovnaký Intel Fortran Compiler 2013, sú 64 bitov a majú procesor Intel Xeon.

odpovede:

1 pre odpoveď č. 1

V závislosti od algoritmu a rozlíšenia je možné, aby CFD kód bez chýb získal výrazne odlišné výsledky zapnutím paralelnosti.

Ako navrhuje HPMark, môžu to byť malé rozdielyočakáva pri zmene platforiem. Veľké rozdiely naznačujú, že máte nejaký kompilátor alebo kód špecifický pre systém a potrebujete pracovať s portovaním. Ak dôjde k väčším problémom pri otočení DOWN, úroveň optimalizácie môže byť chybou v pamäti.

Dávajte pozor, aby ste zmenili iba jednu vec v čase, keď sa dostanete do zmätočných situácií, ako je táto.