У кого есть опыт работы с Open CL? - страница 3

 
Andrey Dik:
Что бы использовать OCL не обязательно выносить код в DLL, всё чудесно работает средствами MQL5. 
Я вам про фому, вы мне про ерему. Написал же четко - потоки в MQL4/5 не распараллелить. Разницу между потоками и OCL видите?
 
Alexey Volchanskiy:
Я вам про фому, вы мне про ерему. Написал же четко - потоки в MQL4/5 не распараллелить. Разницу между потоками и OCL видите?

Честно говоря, вообще мне непонятна причина упоминания dll в суе.

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

Если стартер хочет расспараллелить логику внутри советника - для этого есть OCL, который чудесно поддерживается MQL-ем который 5-й.

И так, внимание, при чем здесь dll? 

 
Andrey Dik:

Честно говоря, вообще мне непонятна причина упоминания dll в суе.

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

Если стартер хочет расспараллелить логику внутри советника - для этого есть OCL, который чудесно поддерживается MQL-ем который 5-й.

И так, внимание, при чем здесь dll? 

Я так понял из утверждения, что речь идет о потоках Windows. Их в тестере и советнике не распараллелить - нет техники. В оптимизаторе  - можно, через агенты.

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

 
Alexey Volchanskiy:

Я так понял из утверждения, что речь идет о потоках Windows. Их в тестере и советнике не распараллелить - нет техники. В оптимизаторе  - можно, через агенты.

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

Я вот не сильно шарю в этом.. почему, например, можно распараллелить на ядра реалтайм, но нельзя этого же сделать в тестере? Ведь ничего не изменится по сути, или все-таки можно? )  OPCL это не только видеокарта, можно распарралелить на ядра любого современного процессора. У меня, например, AMD и пример из статьи, ссылку на которую скинул здесь раньше, тоже работает. Так почему это не будет работать в тестере? В примере, к сожалению, скрипт, и нет возможности в тестере проверить, а перепиысывать его пока не было времени.
 
Maxim Dmitrievsky:
Я вот не сильно шарю в этом.. почему, например, можно распараллелить на ядра реалтайм, но нельзя этого же сделать в тестере? Ведь ничего не изменится по сути, или все-таки можно? )  OPCL это не только видеокарта, можно распарралелить на ядра любого современного процессора. У меня, например, AMD и пример из статьи, ссылку на которую скинул здесь раньше, тоже работает. Так почему это не будет работать в тестере? В примере, к сожалению, скрипт, и нет возможности в тестере проверить, а перепиысывать его пока не было времени.

Дык тестер не многозадачный, если не использовать параллелизм на OCL. Но в OCL параллелизм на уровне циклов, ну и прочих примитивных вещей. Потоки в виндах - это независимые объекты, что хочешь, то там и делай. Хоть фурье считай, хоть повесь все на слип.

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

На карте все проще и, с другой стороны сложнее.  Надо писать алгоритмы, которые явно поддерживают параллельность. Ну, CUDA в пример, у AMD не пробовал, но тоже что-то есть.

А вот интеловский компилер, хоть Ринат его и ругает, способен при выставленных опциях делать параллелизм на автомате и по прежнему рвать всех, как тузик грелку ))

Ну, как говорили в Освенциме, каждому свое. 

 
Alexey Volchanskiy:

Я так понял из утверждения, что речь идет о потоках Windows. Их в тестере и советнике не распараллелить - нет техники. В оптимизаторе  - можно, через агенты.

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

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

 
Maxim Dmitrievsky:
Я вот не сильно шарю в этом.. почему, например, можно распараллелить на ядра реалтайм, но нельзя этого же сделать в тестере? Ведь ничего не изменится по сути, или все-таки можно? )  OPCL это не только видеокарта, можно распарралелить на ядра любого современного процессора. У меня, например, AMD и пример из статьи, ссылку на которую скинул здесь раньше, тоже работает. Так почему это не будет работать в тестере? В примере, к сожалению, скрипт, и нет возможности в тестере проверить, а перепиысывать его пока не было времени.
Ренат ранее в этой ветке писал, что агенты поддерживают OCL, это значит что и в режиме единичного прогона и в режиме оптимизации OCL поддерживается в пределах локальной машины (не в облаке).
 
Alexey Volchanskiy:

Дык тестер не многозадачный, если не использовать параллелизм на OCL. Но в OCL параллелизм на уровне циклов, ну и прочих примитивных вещей. Потоки в виндах - это независимые объекты, что хочешь, то там и делай. Хоть фурье считай, хоть повесь все на слип.

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

На карте все проще и, с другой стороны сложнее.  Надо писать алгоритмы, которые явно поддерживают параллельность. Ну, CUDA в пример, у AMD не пробовал, но тоже что-то есть.

А вот интеловский компилер, хоть Ринат его и ругает, способен при выставленных опциях делать параллелизм на автомате и по прежнему рвать всех, как тузик грелку ))

Ну, как говорили в Освенциме, каждому свое. 

Вы пробовали вообще писать что-то с поддержкой OCL на MQL5? - у меня стойкое ощущение, что нет. Попробуйте.
 
Alexey Volchanskiy:

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

У меня есть реализация внутреннего тестера в эксперте, прямо внутри эксперта во время его работы через заданный промежуток времени запускается оптимизация на истории, многопоточная оптимизация на OCL-устройстве (у меня на CPU). Это отнюдь не "параллелизм на уровне циклов", а полноценная эмуляция торговли на истории.
 
Andrey Dik:
У меня есть реализация внутреннего тестера в эксперте, прямо внутри эксперта во время его работы через заданный промежуток времени запускается оптимизация на истории, многопоточная оптимизация на OCL-устройстве (у меня на CPU). Это отнюдь не "параллелизм на уровне циклов", а полноценная эмуляция торговли на истории.
Андрей, это реально круто! Это на ителловской либе или как-то самосотятельно?
Причина обращения: