Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 15

 
lynxntech #:

это ничего не даст MQ, каждый робот по своему потребляет, период времени, символ и ДЦ

Если один советник с одной базой котировок работает по разному, то это как раз будет подтверждением, что это так и есть.

Два лога от разных билдов, где один советник с одинаковыми настройками, одним и тем же железом. Кажется, это уже повод задуматься.

 
Aleksey Vyazmikin #:

Если один советник с одной базой котировок работает по разному, то это как раз будет подтверждением, что это так и есть.

Два лога от разных билдов, где один советник с одинаковыми настройками, одним и тем же железом. Кажется, это уже повод задуматься.

думаете автор каждый билд тестирует тот же отрезок на том же ДЦ, с теми же настройками?)))) 

уверен там сменились условия и память просто загрузилась вся

 
lynxntech #:

думаете автор каждый билд тестирует тот же отрезок на том же ДЦ, с теми же настройками?)))) 

уверен там сменились условия и память просто загрузилась вся

Я не выражаю уверенности, но если правы Вы, то автор описываемой проблемы, реализуя предложенный подход, осознает что дело не в билде, а в новых условиях. Все в плюсе.

 
lynxntech #:

думаете автор каждый билд тестирует тот же отрезок на том же ДЦ, с теми же настройками?)))) 

уверен там сменились условия и память просто загрузилась вся

Лучше задать вопрос автору ))). Да один и тот же отрезок на том же ДЦ, меняются параметры оптимизации в настройках, но на запись исторических данных настройки советника никак не влияют. История на разных парах для 72 потоков составляет от 3,5 до 4,7 Тб. Мне интересно, а у кого-нибудь еще на похожей конфигурации такая проблема есть?

 
Forester #:
У меня тоже 2*Intel Xeon E5-2699V3
на старом билде 72 потока считали на 20% быстрее, чем на 36 физических. Имеет смысл если расчеты не на тиках, а по ценам открытия, т.к. памяти в разы меньше используется. А на тиках тоже иногда не хватало ее, т.к. некоторые агенты до 5Гб потребляли к концу прохода за 2 года.
Но тут описывают случай, что раньше всё работало на 72, а теперь максимум на 10 агентах можно рассчитывать ту же задачу. А сменился только билд.

Подскажите, а у вас есть подобные проблемы с оптимизацией? Например если запустить любого советника на 100 проходов на паре EURUSD в период 2017-2025 с расчетом на реальных тиках, используя 72 потока. 

 
Alexey Viktorov #:

Не вижу проблемы

Это при автомасштабе, а речь шла про фиксированный. Но, по большому счету, проблемы, действительно, нет. Просто нет прямого решения, только косвенные.

 
Evgeny Vlasov #:

Подскажите, а у вас есть подобные проблемы с оптимизацией? Например если запустить любого советника на 100 проходов на паре EURUSD в период 2017-2025 с расчетом на реальных тиках, используя 72 потока. 

На новом билде ещё не запускал тот комп. Но скоро оптимизация понадобится, поэтому сегодня проверю на старом билде, потом обновлю и на новом сравню.
Заодно и на каком то базовом советнике из поставки.
 
Кто-нибудь сталкивался с тем, что при запуске советника в режиме отладки (неважно, в терминале или тестере) иногда всё работает нормально, а иногда память увеличивается на 10 МБ в секунду, после чего программа зависает и приходится завершать процесс? Как это можно исправить? Думаю, это проблема в самом программном обеспечении.
 

Отвечу в виде сводки:

  1. Терминалы определяют все ядра и дают возможность использовать их в тестере:


  2. Тестер, включая клауд, тоже определяет все ядра и позволяет их использовать


  3. В идеале на чистых CPU bound задачах гипертрединг дает ~25% прироста.

    Задача тестирования роботов не является чистым CPU зависимым процессом. Очень сильно влияют остальные ресурсы: диск, память, системные синхронизации операционки.

    То есть, используя 72 логических ядра вместо 36 физических, вы создаете двухкратную нагрузку при обычных роботах, но в пределе при свободе/скорости ресурсов диска и памяти получить можете в идеале 25% ускорения. На самом деле можете наоборот получить замедление.

    Пример "математического" режима без дисков, истории данных и памяти приводить не надо. Это вне обсуждаемого вопроса и с ним все понятно.

  4. Оперативная память - самый критический ресурс для многопотокового тестирования. 

    Если совсем просто, не обсуждая реальные потребности конкретного робота, то надо иметь 2 гб на рабочее ядро. Использование файла подкачки ради максимизации использования ядер - это чистое самоубийство. Тормоза будут сказочные по определению.

  5. В MQL5 Cloud Network мы добились очень хороших и стабильных результатов, когда обновили оценку ресурсов доступных агентов

    К сожалению, было достаточно много участников, которые регистрировались "на все ядра" при плохих показателях доступной памяти, скорости дисков и скорости сети.


Рекомендации:

  1. Экспериментируйте в своих случаях на:
     - всех ядрах
     - только на физических
     - на том количестве ядре, чтобы памяти было достаточно

  2. Не используйте все ядра, так как их полная загрузка наводит общую деградацию операционки и всем процессам

  3. Не пытайтесь все свести к одному ответу или требованию

    Вы запускаете неизвестные программы с неизвестным поведением и без единой гарантии эффективного кода. Эти программы могут делать любые неэффективные действия, что выливается в недозагрузку CPU или наоборот бесполезную загрузку процессора, диска или памяти.

    Поэтому нельзя все сводить к тестеру. Публикуйте исчерпывающие технические доказательства, если какое-то поведение тестера вы считаете неправильным.

  4. При обсуждении технически сложных процессов бесполезно пользоваться бытовой логикой

 
Forester #:
На новом билде ещё не запускал тот комп. Но скоро оптимизация понадобится, поэтому сегодня проверю на старом билде, потом обновлю и на новом сравню.
Заодно и на каком то базовом советнике из поставки.

Сделал скриншоты. Поехали...
Следует учесть, что у меня 176Гб памяти (4*32 + 3*16), т.е. больше чем у Evgeny Vlasov на 48Гб

Советник MACD из Examples:
72 агента

 b4885 b5125




36 агентов

 b4885 b5125




























На новом билде видно, что потребление памяти каждым агентом 5Гб вместо 2,4Гб на старом.
Но на старом "пилится" SSD под 100%. На новом SSD не загружен.


Мой рабочий советник:
72 агента:
на старом билде мне тоже не хватало памяти для тестов на реальных тиках, поэтому использовал 36 агентов (72 хватало только на барах)

 b4885 b5125





36 агентов

 b4885 b5125









Как ни странно, мой рабочий советник не пострадал от нового билда, при оценке за 5 минут. (Памяти потребляет даже чуть меньше - думаю я не дождался освобождения памяти всеми 72-мя агентами после предыдущего теста)
Возможно когда буду делать полноценную оптимизацию, может что-то и ухудшится.
При продолжительных тестах на старом билде потребление памяти тоже доходило до 5Гб на агент. Как будет на новом - пока не знаю, если на MACD удвоилось, то может и у меня удвоится.

Добавление:
на новом билде уже доходило и до 5 гб на агента, но общее потребление памяти примерно то же, т.к. какой то агент к концу теста потребляет 5, а другой в начале 2-3. Примерно такая же ситуация была и на старом билде.