Search
Write a publication
Pull to refresh

Comments 11

Да и вообще: она быстрее, чем эквивалентные коды Fortran и C! (подробнее об этом позже)

Как воспроизвести эти результаты?

Промахнулся веткой — ниже ответ

Современные чипы Intel предоставляют ряд расширений наборов команд. Среди них — различные версии Streaming SIMD Extension (SSE) и…

AMD тоже предоставляют…
Это не то. В статье были показаны графики, а значит автор должен был иметь бенчмарк(он же не из головы результаты взял?). Вот я хочу увидеть этот бенчмарк, который я смогу запустить и воспроизвести результаты?

Бенчмарк это такая штука, которая запускает несколько реализаций одного и того же, сравнивает результаты выполнения(они должны быть идентичны) и показывает нам время для каждой реализации.

Решил я тут пойти по ссылкам. И увидел это:

CC = gcc-mp-7 -Wall

На этом уже можно закончить. Но я не закончил.

Я взял однопоточную версию. gcc7 у меня нет, поэтому будет gcc9. Собрал через make и получил в районе 80 секунд.

Далее я собрал всё в файл и собрал -O3 -march=native -lm. Результат уже ~10 секунд(gcc9.1/clang9). Файлы .dat идентичны. -Ofast + clang9(т.е. llvm, который является компилятором и в julia) уже 7 секунд.

О качестве кода я говорить ничего не буду.
Автоматическая векторизация в Julia

Автоматическая векторизация для fp небезопасна и я бы таким не гордился. Но в любом случае, если он включена, то сравнивать нужно с -ffast-math для С.

Собственно, в очередной раз можно убедиться в адекватности всех этих сравнений и громких заявлений.
UFO landed and left these words here
Нет. Это какая-то библиотека для написания бенчмарков.

У нас есть Си-версия.

Есть файл params:
512
512
100000000
1.0e-1
1.0e-1


$ clang main.c -Ofast -march=native -o main
$ time ./main < params


Мы получаем: outputSeq.dat и время от time(либо от Wall Clock, которое вывод си-версия).

С вашей(julia) стороны нужно предоставить тоже самое. Т.е. какую-то программу(либо исходник с мануалом «как собрать?»), которая будет по таким же параметрам генерировать такой же outputSeq.dat.

Далее, при идентичных outputSeq.dat файлах, мы уже можем сравнивать time для julia и для С. Это будет адекватное сравнение и каждый наблюдатель сможет воспроизвести результаты(повторив наш алгоритм проверки. Сам, либо посредством предоставленных скриптов).

Тема масштабируемости не раскрыта, а это самое важное. Сравнение 1 CPU vs. 2 CPU имеет мало смысла, но даже в этом случае с Джулией что-то не так.
Sign up to leave a comment.

Articles