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


Аппаратное повышение производительности тестирования
Atom
1/4/2014


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



Thanks:


1 2  >
Bond

Avatar
Date: 1/4/2014
Reply


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


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

vk37

Avatar
Date: 1/4/2014
Reply


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

Bond

Avatar
Date: 1/4/2014
Reply


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


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

vk37

Avatar
Date: 1/4/2014
Reply


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

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

Thanks:

Bond

Avatar
Date: 1/4/2014
Reply


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

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



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

vk37

Avatar
Date: 1/4/2014
Reply


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

Thanks:

Bond

Avatar
Date: 1/4/2014
Reply


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

vk37

Avatar
Date: 1/4/2014
Reply


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

Thanks:

vk37

Avatar
Date: 1/5/2014
Reply


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

Bond

Avatar
Date: 1/5/2014
Reply


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

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy