Хотелось бы повысить скорость тестирования (производительность процессора в моем случае) раз в 5-10. Пока рассматриваю варианты с кластером и сопроцессором Intel® Xeon Phi™. Не уверен, что на платформе .net будет работать сопроцессор. Если кто сталкивался, посоветуйте вариант.
コメント (19)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Если ты про тестирование на S#, то в первую очередь реализуй многопоточность в своем тестировщике. Иначе ты больше одного ядра не загрузишь. Многопоточность у меня повысила производительность в 4 раза при той же загрузке процессора. Как дополнительный вариант можно запускать сразу несколько тестировщиков, это помогает догружать процессор. Но не стоит этот вариант использовать как основной для реализации многопоточности. Он не рациональный и громоздкий. Советую 2-5% процессорного времени оставлять не догруженными, система становится стабильнее. Не забывайте, что слишком много процессов могу ухудшить производительность, так как они начнут бороться за процессорное время и отнимать ресурсы. Не забывайте про оперативную память. При ее недостатке производительность резко падает, порой приложения сами вываливаются с ошибками. Чем глубже тестирование, тем больше съедается памяти. Условно 1 месяц - 1 гб, 5 лет может и больше 10 гб забрать при одном прогоне. Это проверяется экспериментально в зависимости от архитектуры вашей программы. Считаю, что комфортный минимум 16 гб. Учитывайте при длительном тестировании утечки памяти и периодически перегружайте тестировщики. Дополнительно можно использоаать для ускорения чтения исторических данных ssd диски, также многоканальный режим работы оперативной памяти, но это прирост до 5%. Про Xeon не могу ничего сказать) Юзаю i5 процессоры. Ах, да не забывайте про охлаждение процессора, я лично поменял стандартный вентилятор на более эффективный.
У меня свой код тестирования без S#. Многопоточность само собой используется. Памяти хватает. Утечек вроде нет. Процессор Intel Core i7-3770K 3.5 ГГц. Программной оптимизацией, думаю, много уже не выиграю: уже и так все что мог закрутил. ) SSD диски использую, но у меня скорость тестирования ограничена производительностью процессора. Процессор загружен до 100%. Вентилятор более чем справляется ) За предложения спасибо )
Хм, если не секрет что и в каком объеме вы тестируете? Стакан? Свечи? За сколько времени у вас один прогон за 1 год истории проходит? Тестирование или оптимизация? Тестирование в реальном времени? На чем ваш тестировщик написан? С#? =)
Я сам сейчас активно разрабатываю стохастический тестер-оптимизатор. Не могу представить какие стратегии вы с такими требованиями пытаетесь тестировать) Сколько у вас времени в среднем занимает тест? Пару часов или 15 минут? Если вы хотите из 15 минут сделать 5 минут, то смысла в аппаратном ускорении никакого, если это не динамическая оптимизация.
Ну, чтож) Если оптимизация занимает несколько дней это либо неэффективные методы оптимизации, либо это какой-то супер граальный алгоритм, который стоит таких затрат) Если вернуться к сути вопроса заданного вами в первом сообщении. Я бы по стоимости предложенного вами процессора со все лабудой к нему прилагающейся купил бы несколько блоков состоящих из корпуса, блока питания, матери, 8 гигов оперативы и проца i5. Собрал бы их в сеть и засунул в дальний угол квартиры. Итоговую мощность вы получите на много выше и проблем с совместимостью не будет. К тому же резервирование и взаимозаменяемость гарантированны.
Использование GPU в .net: cudafy.codeplex.com. Кто-нибудь пробовал?
Не стандартное решение при вашем подходе гарантировано, так что без танцев с бубном не обойдетесь. Если все же хотите промотать денег(которые в теории ваши алгоритмы должны окупить), то наймите профессионального программиста и перепешите архитектуру оптимизатора. Это будет самое эффективное вложение. Поверьте, хороший алготрейдер с толковой оптимизацией уделает любой кластер на стареньком Селероне) Оптимизация такая оптимизация 😀 Для себя пришел к выводу, что если код слишком сложный выходит. Или требуются какие-то сверх ресурсы, значит подход к решению задачи не правильный. Потому что все гениальное просто 😂 Желаю вам удачи!
GPU используется в современных топовых суперкомпьютерах для увеличения производетельности вычислений (до 10 раз по сравнению с CPU). Код должен быть настолько прост, насколько это возможно, согласен. Есть еще предложения, советы как увеличить производительность? Кто-то пробовал разрабатывать приложения на c# под GPU?
Сам не пробовал :) Я предпочитаю не использовать дополнительных библиотек, пока можно оптимизировать на порядки менее мозгокрутными способами. ;) PS Поправка: я использую Dotnetforab. Он использует AVX.
Мне нравится к этому вопросу подход товарища hrenfx, известного форекс-гуру.
http://www.mql5.com/ru/forum/5108/page2#comment_569634 http://www.mql5.com/ru/forum/13114/page59#comment_571782
Главная идея в калибровке тестера на разряженных данных под результаты на плотные(делается редко), если это получается то можно дополнительные данные(например проскальзывание) вынести в отдельный ряд квантованный минутками и потери при тестировании будут менее 5% относительно тиковых.
А минутки с ТС средней навороченности считаются примерно год менее чем за секунду, только так возможно хотя на что то расчитывать. Слышал у некоторых 10 миллионов баров за секунду на ТС сложности типа машек, на посложнее 2-5 сек.
Если тестер на порядки медленней и алгоритм обхода параметров «в лоб» перебором, то не спасёт никакое железо.
hrenfx (Отключен + Удален + Забанен) :)
Субъективно, есть отрицательная слабая корреляция между банами на трейдерских формах и интересности постов банящегося участника, естественно если баны не за хамство:)ИМХО
Так что то что hrenfx забанили это больше плюс чем минус.😀 Он редкий думающий человек, в отличии от большинства, которые рассудком не выходят за рамки инструментария торговой платформы и нюансов программирования.
Видимо слишком откровенно высказал своё мнение, разработчиков тоже можно понять, им такая публичная откровенность не наруку. Особо в этом уличенны метатрейдеровцы, там особо не терпят контры.🤬 😱
Тогда и нужно писать что hrenfx скорее не форекс-гуру а форекс-авторитет. =)
Обобщить можно так: он лучше чем остальные.
И это шутка только наполовину🙂 больше правда чем шутка.