Идеология тестера торговых стратегий MetaTrader 5: агенты

 

В МетаТрейдер 5 мы предоставляем возможность создавать целые расчетные фермы для ускорения просчетов торговых стратегий тестером. Они предназначены для проведения массовых оптимизационных просчетов, когда можно запускать параллельно сотни задач на удаленных компьютерах. Причем на каждом компьютере можно устанавливать несколько агентов по числу ядер для максимизации использования ресурсов.

По умолчанию каждый терминал имеет локальных агентов по числу логических процессорных ядер и может раздавать задачи другим удаленным агентам. Удаленных агентов ставить очень просто - достаточно использовать утилиту MetaTester.exe (один файл, больше ему ничего не нужно) и инсталлировать агентов в виде сервисов по числу ядер или запускать одиночно. У каждого агента задается пароль для доступа, чтобы к нему могли подключаться только авторизованные пользователи.

Вот как выглядит тестирование эксперта на локальном ядре. Показывается не только статус, но и реальная загрузка CPU.


Запуск тестирования на удаленном агенте:

 
Когда пользователи смогут это пощупать?
 

Мне привычнее, когда вот так выглядит:


CalcNet

|--Grom (localhost) - Intel Core i7

|  |--Core1

|  |--Core2

|  |--Core3

|  |--Core4

|--Slava (168.192.0.101) - Intel Core2

|  |--Core1

|  |--Core2

|--Pakemon (168.192.0.121) - Intel Core i7

|  |--Core1

|  |--Core2

|  |--Core3

|  |--Core4


Естественно, так как удобно мне - не обязательно удобно всем.


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

Ну и, отдельной категории Local нет, все компы, включая и локальный, считаются равноправными углами сети.

 
HideYourRichess:

Ну и, отдельной категории Local нет, все компы, включая и локальный, считаются равноправными углами сети.

Изначально мы хотели разделить агентов в локальной сети и агентов в глобальной сети, но потом отказались от такого деления, посчитав бессмысленным. Объединили в категорию Remote. А категорию MyComputer переименовали в Local.
 

По ядрам удаленных агентов разделять нельзя - каждый из них конфигурируется отдельным агентам, но можно логически группировать и сортировать в списке по совпадению IP адреса.

При редактировании конкретного агента мы можем предлагать отключать/включать родственные агенты на том же IP адресе.

Главная идея построения ферм - ненужность их конфигурирования. То есть, один раз забил сеть и все остальное будет работать автоматически. Человеку не надо будет бегать и заниматься включением/отключением агентов. Кто из агентов отзовется - тот и будет использован. Вся система работает в режиме автоматического использования облака ресурсов. Кто-то прервет свою работу и его задача будет передана следующему доступному агенту.


Кстати, в Active Directory при наличии админских прав можно будет ставить агентов на удаленные компьютеры сети в пару кликов из одного места (клиентского терминала). То есть, можно за минуту превратить локальную сеть компании в огромную вычислительную сеть и использовать все вычислительные ресурсы на 100%.


Как будет готова первая версия - дадим возможность протестировать.

 

Renat:

Вся система работает в режиме автоматического использования облака ресурсов.

ооо! да это же бублиГУМ !

(с) ГУМ это такой бааальшой универсальный магазин, напротив Кремля.

 
stringo:
Изначально мы хотели разделить агентов в локальной сети и агентов в глобальной сети, но потом отказались от такого деления, посчитав бессмысленным. Объединили в категорию Remote. А категорию MyComputer переименовали в Local.
Резонно, но возможность потом, когда нибудь, подключить распределение расчётов на глобальную сеть - надо бы оставить, где нибудь в глубине программы. А вдруг тема, что называется, "попрёт".
 
Наверное, стоит предусмотреть возможность ограничения вычислительных ресурсов агентов (загрузка процессора, нагрузка на сеть и т.д.). Чтобы не сильно сказывалось на работе офисных работников крупных (и не очень) компаний организованная (админом, например) огромная вычислительная сеть MT5 (на основе их локальных сетей)...
 
Renat:

По ядрам удаленных агентов разделять нельзя - каждый из них конфигурируется отдельным агентам, но можно логически группировать и сортировать в списке по совпадению IP адреса.

При редактировании конкретного агента мы можем предлагать отключать/включать родственные агенты на том же IP адресе.

Главная идея построения ферм - ненужность их конфигурирования. То есть, один раз забил сеть и все остальное будет работать автоматически. Человеку не надо будет бегать и заниматься включением/отключением агентов. Кто из агентов отзовется - тот и будет использован. Вся система работает в режиме автоматического использования облака ресурсов. Кто-то прервет свою работу и его задача будет передана следующему доступному агенту.

и
Кстати, в Active Directory при наличии админских прав можно будет ставить агентов на удаленные компьютеры сети в пару кликов из одного места (клиентского терминала). То есть, можно за минуту превратить локальную сеть компании в огромную вычислительную сеть и использовать все вычислительные ресурсы на 100%.


Как будет готова первая версия - дадим возможность протестировать.


Благодарен разработчикам MetaTrader 5 за то, что развиваете платформу в нужном (правильном) направлении (честно, не ожидал в MetaTrader 5 тестера с возможностью распределенных вычислений). Вот только сориентируйте по срокам. Когда ориентировочно будет доступен тестер? И собственно, когда ожидать запуска Metatrader 5 в продуктив?    

 
Renat:

По ядрам удаленных агентов разделять нельзя - каждый из них конфигурируется отдельным агентам, но можно логически группировать и сортировать в списке по совпадению IP адреса.

При редактировании конкретного агента мы можем предлагать отключать/включать родственные агенты на том же IP адресе.

Главная идея построения ферм - ненужность их конфигурирования. То есть, один раз забил сеть и все остальное будет работать автоматически. Человеку не надо будет бегать и заниматься включением/отключением агентов. Кто из агентов отзовется - тот и будет использован. Вся система работает в режиме автоматического использования облака ресурсов. Кто-то прервет свою работу и его задача будет передана следующему доступному агенту.


Кстати, в Active Directory при наличии админских прав можно будет ставить агентов на удаленные компьютеры сети в пару кликов из одного места (клиентского терминала). То есть, можно за минуту превратить локальную сеть компании в огромную вычислительную сеть и использовать все вычислительные ресурсы на 100%.

Я согласен с этим, возможность автоматического распределения нагрузки, с учётом того, "живой" клиент или нет - это круто. Но я имел ввиду конфигурацию, что бы он вообще не лез в некоторые, временно отключенные, участки сети. Когда в одной сети есть несколько таких желающих распределёно считать что то, то неизбежно возникает конфликт из-за ресурсов. Мы у себя решаем это, иногда, вот таким административным способом. Типа, сегодня один на кластере считает, другой "бугалтерию насилует", третий аналитиков и т.д. Завтра всё меняется. Серьёзная проблема, как оказалось, когда не один в сети.
 

Меня вот одно тока смущает в локалке...

Это использование фаерволов и прочих "закрывалок".
Как это всё пройдёт...

Причина обращения: