OpenCL: внутренние тесты реализации в MQL5 - страница 69

 

Добрый день всем.

Подскажите по этой очень интересной теме:

1. Существуют ли уже какие-либо советники для торговли, которые используют OpenCL для расчетов?

(более года назад объявлялось о поддержке и мы все дружно пробовали быстродействие на тестовом скрипте, но прошло много времени а тема затихла...)

2. Если в системе установлено несколько видеокарт, будут ли они все использоваться для вычислений или только одна из них ?
 
vittt: 1. Существуют ли уже какие-либо советники для торговли, которые используют OpenCL для расчетов?

Наверно, существуют, но вряд ли в кодобазе. Энтузиастов немного, да и далеко не все они занимаются именно этим.

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

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

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

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

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

 

Здравствуйте.

На МетаТрейдер5 делаю объемные расчеты, решаю задачу (моделирование игры в покер). Пишу на Мкл5 потому что я неуч и знаю только его. В этом моем деле очень важны вопросы производительности.

Я так понимаю что задачи, где каждый последующий шаг вычисления не завязан на результаты предыдущих, поддаются распараллеливанию. Отлично! У меня как раз такая задача.

Но как мне распараллелить? Если мой алгоритм оперирует структурами (struct), методы которых

- например открывает текстовый файл с жесткого диска, читает, вносит информацию в массивы структуры, закрывает текстовый файл

- ну и другие методы содержат много стандартных функций, например rand(), ArrayResize() и т.д.

Ведь OpenCl это я так понимаю язык, похожий на c++. Вообщем, вопрос, а как вообще распараллелить вычисления? 

 
Stasikusssss:

Здравствуйте.

На МетаТрейдер5 делаю объемные расчеты, решаю задачу (моделирование игры в покер). Пишу на Мкл5 потому что я неуч и знаю только его. В этом моем деле очень важны вопросы производительности.

Я так понимаю что задачи, где каждый последующий шаг вычисления не завязан на результаты предыдущих, поддаются распараллеливанию. Отлично! У меня как раз такая задача.

Но как мне распараллелить? Если мой алгоритм оперирует структурами (struct), методы которых

- например открывает текстовый файл с жесткого диска, читает, вносит информацию в массивы структуры, закрывает текстовый файл

- ну и другие методы содержат много стандартных функций, например rand(), ArrayResize() и т.д.

Ведь OpenCl это я так понимаю язык, похожий на c++. Вообщем, вопрос, а как вообще распараллелить вычисления? 

Гугл в помощь.

На этом форуме вы на такой вопрос ответ не получите. 

По простой комбинации двух причин: 

1.  Начинающие программисты на OpenCL вообще не программируют (и вообще параллелизмом не занимаются),  ибо не по зубам.

2.  Опытным программистам с Вами возиться шибко неохота, ибо он (ваш вопрос) требует обстоятельного изучения именно Вашей квалификации, дабы ответить на понятном для вас языке, а потом ещё свой ответ Вам долго объяснять.

Поэтому, проявите уважение к временным ресурсам опытных программистов и разберитесь в основах самостоятельно.  А вот когда разберётесь и будут конкретные вопросы именно по языку (OpenCL), тогда и спрашивайте здесь.  По крайней мере будет больше шансов на содержательный разговор.

Быстрое погружение в MQL5
Быстрое погружение в MQL5
  • 2012.08.02
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы решили изучить язык программирования торговых стратегий MQL5, но ничего о нем не знаете? Мы постарались взглянуть на MQL5 и терминал MetaTrader 5 глазами новичка и написали эту небольшую вводную статью. Из неё вы сможете получить краткое представление о возможностях самого языка, а также несколько полезных советов по работе с редактором MetaEditor 5 и самим терминалом.
 

можно было бы ответить что распараллелить можно

только на чистом С, только простейшие арифметические операции 

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - Документация по MQL5
 

OpenCL 2.0

OpenCL 2.0 is the latest significant evolution of the OpenCL standard, designed to further simplify cross-platform programming, while enabling a rich range of algorithms and programming patterns to be easily accelerated. As the foundation for these increased capabilities, OpenCL 2.0 defines an enhanced execution model and a subset of the C11 and C++11 memory model, synchronization and atomic operations.

  • post a comment on the OpenCL 2.0 feedback thread on the Khronos forums - good for general feedback and questions
  • file a bug in the Khronos Bugzilla system under OpenCL 2.0 - good for detailed fixes and error founds in the specification.
Official OpenCL 2.0 Feedback thread
Official OpenCL 2.0 Feedback thread
  • www.khronos.org
The Khronos Group promotes the deployment and development of open standard APIs to enable authoring and playback of dynamic media on a wide variety of platforms and embedded devices. Current APIs are OpenGL ES, OpenML, OpenMAX, OpenSL ES, and Collada.
 
tol64:

OpenCL 2.0 is the latest significant evolution of the OpenCL standard,.............

Эт ты к чему клонишь ?
 
MetaDriver:
Эт ты к чему клонишь ?

Да вот увидел такую новость и решил её сюда выложить. Интересно во всё это углубиться, да пока время найти не могу. Вот на русском эта же новость:


Принята спецификация OpenCL 2.0 

Организация Khronos Group объявила о ратификации и доступности окончательного варианта спецификации OpenCL 2.0. По словам разработчиков, выход OpenCL 2.0 является значительным этапом в развитии открытого, бесплатного для использования стандарта, который упрощает кроссплатформенное параллельное программирование.

В новой версии улучшена модель исполнения и подмножества модели памяти C11 и C++11, синхронизация и атомарные операции. Как утверждается, в новой редакции OpenCL позволяет использовать существенно более широкий круг алгоритмов и паттернов программирования. В новой версии учтены пожелания разработчиков ПО, использующих OpenCL. Спецификации уже доступны на сайте Khronos.

К нововведениям и улучшениям OpenCL 2.0 относятся: совместно используемая виртуальная память, вложенный параллелизм, обобщенное адресное пространство, улучшенная работа с изображениями, включая поддержку sRGB. Кроме того, разработчики отмечают атомарные операции C11, конвейеры в памяти в виде стеков FIFO и устанавливаемые расширения драйверов для Android. 

Принята спецификация OpenCL 2.0
  • www.ixbt.com
Принята спецификация OpenCL 2.0 Открытый, бесплатный для использования стандарт OpenCL 2.0 упрощает кроссплатформенное параллельное программирование
 
tol64:

Да вот увидел такую новость и решил её сюда выложить. Интересно во всё это углубиться, да пока время найти не могу. Вот на русском эта же новость:


Принята спецификация OpenCL 2.0 

Организация Khronos Group объявила о ратификации и доступности окончательного варианта спецификации OpenCL 2.0. По словам разработчиков, выход OpenCL 2.0 является значительным этапом в развитии открытого, бесплатного для использования стандарта, который упрощает кроссплатформенное параллельное программирование.

В новой версии улучшена модель исполнения и подмножества модели памяти C11 и C++11, синхронизация и атомарные операции. Как утверждается, в новой редакции OpenCL позволяет использовать существенно более широкий круг алгоритмов и паттернов программирования. В новой версии учтены пожелания разработчиков ПО, использующих OpenCL. Спецификации уже доступны на сайте Khronos.

К нововведениям и улучшениям OpenCL 2.0 относятся: совместно используемая виртуальная память, вложенный параллелизм, обобщенное адресное пространство, улучшенная работа с изображениями, включая поддержку sRGB. Кроме того, разработчики отмечают атомарные операции C11, конвейеры в памяти в виде стеков FIFO и устанавливаемые расширения драйверов для Android. 

Ну это понятно.  Чё делать-то с этим?  В C#/C++  сваливать?
 
MetaDriver:
Ну это понятно.  Чё делать-то с этим?  В C#/C++  сваливать?

Может Ренат пусть посмотрит, что из этого можно извлечь. Вполне ведь возможно, что новая спецификация даст лучшую производительность и в MQL5 ?

По поводу C#/C++, если надо будет, можно и свалить. Главное, чтобы максимально возможный выхлоп был. ;) 

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