Скачать MetaTrader 5

Балансировка нагрузки

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Debugger
2501
Debugger 2010.09.14 17:02 

Всем доброго времени суток!
Хотел спросить, кто-нибудь занимался балансировкой нагрузки на процессоры из под терминала?

Заранее благодарен. 

Vadim Baklanov
4120
Vadim Baklanov 2010.09.15 07:32  

Что имеется в виду?

Можно управлять использованием ядер процессора.

Debugger
2501
Debugger 2010.09.15 11:55  

Это понятно если использовать свою dll. Но можно-ли это делать в MT4 если в dll ничего не скидывается.

Проблема в следующем. При загрузке "полного боекомплекта индикаторов" какое-то время терминал работает нормально. Загрузка ядер процессоров сбалансирована и приблизительно одинакова. Плоть до локальных пиковых нагрузок. Но в какой-то момент времени вся загрузка смещается на одно ядро. При этом загрузка ядра колеблется в пределах 98-100%, у других в пределах 0-3%. И все начинает жутко тормозить, и ОС тоже. Потом все возвращается в нормальное состояние. И так как на качелях, но с разными интервалам.

Как это прервать без понятия. 

Aleksandr Chugunov
4833
Aleksandr Chugunov 2010.09.15 13:32  

А что смущает то? Загрузка одним процессом всё равно будет = 100 / КолВоЯдер

ОС сама распоряжается нагрузкой на каждое физическое/логическое ядро...

Производительность от этих качелей не страдает никак

Debugger
2501
Debugger 2010.09.15 13:36  
В том-то все и дело что все подвисать начинает
Vadim Baklanov
4120
Vadim Baklanov 2010.09.15 14:24  
Теперь понятно. Где-то обсуждалось. Индикатор и его вычисления работают в GUI потоке. Не распределяются по ядрам. Тяжелые вычисления нужно или оптимизировать, или выносить в другие потоки, работающие асинхронно. Средствами MQL можно вынести вычисления данных индикатора в советник, проблема только передать данные обратно в индикатор. Можно в советнике рисовать линии индикатора графическими линиями. Продвинутые программисты могут написать свою DLL.
Debugger
2501
Debugger 2010.09.15 15:02  

Да у меня типа все уже есть... (и dll-и и COM-сервера и еще много чего)

Вот уперся в непонятные ограничения... :)) 

Понятно. Никто ничего не знает и конкретно сказать не может.

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

Тема закрыта. 

Diamant
337
Diamant 2010.09.15 15:04  
Debugger:

Да у меня типа все уже есть...

Вот уперся в непонятные ограничения... :))

Терминал вообще не паралелит вычисления никак (инфа непосредственно от MQ). Только своя DLL спасет.
Debugger
2501
Debugger 2010.09.20 09:35  

Программисты ау.... из Метаквот...

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

Это один из вариантов. Но при этом все жестко висит...

 

 

Vadim Baklanov
4120
Vadim Baklanov 2010.09.20 13:03  

Подключи второй терминал к тому же счету.

Гы, с такими запросами давно пора шестиядерку покупать или многопроцессор.

Андрей
1890
Андрей 2010.09.20 13:44  

Дык это... в чем проблема-то? Грузится DLL. И сразу грузится еще раз ;-). HMODULE -> string -> LoadLibrary. 

Внутри нее создаются именованные инстансы "приложения" (CApplication), каждое приложение создает свой поток.

Снаружи торчит интерфейс для помещения в очередь заданий и считывания результатов. 

+ приложение при создании запоминает хэндл окна, в котором "столуется" индикатор и может

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

Я так уже давно делаю ;-). 

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий