Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-9569
zam
2002-03-24 19:52
2002.04.04
Как в TreeView установить Хинты вручную на каждую ветвь?


1-9560
-=GaLaN=-
2002-03-24 19:19
2002.04.04
Как перетаскивать форму за какой-нибудь компонент?


1-9564
Sound
2002-03-23 17:52
2002.04.04
Как передать данные из одной формы в другую?


4-9680
ATLANTIDO
2002-02-03 00:44
2002.04.04
Еще вопросик ...


1-9495
BlackJack
2002-03-20 21:02
2002.04.04
Необходимо разобраться с DrawGrid-ом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский