Сравнение операционных систем и  процессоров при оптимизации

Сравнение операционных систем и процессоров при оптимизации

9 июня 2016, 12:24
elibrarius
3
179

Приветствую!

После введения в МТ5 оптимизации и тестирования на реальных тиковых данных, в разы увеличилось время расчетов при оптимизации советников. В связи с этим я сделал для себя небольшой блэйд сервер из 6 процессоров Intel-I7 и чтобы он работал максимально эффективно, решил сравнить производительность оптимизации в зависимости от установленной операционной системы. Тестировались Windows 7 Pro, Windows 8.1 Pro, и серверные Windows 2008, Windows 2012. Все установки свежие, установлены только драйвера железа и терминал, т.е. ничего лишнего.

Итак, в блэйд сервере установлены 5 процессоров Intel I7-6700T и для сравнения 1 процессор I7-6700. Все процессоры работают в турбо режиме, при этом тактовая частота I7-6700T = 3.4Ггц, а I7-6700 = 3.7Ггц, т.е. разница около 8%. Материнские платы одинаковые, ОЗУ - по 8 Гб, диски - SSD Kingston одинаковой скорости.

1 из компьютеров сервера - ведущий, на нем запускается терминал, который запускает оптимизацию. На всех остальных установлены терминалы, но они не запускаются, т.к. используются только агенты, работающие как скрытые службы. На всех компьютерах установлены разные ОС (см ниже на скриншотах), везде установлен приоритет на работу служб работающих в фоновом режиме.

Эксперт - "тяжелый" мультивалютник, в оптимизации перебираются входные переменные, которые не влияют на результат вычислений, т.е. количество сделок и всех вычислений для разных проходов - абсолютно одинаковое. Таким образом мы будем видеть разницу в скорости вычислений зависящую только от ОС или типа процессора.

Итак запускаем первый тест. Первые 10-15 минут все процессоры считают примерно с одинаковой скоростью:

Еще через несколько минут Win8 и Win7  с более мощным процессором I7-6700 вышли вперед, а остальные начали тормозить:

Сравнил показатели производительности систем и заметил, что Win8 скинул половину памяти в кэш.


Остальные системы этого не сделали и по максимуму использовали ОЗУ:

Был сделан вывод, что Win8 оптимальнее работает с памятью, за счет чего скорость вычислений в ней выше. Часов через 8 разрыв в скорости вычислений стал заметнее.

После этого, для лучшего сравнения процессоров I7-6700T и I7-6700 на систему с I7-6700 была установлена Win8 (003pc на скриншоте)

Так же было сделано предположение, что для терминалов на других ОС (не Win8) не хватает памяти. В 2 из них Win7 и Win 2008 было установлено 16 Гб ОЗУ. Дополнительно по сети были подключены еще 4 компьютера с разными процессорами, для сравнения.

Итак начало прогона, когда стал заметен разрыв:

Win8 по прежнему впереди.

Добавка памяти в Win 7 до 16 Гб ускорила расчеты, но Win 8 c 8 Гб работает все-же быстрее (84% против 90% на Win8). Как ни странно, но добавка памяти в Win 2008 не повысило производительность.

Самым быстрым по вычислениям на 1 агента/поток оказался I3 с Win8, но т.к. у I7 - 8 потоков то в итоге он произведет больше вычислений за один промежуток времени.

I5-6500T на Win7 с 8 Гб (т.е. по 2 Гб на поток) работает примерно как сборка I7 на Win7 с 16Гб. Но опять же  т.к. у I7 - 8 потоков то в итоге он произведет больше вычислений за один промежуток времени.

Один из I7-6700T на Win7 с 8 Гб нагружен на половину т.е. 4 потока из 8, он работает со скоростью примерно как Win8 на 1 поток, но в сумме он совершит в 2 раза меньше вычислений.

Часов через 10 видим такую картину:

Системы на Win8 с 8Гб ОЗУ прошли 8-9 проходов оптимизации, в то время как на остальных системах 4.

Доставка 16 Гб в одну из Win7 помогла ей ускориться до 7 проходов.

I3, I5 и I7-4790T из сети подключены  через WiFi, но WiFi иногда сбоит (видно, что заданий им выдано больше чем другим), а при обрыве связи вычисления обрываются и начинаются с нуля при восстановлении связи.

I7-6700T и I7-6700  примерно на 8% и отличаются, что видно по тому, что I7-6700T выполнил по 7 - 8 проходов оптимизации, а I7-6700 по 8 - 9 проходов за то же время. Так что лучше использовать проводные сети.

В итоге, сравнивая ОС, при прочих равных получаем:

Win7, Win 2008, Win 2012 c 8 Гб ОЗУ сделали по 4 прохода

Win 8 c 8 Гб ОЗУ сделали по 7 - 8 проходов за то же время. Судя по всему, - за счет сброса части ОЗУ в кэш.

Разница в 2 раза очень неожиданна, думал буду высчитывать единицы процентов, а тут сразу 100 %. Для себя решил полностью перейти на Win 8 для компьютеров которые проводят оптимизацию.

Вы можете провести аналогичный эксперимент, чтобы сравнить с моими результатами. Если они будут повторяемы, то можно будет рекомендовать всем использовать именно Win8 для оптимизации. Возможно есть способ заставить другие ОС вести себя как Win8, т.е. сбрасывать память в кэш. Но т.к. я не спец в ОС, то не знаю как это сделать. Возможно кто-то из читателей поможет в этом.

Дополнительно сделал сравнение c Win 10 Pro. Она работает с такой же эффективностью, как и Win 8. Вот скриншот:


Поделитесь с друзьями: