ОО времена -- Erratum
Sunday, 4 October 2009 02:23 pmgfortran -O3 -fopenmp -m64 -march=core2 | ifort -fast -O3 -openmp -m64 -march=core2 | sunf90 -openmp -O3 -m64 | |
time FORALL | 52.8 | 11.0 | 18.2 |
time DO | 34.1 | 13.9 | 17.8 |
Похвалил gfortran, называется. Стал разбираться с паралеллизацией на OpenMP, выяснил ужасное: gfortran абсолютно не справляется с распараллеливанием FORALL. Do-циклы он более-менее берет, а FORALL вообще никак. Ноль ускорения. Код собственно элементарный, внутри трехмерного цикла заполняем массив числами типа
log(abs(sin(3.d0*i+2*j+k)))
.Если кто может дать совет по коду — милости прошу.
( Код )