Вопрос разработчикам - использование всех вычислительных ядер при оптимизации - страница 6

 
Aleksey Vyazmikin:

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

это бред полный, уж извините

> отменять уже выданные задания и отдавать их на исполнения другим

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

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

а это вообще не нужно, потому как ядра одного процессора с одинаковой производительностью в зависимости от заданий считают с разной скоростью, нафига что то там считать когда можно вообще ничего не считать

 
Boris Egorov:

это бред полный, уж извините

> отменять уже выданные задания и отдавать их на исполнения другим

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

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

а это вообще не нужно, потому как ядра одного процессора с одинаковой производительностью в зависимости от заданий считают с разной скоростью, нафига что то там считать когда можно вообще ничего не считать

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

 
Aleksey Vyazmikin:

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

>Похоже у Вас скудный опыт работы с оптимизатором, 

пошутили??? 6 лет непрерывно 

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

>это приведет к задержкам на коммуникацию и замедлит оптимизацию.

а это не имеет значения, сети сейчас быстрые. 

а вот то что ядра простаивают пока одно несчастное ядро досчитает кучу заданий из пачки крайне замедляет оптимизацию потому что все остальные (десятки ядер) стоят, ядра должны считать непрерывно и без остановок

похоже вы вообще никогда не оптимизировали по множеству параметров ... и не спорьте у вас нет практического опыта

 
Boris Egorov:

>Похоже у Вас скудный опыт работы с оптимизатором, 

пошутили??? 6 лет непрерывно 

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

>это приведет к задержкам на коммуникацию и замедлит оптимизацию.

а это не имеет значения, сети сейчас быстрые. 

а вот то что ядра простаивают пока одно несчастное ядро досчитает кучу заданий из пачки крайне замедляет оптимизацию потому что все остальные (десятки ядер) стоят, ядра должны считать непрерывно и без остановок

похоже вы вообще никогда не оптимизировали по множеству параметров ... и не спорьте у вас нет практического опыта

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

Примитивная оптимизация советника - это не всё, для чего используется оптимизация - расширяйте свои горизонты и пользуйтесь математическим вычислением.

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

 
Aleksey Vyazmikin:

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

Примитивная оптимизация советника - это не всё, для чего используется оптимизация - расширяйте свои горизонты и пользуйтесь математическим вычислением.

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

десятки и сотни мегайбайт - это ничто, затраченное время минимально и кстати это тут вообще ни при чём, вы бы подумали прежде чем писать, что пакетом что по одному все равно этот трафик придется передать

>Примитивная оптимизация советника - это не всё, для чего используется оптимизация - расширяйте свои горизонты и пользуйтесь математическим вычислением.

вот про горизонты вам того же желаю

и про эгоизм тоже

и у меня далеко не примитивная, и вообще для чего он нужен тогда, ну просвятите нас неучей


вашу инициативу с точки зрения временных затрат и скорости оптимизации считаю полностью абсурдной

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Boris Egorov:

Вы просто рассматриваете свой частный случай оптимизации, а Алексей - свой (у него советник несколько сот Мб и долго пересылается).

А MQ смотрят на общее использование оптимизатора и подгоняют его под большинство, а не под вас с Алексеем.

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

 
Andrey Khatimlianskii:

Вы просто рассматриваете свой частный случай оптимизации, а Алексей - свой (у него советник несколько сот Мб и долго пересылается).

А MQ смотрят на общее использование оптимизатора и подгоняют его под большинство, а не под вас с Алексеем.

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

Согласен, что случай у меня частный.

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

 
Andrey Khatimlianskii:

Вы просто рассматриваете свой частный случай оптимизации, а Алексей - свой (у него советник несколько сот Мб и долго пересылается).

А MQ смотрят на общее использование оптимизатора и подгоняют его под большинство, а не под вас с Алексеем.

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

наверно у меня тоже частный, но правда "наверное"

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

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

если бы они перераспределялись - это было бы решение проблем

 

Хочется спросить разработчиков, почему оптимизатор раздал кучу заданий только определнным ядрам а не по одному заданию каждому и тем самым в данном случае в ТРИ РАЗА УВЕЛИЧИЛ ВРЕМЯ РАСЧЕТА?

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

 

вторые сутки ничего не считает, все ядра в количестве 12 локальных и еще около 30 сетевых простаивают, специально не трогаю ... полный перебор, не знаю о чём там оно думает, наверно  смысл жизни ищет или лекарство от короновируса :-)

думаю надо отказываться от оптимизатора ввиду его неработоспособности и тормознутости

и последние решения принятые МТ типа ограничить только физическими ядрами, упорно и тупо раздавать по куче заданий только определенным ядрам а не каждому ядру - одно задание - говорит о тотальном непонимании разработчиками высокопроизводительных расчетов

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