Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - valexey_u

Страницы: 1 ... 3 4 [5] 6 7 ... 201
61
Доступны результаты нового прогона тестов. Теперь можно оценить разброс времени исполнения каждого теста.

62
Теперь тестирование одного решения занимает порядка 2-3 часов. Сейчас у нас 5 различных решений. Короче, серверу есть чем заняться в ближайшие 10-15 часов.

63
Дык у меня сам компилятор не запускается - ему тоже ncurses нужен...
Ктороый, xc или xm? У меня xc нормально запускается, а xm падает что-то там про COROUNITES пишет.

$ ./xc
./xc: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
$ ./xm
#RTS: Coroutines initialization fault 3...


64
Запустил тестироваться уже по нормальному - то есть каждое решение для каждого размера входного файла будет запущено 5 раз. Сколько это времени суммарно займет - фиг знает. Полагаю несколько часов.

65
Есть 32битный xds (но там надо победить ncurses либу - компилятор требует для работы какую-то древнющую версию).
Попробовал сегодня, там надо просто удалить -lncurses из xc.tem - он его лепит ко всем программам.
Дык у меня сам компилятор не запускается - ему тоже ncurses нужен...

Хотел написать переносимо, но оказывется в стандарте ISO нет функции удаления файла.  :o

А еще между делом выяснилось, что FAT32 может быть в 2-4раза быстрее, чем NTFS.
Ну, файлы не обязательно удалять. Т,е. после себя все временные файлы можно оставить, тестирующая система их убьет. Ну а в ходе работы имеющиеся файлы (кроме input'a, который read only по сути своей) можно же переиспользовать.

Т.е. если в ходе работы программа создала output (размером с input) и ещё два временных файла с input размером - это норм. Ничего удалять не надо.

66
Сейчас запущу в пять раз более длительный тест. Чтобы оценить разброс.

67
Поспели первые результаты прогона на сервере. См. гитхаб ( https://github.com/valexey/bigbench ).
Кроме картинки теперь есть файл под названием results.txt - лежит рядом с картинкой. Там такое:
Цитировать
comdiv hardcore:
128 29.29
256 56.55
512 110.70
1024 217.70
2048 453.05
4096 938.64
elena files_merge:
128 14.08
256 39.65
512 101.85
1024 256.89
2048 629.84
4096 1586.56
elena linux_mmap:
128 5.70
256 13.92
512 37.19
1024 87.95
2048 180.32
4096 404.89
vlad fast:
128 5.59
256 11.17
512 24.98
1024 52.99
2048 131.98
4096 345.50
vlad simple:
128 8.82
256 19.48
512 60.77
1024 177.82
2048 604.67
4096 2117.47

68
Как Вы это ограничение выставляли?
Пока что через cgroups. Потом еще более сурово ограничу.

69
Ещё замечание 4 минуты да и 1 минута - это очень мало. Такое ощущение, что у тебя весь файл поместился в ОЗУ (в дисковый кэш системы).
Насколько можно судить, решения считывают огригинальный файл один раз, а делается это быстро, но есть, конечно, и временные файлы, это может сказываться.
Ну да. Считали, сделали копию, система радостно копию всосала в кеш, а дальше идет уже просто сортировка в памяти, если файловый кеш никак не ограничен.

С ограничениями что у меня на десктопе что на серваке например comdov'овское решение файл размером в 1Гб жевало поряда 220 секунд, а файл в 4Гб обрабатывался за 900+ секунд.

70
Для конкретной программы? Тогда - да.
Да, для конкретной программы. Или группы программ, как угодно. Можно сказать что вот эта и эта программа делят общую делянку и им на всех 32Мб ОЗУ, вот столько ядер и процессорного времени, а вот этой программе отдельно 256 Мб ОЗУ. Ну и так далее. Ресурсы можно резать тонкими ломтиками и раздавать программам почти как угодно.

71
Ага, временно - хорошо.

Создал 4-гигабайтный файл и сделал прогон для наиболее быстрых решений:
comdiv/hardcore
real 1m25.488s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

vlad/fast
real 4m9.742s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

Интересное кино получается
Ещё замечание 4 минуты да и 1 минута - это очень мало. Такое ощущение, что у тебя весь файл поместился в ОЗУ (в дисковый кэш системы). И тут уже начинает играть роль состояние оного кэша (коий также неплохо бы полностью сбрасывать перед началом запуска каждого решения) и насколько алгоритм к нему дружественен. Например если решение самостоятельно кэширует (потому, что знает что у нас ограничение в 128 Мб ОЗУ, и системные алгоритмы кеширования будут работать хуже чем своя стратегия кеширования с учетом алгоритма сортировки), то в данном случае такое решение сольет решению которое отдает кеширование на откуп системе - у системы кеш будет во всё системное ОЗУ (4 Гб? 8? 16?) а собственный кеш программы будет всего 128. Даже если это умные 128, он не побьют на файле в 4Гб системный кэш который просто засосёт весь файл целиком в ОЗУ.

72
Практически доступное ОЗУ при этом система сама использует под кэш диска. Ну, т.е. такая масштабируемость штука идеальная на самом деле.
Не идеальная, потому что часто нужно ограничить ресурсы для конкретных программ, оставив их для более приоритетных.
Ну дык ограничь. Файловый кеш также можно ограничить как и всё остальное.

73
Ага, временно - хорошо.

Создал 4-гигабайтный файл и сделал прогон для наиболее быстрых решений:
comdiv/hardcore
real 1m25.488s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

vlad/fast
real 4m9.742s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

Интересное кино получается
Вероятно кино может от многого зависеть :-) Через часок прогон закончится, глянем результат с сервака. Подозреваю, что там результаты будут иные.

74
elena/linux_mmap работает быстро, но без искусственных ограничений отожрало 4гигабайта памяти
Адресного пространства. Практически доступное ОЗУ при этом система сама использует под кэш диска. Ну, т.е. такая масштабируемость штука идеальная на самом деле. В ход идёт всё что доступно. Другое дело что скорость не самая запредельная получается да и проблемы бывают на очень больших файлах. Плюс у измерялок памяти (чекающих сколько программа памяти отожрала) возникают проблемы - они не знают как тут что трактовать.

PS. И да, память я ограничиваю.

75
Поскольку из результатов прогона исчезли действительно большие файлы (временно или навсегда?), стало интересно самому сравнить решения на своей системе именно для больших файлов, благо у меня тоже стоит SSD.
Временно. Просто допиливал систему, переносил на сервер, тестировал - чтобы время не тратить, ограничил до 256 мб файлы.
Сейчас считается полный прогон.

Страницы: 1 ... 3 4 [5] 6 7 ... 201