стань автором. присоединяйся к сообществу!
Лого Сделано у нас
42
shigorin 10 декабря 2015, 20:28 14

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

@sdelanounas_ru

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

Источник: sdelanounas.ru

Поделись позитивом в своих соцсетях

  • 5
    Нет аватара guest
    13.12.1514:54:55

    День добрый,

    Фортран там есть?

    Если есть, можно прогнать тест Монте-Карло (Pythia 6.428, симуляция процесса p pbar -> t tbar X, E(c.m.) = 13 TeV, 1000 событий -- совершенно рабочий не-синтетический пример из физики на LHC)?

    генератор: hermes(dot)ihep(dot)su(colon)8001/pool/atlas/p6/pythia-6.4.28.f

    (идентично последней версии из www(dot)hepforge(dot)org/archive/pythia6/)

    gfortran -O3 -c -o pythia-6.4.28.o pythia-6.4.28.f

    ### 10^5 строк кода компилируются gfortran-4.1 ~1 мин. на Intel Xeon L5640

    тестовая программка: hermes(dot)ihep(dot)su(colon)8001/pool/atlas/p6/main79.f

    gfortran -o test main79.f pythia-6.4.28.o

    time ./test

    На ненагруженном Intel Xeon CPU L5640 @ 2.27GHz (*24, тест однопоточный, так что это 1 CPU) 1000 событий проходят за ~11 сек.

    Спасибо заранее.

    P. S. как здесь вставлять URLы?

    Отредактировано: vx8400 .~16:02 13.12.15
    • 4
      shigorin shigorin
      13.12.1523:04:42

      Там lfortran/lcc;

      $ lfortran pythia-6.4.28.f

      /usr/lib64/crt1.o: In function `_start':

      (.text+0×40): undefined reference to `main'

      gfortran -o test -O3 main79.f pythia-6.4.28.f работал 46,5 минут (компилятор _сильно_ небыстрый -- VLIW плюс сам себя не шибко оптимизирует, насколько понял). Без -O3 и первого исходника выпадало, как описано выше, где-то за минуту.

      Результат:

      real 0m34.220s

      user 0m34.160s

      sys 0m0.000s

      (выхлоп отправил почтой для сверки)

      PS: люди, накидайте плюсиков хорошему человеку в профиль, чтоб он мог нормально ссылки ставить! (знаю довольно давно по altlinux, был бы рад познакомиться и лично наконец)

      • 4
        Нет аватара guest
        14.12.1502:16:56

        Спасибо, то есть шкалируется с частотой по сравнению с Xeon L5640 + gfortran-4.4 -O3.

        По сравнению со старым x86_64 (Pentium D 3.4GHz, gfortran 4.7.2 -O3 -m32)

        только в 34/25 ~ 1.5 раза медленнее (-m64 проверю).

        Бабаян на мероприятии в Долгопрудном в 1999 г. нам не врал про архитектурную скорость выше тех x86.

        upd:

        Аналог gprof к lfortran есть? Посмотреть на соотношение времени по разным субрутинам.

        Отредактировано: vx8400 .~11:26 14.12.15
        • 0
          shigorin shigorin
          14.12.1514:14:15

          dprof есть -- может, на чаёк к нам в гости заглянёте как-нить просто?

          • 4
            Нет аватара guest
            14.12.1515:20:31

            Спасибо, ответил в почту.

        • 1
          Нет аватара guest
          17.12.1522:11:20

          P.S.

          По сравнению со старым x86_64 (Pentium D 3.4GHz, gfortran 4.7.2 -O3 -m32)

          только в 34/25 ~ 1.5 раза медленнее (-m64 проверю).

          -m64 там же: ~21s

          В любом случае, надо смотреть на конкретную реализацию часто вызываемых log(), exp(), pow(), etc.

      • 1
        Нет аватара Enst
        14.12.1511:05:59

        PS: люди, накидайте плюсиков хорошему человеку в профиль, чтоб он мог нормально ссылки ставить! (знаю довольно давно по altlinux, был бы рад познакомиться и лично наконец)

        Не вопрос, поможем.    

    • 3
      Нет аватара guest
      14.12.1515:57:15

      p pbar -> t tbar X

      pp -> t tbar X конечно

    • 1
      Нет аватара nesk
      15.12.1513:44:54

      Всем привет.

      Есть доступ к свободной машинке на древнем itanium 2

      CPU info:

      2 Intel® Itanium 2 processors (1.6 GHz, 3 MB)

      400 MT/s bus, CPU version A1

      Vendor identification: GenuineIntel

      Processor version info: 0×000000001f020104

      Family 31, model 2, stepping 1

      Processor capabilities: 0×0000000000000001

      Implements long branch

      Bus features supported: 0xbdf0000060000000

      Bus features enabled: 0×0000000040000000

      Bus Lock Signal masked

      L1 Instruction cache: 16 KB, 4-way

      L1 Data cache: 16 KB, 4-way

      L2 Unified cache: 256 KB, 8-way

      L3 Unified cache: 3 MB, 6-way

      Хотел для сравнения на нем прогнать этот main79.f

      Думаю сравнение будет интересным, это тоже VLIW с явным параллелизмом.

      pythia-6.4.28.f скачал с www(dot)hepforge(dot)org/archive/pythia6/

      а ссылка hermes. ihep. su: 8001/pool/atlas/p6/main79.f не открывается

      пока запустил компиляцию

      f90 -O3 -c -o pythia-6.4.28 pythia-6.4.28.f

      еще работает (около получаса уже)

      • 2
        Нет аватара guest
        15.12.1513:54:59

        hermes. ihep. su: 8001/pool/atlas/p6/main79.f

        Все там открывается. Ловите код сюда:

        PROGRAM MAIN79

        C…Test program for new gcc4 compiler.

        C…Top pair events are generated at the LHC, 14 TeV.

        C…Final charged multiplicity is histogrammed.

        C…The final total cross section should be 4.9E-07 mb,

        C…the average multiplicity 243, and the rms 70.2,

        C…all within statistical fluctuations.

        C******************************************************************

        C…All real arithmetic in double precision.

        IMPLICIT DOUBLE PRECISION(A-H, O-Z)

        C…Three Pythia functions return integers, so need declaring.

        INTEGER PYK,PYCHGE,PYCOMP

        C…EXTERNAL statement links PYDATA on most machines.

        EXTERNAL PYDATA

        C…Commonblocks.

        C…The event record.

        COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)

        C…Selection of hard scattering subprocesses.

        COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)

        C…Number of events.

        NEV=1000

        C…Processes qqbar, gg -> ttbar.

        MSEL=6

        C…Initialize for the LHC.

        CALL PYINIT('CMS','p','p',14000D0)

        C…Histogram.

        CALL PYBOOK(1,'Final charged multiplicity',100,-1D0,599D0)

        C…Event generation loop.

        DO 200 IEV=1,NEV

        if (MOD(IEV,100) .eq. 0) write(*,*) 'evt: ',IEV

        CALL PYEVNT

        C…Remove all but charged particles and histogram multiplicity.

        CALL PYEDIT(3)

        CALL PYFILL(1,DBLE(N),1D0)

        C…End of event generation loop.

        200 CONTINUE

        C…Cross section. Histogram.

        CALL PYSTAT(1)

        CALL PYHIST

        END

        P. S. как здесь сохранить пробелы в начале строки?

        Отредактировано: vx8400 .~15:08 15.12.15
        • 1
          Нет аватара nesk
          15.12.1514:08:38

          спасибо     жду когда соберется pythia-6.4.28.f

          CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND

          1 pts/0 18315 root 241 20 255M 184M run 67:41 100.68 100.51 f90com32

          пока еще компилируется, уже более 67 минут чистого времени на CPU

        • 1
          Нет аватара nesk
          15.12.1514:55:38

          там по семь по семь пробелов перед инструкциями и комментарии (С…) с первой позиции? Да?

          я расставлю.

          Отредактировано: nesk~15:56 15.12.15
        • 1
          Нет аватара nesk
          15.12.1514:56:59

          а можешь на почту мне кинуть?

      • 0
        shigorin shigorin
        15.12.1523:32:52

        Есть доступ к свободной машинке на древнем itanium 2

        Видел и такие (килограмм меди впечатлил), но больше десяти лет тому…

        Думаю сравнение будет интересным, это тоже VLIW с явным параллелизмом.

        Да, конечно.

        • 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
            Нет аватара guest
            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
                Нет аватара guest
                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.

        • 1
          Нет аватара guest
          28.01.1609:45:29

          итаник

          Если речь зашла об Итанике, то хорошо бы прогнать на Эльбрусе SPEC CFP2000!

          Было бы очень интересно в историческим плане. Ведь сколько копий было сломано в свое время насчет E2K, сколько самых тяжких обвинений было выдвинуто против Бабаяна!)) А теперь есть возможность сравнить объективно.

          Только надо учитывать, что E2K изначально сравнивался с Merced, а Itanium2 — это уже McKinley, который быстрее равночастотного Merced раза в 1,5. Причем Итаник с 1.6ГГц, о котором идет речь — это как минимум Madison

          Отредактировано: Александр Абрашкин~10:47 28.01.16
          • 0
            shigorin shigorin
            28.01.1612:27:14

            SPEC CFP2000

            Этот? Если да -- какой именно? И где брать -- обязательно с ними и связываться? (времени мало…)

            Короче, если захотите помочь -- только за    

            • 1
              Нет аватара guest
              28.01.1613:56:30

              Да, похоже надо связываться.

              Я и не предполагал, что все так непросто.

              Нашел на их сайте только ссылки на последние модификации тестов, причем там есть варианты «Free — Non-commercial license"

              Ссылок на SPEC 2000 не нашел вообще, видимо он у них в глубоком архиве))

              Ладно, в таком случае, наверное, не стоит напрягаться.

              На geektime выложили ссылку на документ, в котором есть результаты популярных бенчмарков для Эльбруса (ссылки движок не пропускает, можно нагуглить по «Поддержка современных российскихмикропроцессоров в ЗОСРВ «Нейтрино»»)

              Отредактировано: Александр Абрашкин~15:02 28.01.16
                • 0
                  Нет аватара guest
                  29.01.1609:06:56

                  Пришла такая мысль: а что если записать ролик, в котором будет показана работа Эльбруса-401 на типовых офисных задачах (браузер, таблицы, электронная почта, …)? В нескольких окнах одновременно, возможно на фоне проигрывания видео в одном из них.

                  Было бы интересно увидеть процесс в динамике. Тогда сразу отпадут множество вопросов насчет того, подходит ли этот ПК для офисной работы и есть ли тормоза в работе.

                  Думаю, успех такого ролика в Ютубе будет гарантирован)) Правда, коменты к нему лучше сразу отключить, ибо все неминуемо сведется к, извиняюсь, срачу

                  • 0
                    shigorin shigorin
                    02.02.1611:58:36

                    Давайте попробуем набросать план и сделать. Дело тут не в «успехе ролика», а в том, что и впрямь лучше один раз увидеть, чем сто раз услышать.

                    PS: прошу прощения за задержку с ответом, как раз уезжал на образовательную конференцию.

    • 0
      shigorin shigorin
      08.11.1915:43:02

      Сегодня pythia8 уехала в sisyphus_e2k штатным пакетом.    

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