Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.04;
Скачать: CL | DM;

Вниз

Сравнение компиляторов - часть 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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.015 c
14-9638
1234
2002-02-23 21:47
2002.04.04
Очень простая задачка


3-9378
sergey_2
2002-03-12 12:07
2002.04.04
DOA


1-9439
Sound
2002-03-24 18:05
2002.04.04
НУ НЕ МОГУ ПОНЯТЬ!!!!


14-9651
Alex-comm
2002-02-19 19:07
2002.04.04
Вопрос по ГИС (разработка программы)


4-9678
АПИ
2002-02-03 15:41
2002.04.04
Решил изучить API, надеюсь на Вашу помощь!