Многопоточность в МТ5 - страница 2

 
joo:

Есть такая открытая штука - OpenCL. Возможно компилятор MQL6 будет поддерживать этот фреймворк?

OpenCL (от англ. Open Computing Language — русск. открытый язык вычислений) — фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических (англ. GPU) и центральных процессорах (англ. CPU). В фреймворк OpenCL входят язык программирования, который базируется на стандарте C99, и интерфейс программирования приложений (англ. API). OpenCL обеспечивает параллелизм на уровне инструкций и на уровне данных и является реализацией техники GPGPU. OpenCL является полностью открытым стандартом, его использование не облагается лицензионными отчислениями.


После этого поста в личку пришло сообщения от человека, утверждающего, что можно использовать OpenCL возможности (вычисления на GPU) прямо в коде MQL5....

Оснований ему не верить у меня нет.

А это значит, что удаленные агенты (а в теории их может быть неограниченное количество) могут к тому же использовать расчеты на GPU. Каждый из них.... 

PS демонстрировать исходники MQL5 он не хочет.

 
joo:

После этого поста в личку пришло сообщения от человека, утверждающего, что можно использовать OpenCL возможности (вычисления на GPU) прямо в коде MQL5....

Оснований ему не верить у меня нет.

А это значит, что удаленные агенты (а в теории их может быть неограниченное количество) могут к тому же использовать расчеты на GPU. Каждый из них.... 

PS демонстрировать исходники MQL5 он не хочет.

Андрей, ну не первый день же на форуме, знаешь же как к таким голословным заявлениям относятся.

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

ЗЫ Поговори с человеком которому нет оснований не верить, пусть засветиться лично на форуме и всё обоснует. Чего тебе за кого то отдуваться.

 
Urain:

Андрей, ну не первый день же на форуме, знаешь же как к таким голословным заявлениям относятся.

1) Нет исходников должен быть хотя бы скомпилированный пример. А то ведь "одна бабка сказала" получается.

2) ЗЫ Поговори с человеком к которому нет оснований не верить, пусть засветиться лично на форуме и всё обоснует. Чего тебе за кого то отдуваться.

1) Он мне дал пример ex5, который выводит информацию о видеокарте в лог. Обещал через несколько дней показать индикатор на этой технологии.

2) Я с ним говорил, он не хочет ни статьи писать, ни публиковать коды в CodeBase.

Я не отдуваюсь. :) Здесь написал для того, что бы программисты и разработчики просто задумались - информация к размышлению, так сказать.

 

Многопоточность через dll реализуется без проблем ( вот, например, вспомнилось https://www.mql5.com/ru/forum/382 )

Многопоточность графической подсистемы (CUDA, OpenGL, ...) тоже прекрасно реализуется, но опять же - через dll

 

OpenCL with MQL5

Если кому не трудно, запустите скрипт, приложенный к посту. Пожалуйста, выкладывайте результаты тестов. У меня получилось вот так:



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


Особо желательно, что бы были установлены самые свежие драйвера для CPU и GPU. Версия скрипта только для win 32bit.

Результаты работы скрипта лежат тут: {mt5}\mql5\images

Файлы:
 

 


Core I5-750 4Gb DDR3 1333 RAM 

 

Если у кого нет результатов по процессорам от AMD или Intel, для тех дорога сюда:


http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx

http://software.intel.com/en-us/articles/opencl-sdk/

Accelerated Parallel Processing (APP) SDK - AMD
Accelerated Parallel Processing (APP) SDK - AMD
  • developer.amd.com
AMD APP technology is a set of advanced hardware and software technologies that enable AMD graphics processing cores (GPU), working in concert with the system’s x86 cores (CPU), to execute heterogeneously to accelerate many applications beyond just graphics. This enables better balanced platforms capable of running demanding computing tasks...
 




PS Поставил новый драйвер 275.33-desktop-winxp-32bit, время уменьшилось

 

NVIDIA CUDA GeForse GT 430
             MQL Platform           
22297
22188
22343
22157
23328
23031
23188
23000


Но теперь почему то показатели MQL Platform почти такие же и даже на чуть чуть обгоняют OpenCL ?????
 
На CPU работает в 1 поток. Это просто сравнение производительности кода MQL компилятора и OpenCL. На GPU - несколько потоков. Меня больше интересовал сам факт запуска и работы на разных компах. На цифирки пока нет смысла смотреть. Много отладки и прочего... И сам факт заинтересованности аудитории к данной технологии меня интересовал не меньше... Окончательный код библиотеки работы с OpenCL будет полностью открыт в не зависимости от того будет статья или нет.
 
JavaDev:
На CPU работает в 1 поток. Это просто сравнение производительности кода MQL компилятора и OpenCL. На GPU - несколько потоков. Меня больше интересовал сам факт запуска и работы на разных компах. На цифирки пока нет смысла смотреть. Много отладки и прочего... И сам факт заинтересованности аудитории к данной технологии меня интересовал не меньше... Окончательный код библиотеки работы с OpenCL будет полностью открыт в не зависимости от того будет статья или нет.

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

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