Форум: "Потрепаться";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
ВнизСравнение компиляторов - часть 2 Найти похожие ветки
← →
VuDZ (2002-02-18 04:05) [0]вот тут - http://vudz.by.ru/misc/flops.zip - есть исходник одного теста - вычисляет MFLOPS - если есть у кого желание - переводите на другие языки, сравним скорости...
Было бы интересно посмотреть Delphi 5 vs 6 :>
← →
Фэ (2002-02-18 09:25) [1]Link не работает
← →
Фэ (2002-02-18 09:58) [2]Что-то этуазизма не видно.
Видно батоны и лок кей интереснее обсуждать.
Тем не менее результаты будут выкладываться здесь
ftp.pi8plus.ru/pub/download/compare/
← →
savva (2002-02-18 10:04) [3]я тоже не смог скачать.. а глянуть было бы интересно... может каким другим образом можно скачать?
← →
Фэ (2002-02-18 10:45) [4]Вот этот не работает ?
ftp.pi8plus.ru/pub/download/compare/
А ты не только гляди, но и поучаствуй.
Первый алгоритм - "пузырьковая " сортировка.
Сам алгоритм и требования к выходному файлу
в каталоге см. выше.
Есть результат для D5, Free Pascal, BP7, Perl, Python.
Тестирование на разных машинах даст еще и статистику по hard
← →
savva (2002-02-18 11:34) [5]>Фэ © (18.02.02 10:45)
я хотел поучаствовать - проделать на С это (для сравнения :)))
не получается что то.. может дело в прокси, через который я выхожу..
← →
Фэ (2002-02-18 12:33) [6]to savva
Начни через ftp://ftp.pi8plus.ru
Выложил следующий алгоритм "Сортировка Шелла".
Так как работает быстрее, то увеличил размер массива до 100,000.
Free Pascal опять впереди D5.
← →
savva (2002-02-18 13:44) [7]>Фэ © (18.02.02 12:33)
не вышло.. наверное админ наш прикалывается :))
← →
VuDZ (2002-02-18 13:55) [8]у меня точно админ прикалывается - файл положил на сервер. а он не скачивается :( - вот это вроде работает <a> http://vudz.by.ru/files/flops.c</a>
← →
Фэ (2002-02-18 15:20) [9]Да, доступ есть.
Но, често говоря, я бы хотел в это мероприятие внести и некоторый обучающий элемент. Выдать на гора сложные тесты (их достаточно наваяно) не проблема. Получим мы какой-то интегральный ответ или нет - еще "бабушка надвое сказала".
Хотя примерный ответ мне известен.
А вот если двигаться по "восходящей", то можно увидеть тонкости в работе компиляторов(интерпретаторов).
Кроме того, это позволит начинающим "держаться" столько, сколько смогут.
Надеюсь, что сайт этот образовательные цели тоже преследует.
Для этого, на самом деле, надо не много:
- не воспринимать это как блажь (времени у всех не много);
- уметь работать в команде (четко руководствоваться договоренностями; не бросать сырость - кто-то должен за Вас ?; не ставить свое Ego на первое место);
- не бросать начатое дело (ответственность);
Договоримся ?
Выложил исходник для образца
ftp://ftp.pi8plus.ru/pub/download/compare/source.pas (dpr)
P.S.
Кто-то здесь упомянул о сетовании иноземцев на то, что пока мы (ино) добиваемся очередных микронов, они(мы с Вами) берут алгоритмами. Вот и давайте свое брать и учить и учиться.
← →
VuDZ (2002-02-18 20:21) [10]1. первые результаты весьма не однозначны: интеловкий компилятор, заточенный именно под мат. теты проиграл в некоторых местах старому доброму MS"овскому :<
Intel C++ Compiler -O3 -Og -G6
1 1.3358e-012 0.0193 727.2727
2 2.0517e-013 0.0174 402.8777
3 1.7542e-014 0.0224 759.7765
4 -5.4512e-014 0.0233 643.4316
5 3.3307e-016 0.0426 681.3510
6 -1.9040e-014 0.0424 683.8615
7 2.6034e-011 0.0524 228.9121
8 -5.4068e-014 0.0413 726.1725
CL -Og -G6
1 1.3429e-012 0.0250 559.3009
2 2.0517e-013 0.0175 399.6432
3 1.7542e-014 0.0239 710.1828
4 -5.4512e-014 0.0207 726.1725
5 3.3307e-016 0.0415 699.3218
6 -1.9040e-014 0.0350 827.4632
7 2.6034e-011 0.0562 213.6300
8 -5.4123e-014 0.0390 769.8476
results:
ICL
MFLOPS(1) = 475.9725
MFLOPS(2) = 422.6992
MFLOPS(3) = 599.2433
MFLOPS(4) = 703.2118
CL
MFLOPS(1) = 466.3024
MFLOPS(2) = 409.8934
MFLOPS(3) = 605.1030
MFLOPS(4) = 767.2243
тестовый файл тежит тут - <a href = http://vudz.by.ru/files/flops.c></a>...
2. результаты я не оформил как этого желали. в связи с разными причинами :>
3. пожелания:
все тесты делать консольными
перед началом теста ждать нажатия любой клавиши, что бы было можно выставить realtime приоритет
← →
VuDZ (2002-02-18 20:23) [11]и что странно, в второй графе даны ошибки... они несколько различны, даже для одного и того же компилятора. но с разными настройками оптимизации...
← →
Фэ (2002-02-19 13:16) [12]Выложил "Решето эратосфена" для D5 и Free Pascal
Нос в нос.
ftp://ftp.pi8plus.ru/pub/download/compare
← →
VuDZ (2002-02-19 13:24) [13]у меня было несколько другое решение, но похожее... но есть метод лучше и во много раз быстрее :)
я сейчас пытаюсть произвести reverse engenering своего же кода - с 3dNow перевести на С один очень мощный тест...
← →
Фэ (2002-02-19 13:31) [14]Я не выкладываю наиболее эффективные методы здесь - цель другая.
Они мне известны, но тема больших чисел должна освещаться отсторожно (это область крипто и декриптографии)
← →
VuDZ (2002-02-19 13:51) [15]ладно, так что у нас следующее по расписанию?
← →
Фэ (2002-02-19 13:59) [16]Сегодня подготовлю "Регресионный анализ"
(аппроксимация по МНК)
6-7 тестов в одном
(линейная, гипербол, показат,эксп, логарифм, парабол, полином)
← →
Фэ (2002-02-19 14:06) [17]Хотелось бы, чтобы кто-то еще присоединился. Я могу и С/Java/Fortran/Oberon параллельно делать, но давайте вместе.
Требования к выходному файлу не зря обозначены - смогу затем обработать их и выложить на сайт в разных разрезах.
← →
VuDZ (2002-02-19 14:16) [18]я могу помочь с С, перевести на него с Java & Pascal
← →
Фэ (2002-02-19 14:29) [19]Ну и давай - алгоритмы все там есть
ftp://ftp.pi8plus.ru/pub/download/compare
algorithm.txt для каждого случая.
sourse.pas - полный текст на паскале
← →
VuDZ (2002-02-19 14:44) [20]переделать source.pas который в корне?
← →
Фэ (2002-02-19 15:21) [21]Это для примера оформления под разные тесты.
Сами алгоритмы выложены в соотв. каталогах в файлах algorithm.text
← →
VuDZ (2002-02-19 16:44) [22]я у себя выложил новую версию решета - http://vudz.by.ru/files/minus.zip
кое-что я поменял, надо будет немного или переделать мои исходники или другие. Есть два exe - один с 10000 числел, другой с 300"000 - у меня комп быстрый, н я хотел бы увидеть результаты сегодня, а не через недулю :) Исходники прилогаются.
Есть 2 варианта - первый - решето, второй мой. Правда, я думаю его уже кто-то открыл до меня, но не важно.
На ftp залить не смог - ftpguest|123 не работает :(
Вот, есть одно предложение - написать класс для работы с длинными числами и на его основе вычислть просты числа по малой теореме Ферма с одим из каймалловых числел, 531 для примера.
Этим мы убъём друх зайцев - проверка как разные компиляторы работают на оптимизацию и как происходит работа с членами классов.
Как мысль?
← →
Фэ (2002-02-19 16:57) [23]Для того, чтобы сравнивать компиляторы а не алгоритмы, последние д.б. идентичны для разных платформ.
Вот и давай алгоритм.
← →
Фэ (2002-02-19 16:58) [24]вход ftpquest я убрал, если надо то по мылу скажу - мали у кого ума хватит биб-ку Мошкова мне залить.
← →
Фэ (2002-02-19 17:00) [25]Link твой не работает
← →
VuDZ (2002-02-19 17:04) [26]vudz.by.ru/files/minus.zip - вот так работает. ничего не поимаю.... походу дела, http:// не надо писать
алгоритм есть, осталось его превести в нормальный вид.
← →
VuDZ (2002-02-19 17:51) [27]vudz.by.ru/files/shell.zip - тут сортировка Шелла, два варианта - для long double 80bits & double 64bits.
Два exe - один с интеловским компилятором, другой - с MS compiler
исходники там же
← →
Фэ (2002-02-19 18:10) [28]Ok
← →
Фэ (2002-02-19 18:12) [29]Тормозной сервак у твоего п.
← →
VuDZ (2002-02-19 18:37) [30]раньше был очень быстрый... может просто потому, что я ночью работал?
← →
Fellomena (2002-02-20 10:43) [31]Ребята, при сортировке "Пузырьком" всех уделал Delphi6 - VFortran вообще не при делах:
****************************
Delphi6 Ent
Options: No debug info
Randomization array [1..100000] of real
Result:
First number 3.89129854738712E-0002
Last number 9.77562586776912E+0002
Time of sort: 430.041 sec
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
VFortran 6.1.0
Options: None
Randomization array [1..100000] of real
Result:
First number: 3.9208684E-05
Last number: 99.99982
Time of sort: 610.120000000000 sec
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
BorlandC++ 5.0
Options: None
Randomization array [1..100000] of real
Result:
First number: 2.4238182E-04
Last number: 89.79312
Time of sort: 501.230000000000 sec
*************************************
Вот такие пироги =)
← →
Фэ (2002-02-20 12:06) [32]Смотрите результаты здесь
ftp://ftp.pi8plus.ru/pub/download/compare/compare.htm
To VuDZ: полученое от тебя для Сей просто уснуло на P-III 1000EB.
Поэтому и не включил в таблицы.
Ты навалился всей мощью ООП и STL на бедные алгоритмы и их просто не стало видно за гигантской работой классов.
← →
Фэ (2002-02-20 12:10) [33]To Fellomena
Что-то очень низкие цифры в твоих тестах - на Cray тестила ?
← →
VuDZ (2002-02-20 12:42) [34]у меня всё умерло и без STL. STL на скорость не влияет - возможно у меня руки скривились...
2Fellomena
А почему ненту моего варианта, который я послал тебе?
← →
Fellomena (2002-02-20 13:03) [35]2 VuDZ:
ты мне не прислал исходник, а прога твоя массив размером 1E+4 обсчитывала, тогда как требование было 10E+4 - чувствуешь разницу ? ;)
real a[10000]обсчитывает за несколько секунд, тогда как 10E+4 за минуты - соответственно это даёт более точное представление о скорости и эффективности.
← →
Фэ (2002-02-20 13:15) [36]To Fellomena:
Я задал вопрос о цифрах и хотелось бы ответ услышать.
← →
Фэ (2002-02-20 13:18) [37]Сорри, не обратил внимание, что в сек, а не мсек.
Размер 100 тыс избыточен для точности.
← →
Fellomena (2002-02-20 13:25) [38]2 Фэ:
=)
Насчёт избыточности можно поспорить 8)
А комп:
Chaintech7AJA VIA KT-133
Duron 650 (+ небольшой разгон по шине)
Win98Se
Hyndai pc133 192Mb (+тюнинг интерливов и CASL)
← →
VuDZ (2002-02-20 13:45) [39]vudz.by.ru/files/shell.zip - еовый Шелл, без шаблонов
vudz.by.ru/files/math.zip - сортировка пузырьком для 100"000 элементов на IntelCC
PS мои глаза меня предали или проц умер, но интеловский компилер генерит более медленный код если нет вычислений. причём очень сильно медленный...
← →
Фэ (2002-02-20 14:18) [40]Обновление системного времени по GetTickCount (100 Гц или 10 ms).
Принимая равновероятный характер потока запросов, получаем среднее время ошибки измерения 5 мс.
При интервале 2000 мс имеем среднюю относительную ошибку 0.25%.
Т.е. с этим все в порядке.
Большую погрешность будет вносить мультизадачность, но она проявиться одинаково на любом значительном интервале.
Поэтому я и делал 10-кратное повторение циклов измерения, чтобы увидеть разброс и отсечь "промахи". В таблицах это видно.
Что имеем
Размер массива, тыс. Время [сек] СКО [мсек] отн.ошибка %
10 1.2 142 11
20 4.3 144 3
30 21 138 1
Т.о. при 30 тыс получаем среднеквадратическую ошибку измерения 1% что вполне достаточно для качественного сравнения компиляторов
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.006 c