Аппаратное повышение производительности тестирования


Аппаратное повышение производительности тестирования
Atom
04.01.2014


Хотелось бы повысить скорость тестирования (производительность процессора в моем случае) раз в 5-10. Пока рассматриваю варианты с кластером и сопроцессором Intel® Xeon Phi™. Не уверен, что на платформе .net будет работать сопроцессор. Если кто сталкивался, посоветуйте вариант.



Спасибо:


1 2  >
Bond

Фотография
Дата: 04.01.2014
Ответить


vk37 Перейти
Хотелось бы повысить скорость тестирования (производительность процессора в моем случае) раз в 5-10. Пока рассматриваю варианты с кластером и сопроцессором Intel® Xeon Phi™. Не уверен, что на платформе .net будет работать сопроцессор. Если кто сталкивался, посоветуйте вариант.


Если ты про тестирование на S#, то в первую очередь реализуй многопоточность в своем тестировщике. Иначе ты больше одного ядра не загрузишь. Многопоточность у меня повысила производительность в 4 раза при той же загрузке процессора. Как дополнительный вариант можно запускать сразу несколько тестировщиков, это помогает догружать процессор.
Но не стоит этот вариант использовать как основной для реализации многопоточности. Он не рациональный и громоздкий. Советую 2-5% процессорного времени оставлять не догруженными, система становится стабильнее. Не забывайте, что слишком много процессов могу ухудшить производительность, так как они начнут бороться за процессорное время и отнимать ресурсы.
Не забывайте про оперативную память. При ее недостатке производительность резко падает, порой приложения сами вываливаются с ошибками. Чем глубже тестирование, тем больше съедается памяти. Условно 1 месяц - 1 гб, 5 лет может и больше 10 гб забрать при одном прогоне. Это проверяется экспериментально в зависимости от архитектуры вашей программы. Считаю, что комфортный минимум 16 гб.
Учитывайте при длительном тестировании утечки памяти и периодически перегружайте тестировщики.
Дополнительно можно использоаать для ускорения чтения исторических данных ssd диски, также многоканальный режим работы оперативной памяти, но это прирост до 5%.
Про Xeon не могу ничего сказать) Юзаю i5 процессоры.
Ах, да не забывайте про охлаждение процессора, я лично поменял стандартный вентилятор на более эффективный.
Спасибо:

vk37

Фотография
Дата: 04.01.2014
Ответить


У меня свой код тестирования без S#. Многопоточность само собой используется. Памяти хватает. Утечек вроде нет. Процессор Intel Core i7-3770K 3.5 ГГц. Программной оптимизацией, думаю, много уже не выиграю: уже и так все что мог закрутил. ) SSD диски использую, но у меня скорость тестирования ограничена производительностью процессора. Процессор загружен до 100%. Вентилятор более чем справляется ) За предложения спасибо )
Спасибо:

Bond

Фотография
Дата: 04.01.2014
Ответить


vk37 Перейти
У меня свой код тестирования без S#. Многопоточность само собой используется. Памяти хватает. Утечек вроде нет. Процессор Intel Core i7-3770K 3.5 ГГц. Программной оптимизацией, думаю, много уже не выиграю: уже и так все что мог закрутил. ) SSD диски использую, но у меня скорость тестирования ограничена производительностью процессора. Процессор загружен до 100%. Вентилятор более чем справляется ) За предложения спасибо )


Хм, если не секрет что и в каком объеме вы тестируете? Стакан? Свечи? За сколько времени у вас один прогон за 1 год истории проходит? Тестирование или оптимизация? Тестирование в реальном времени?
На чем ваш тестировщик написан? С#? =)
Спасибо:

vk37

Фотография
Дата: 04.01.2014
Ответить


Bond Перейти
Хм, если не секрет что и в каком объеме вы тестируете? Стакан? Свечи? За сколько времени у вас один прогон за 1 год истории проходит? Тестирование или оптимизация? Тестирование в реальном времени?
На чем ваш тестировщик написан? С#? =)

На c#. В реальном времени не тестирую. Тестирование с оптимизацией ) Сколько времени прогон 1 года происходит не считал. Тестировщик из S# более универсален. Мой работает быстрее. Для меня так удобнее.

Спасибо:

Bond

Фотография
Дата: 04.01.2014
Ответить


vk37 Перейти
Bond Перейти
Хм, если не секрет что и в каком объеме вы тестируете? Стакан? Свечи? За сколько времени у вас один прогон за 1 год истории проходит? Тестирование или оптимизация? Тестирование в реальном времени?
На чем ваш тестировщик написан? С#? =)

На c#. В реальном времени не тестирую. Тестирование с оптимизацией ) Сколько времени прогон 1 года происходит не считал. Тестировщик из S# более универсален. Мой работает быстрее. Для меня так удобнее.



Я сам сейчас активно разрабатываю стохастический тестер-оптимизатор. Не могу представить какие стратегии вы с такими требованиями пытаетесь тестировать) Сколько у вас времени в среднем занимает тест? Пару часов или 15 минут? Если вы хотите из 15 минут сделать 5 минут, то смысла в аппаратном ускорении никакого, если это не динамическая оптимизация.
Спасибо:

vk37

Фотография
Дата: 04.01.2014
Ответить


Bond Перейти
Я сам сейчас активно разрабатываю стохастический тестер-оптимизатор. Не могу представить какие стратегии вы с такими требованиями пытаетесь тестировать) Сколько у вас времени в среднем занимает тест? Пару часов или 15 минут? Если вы хотите из 15 минут сделать 5 минут, то смысла в аппаратном ускорении никакого, если это не динамическая оптимизация.
Нет, конечно не 15 минут. Несколько часов, дней )

Спасибо:

Bond

Фотография
Дата: 04.01.2014
Ответить


Ну, чтож) Если оптимизация занимает несколько дней это либо неэффективные методы оптимизации, либо это какой-то супер граальный алгоритм, который стоит таких затрат)
Если вернуться к сути вопроса заданного вами в первом сообщении. Я бы по стоимости предложенного вами процессора со все лабудой к нему прилагающейся купил бы несколько блоков состоящих из корпуса, блока питания, матери, 8 гигов оперативы и проца i5. Собрал бы их в сеть и засунул в дальний угол квартиры.
Итоговую мощность вы получите на много выше и проблем с совместимостью не будет. К тому же резервирование и взаимозаменяемость гарантированны.
Спасибо:

vk37

Фотография
Дата: 04.01.2014
Ответить


Bond Перейти
Если вернуться к сути вопроса заданного вами в первом сообщении. Я бы по стоимости предложенного вами процессора со все лабудой к нему прилагающейся купил бы несколько блоков состоящих из корпуса, блока питания, матери, 8 гигов оперативы и проца i5. Собрал бы их в сеть и засунул в дальний угол квартиры.
Итоговую мощность вы получите на много выше и проблем с совместимостью не будет. К тому же резервирование и взаимозаменяемость гарантированны.
Этот вариант я тоже рассматривал. В общем то необязательно в кластер объединять машины. По стоимости может выйдет и дешевле, чем сопроцессор. Места много только занимает и электричества больше тратит. Плюс на каждой машине придется запускать свой оптимизатор. Зверинец короче будет )

Спасибо:

vk37

Фотография
Дата: 05.01.2014
Ответить


Использование GPU в .net: cudafy.codeplex.com. Кто-нибудь пробовал?
Спасибо:

Bond

Фотография
Дата: 05.01.2014
Ответить


Не стандартное решение при вашем подходе гарантировано, так что без танцев с бубном не обойдетесь.
Если все же хотите промотать денег(которые в теории ваши алгоритмы должны окупить), то наймите профессионального программиста и перепешите архитектуру оптимизатора.
Это будет самое эффективное вложение.
Поверьте, хороший алготрейдер с толковой оптимизацией уделает любой кластер на стареньком Селероне)
Оптимизация такая оптимизация [biggrin]
Для себя пришел к выводу, что если код слишком сложный выходит. Или требуются какие-то сверх ресурсы, значит подход к решению задачи не правильный. Потому что все гениальное просто [laugh]
Желаю вам удачи!
Спасибо: VassilSanych
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy