Лого Сделано у нас
43

СуН на «Эльбрусе» :)

читать полностью

Читайте также...

Вступайте в наши группы и добавляйте нас в друзья :)

Подпишитесь на наш канал в Яндекс.Дзен и сделайте вашу ленту объективнее!
  • 1
    Нет аватара nesk
    16.12.1510:33:17

    f90 -o test -O3 main79.f pythia-6.4.28.f

    после пяти с четвертью часов (real 5:14:45.35) (пяти часов!!!11) свалилась в

    Internal Compiler Error! […] f90: error 213: Errors detected, no link.

        (думаю, в уперлась в лимит data segment)

    без оптимизации (f90 -o test main79.f pythia-6.4.28.f) собралось за

    real 44.02

    и отработала за

    real 38.70

    user 36.33

    sys 1.93

    Напоминаю, это древний, десятилетней давности итаник работающий на 1.6 GHz с кэшом L1(I): 16KB, L1(D): 16KB, L2:256 KB, L3: 3MB

    У Эльбруса на вдвое меньшей частоте 0.8 GHz, но с большим кэшом L1(I): 128KB, L1(D):64KB, L2: 8MB было

    real 0m34.220s

    user 0m34.160s

    sys 0m0.000s

    Эльбрус оказался быстрее!(при вдвое меньшей частоте)

    Но! с оптимизацией -O2 (f90 -o test -O2 main79.f pythia-6.4.28.f)

    собралось за семь минут двадцать три секунды (real 7:23.73)

    отработало более чем в два раза быстрее за

    real 16.80

    user 14.14

    sys 2.55

    Итаник рулит! ( или оптимизация для итаника сделана лучше чем для эльбруса)

    Это конечно не 11 секунд как на Intel Xeon CPU L5640 @ 2.27GHz с кэшом в 12МВ, но близко.

    Жаль с -O3 не собралось

    Отредактировано: nesk~11:34 16.12.15
    • 2
      vx8400 . vx8400 .
      16.12.1512:09:19

      real 16.80

      То есть масштабируется с частотой ~ 800/1600.

      • 2
        Нет аватара nesk
        16.12.1512:31:23

        да! точно.

        Интересно посмотреть время выполнения программы для Эльбруса без оптимизации и с оптимизацией -O2

        Что бы оценить на сколько эффективно отрабатывает компилятор, какой он дает вклад (на VLIW с явным параллелизмом — это критически важно)

        PS Хотя, если мы получили корреляцию с частотой, то можно предположить, что лучше оно уже не параллелится.

        Отредактировано: nesk~13:43 16.12.15
        • 3
          vx8400 . vx8400 .
          16.12.1513:23:24

          То -O2 не это -O2, и не -O2 у gfortran.

          Смотреть надо время выполнения критических кусков кода, для ifc x86_64 это так:

          ifort -pg -O2 -o test main79.f pythia-6.4.28.f && ./test && gprof ./test gmon_out

          ^^^ в gmon_out '_' надо заменить на '.'

          P.S.

          Для Xeon L5640 gfortran-4.4 -O2 -march=core2 -mtune=core2 генерит в ~2 раза более медленный код (120 сек / 1e4 событий), чем ifort -O2 -march=core2 -mtune=core2 (70 сек / 1e4 событий). Так что Интел что-то знает за свои машины, чего не знает gcc.

          P.P.S.

          Вывод gprof после ifort более осмысленный. Ожидаемо время тратится на вычисление медленно сходящихся логарифмов.

          см. gmon* под hermes(dot)ihep(dot)su(colon)8001/pool/atlas/p6/

          Отредактировано: vx8400 .~15:21 16.12.15
    • 1
      shigorin shigorin
      16.12.1522:59:59

      Смотреть лучше не real, а user+sys -- при этом исключается по крайней мере первое приближение влияния сторонней нагрузки (без учёта переключений контекста, смыва кэша и т. п., но хоть так).

    • 0
      shigorin shigorin
      16.08.1700:09:38

      Кстати, по возможности проверьте с lcc 1.21 и -O4.

Написать комментарий
Отмена
Для комментирования вам необходимо зарегистрироваться и войти на сайт,