Скачать MetaTrader 5

OpenCL: реальные задачи

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

Тем про OpenCL хватает, но задачи, которые приводятся в пример, слишком далеки от торговых.

Так что же может дать OpenCL трейдерам?

Да, я еще не изучал OpenCL, потому хочется узнать и прояснить основные моменты:

  1. Это же отдельная программа, которая получает данные на вход и отдает? То есть нет вообще никакого взаимодействия из MQL?
  2. Стоит ли вообще выносить поиск по массиву в OpenCL, если нужно получить только подтверждения существования соответствия?
  3. При оптимизации каждый отдельный поток обязан выполнять свою инициализацию OpenCL и нет возможности подключится уже к активной?
  4. А при оптимизации видяха не тормозит от нескольких OpenCL одновременно?
Vladimir Gomonov
8302
Vladimir Gomonov  
Roffild:

Тем про OpenCL хватает, но задачи, которые приводятся в пример, слишком далеки от торговых.

Так что же может дать OpenCL трейдерам?

Что сможете взять, то и даст.

Да, я еще не изучал OpenCL, потому хочется узнать и прояснить основные моменты:

Ну так изучайте.  Инет поможет.  Не увлекайтесь вопросами на форуме, точнее вопросами начального уровня.  Вся информация о том "как это работает" есть в инете и статьях на форуме. У меня, например, есть желание помогать когда я вижу что человек сам впахивается в изучение и уже виден некоторый уровень освоения материала.  Халявщикам вставшим в позу "вот он я уже пришёл, научите уже меня!" помогать не хочется, а хочется лишь "вправить мозг".  :)

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

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

Во время работы кернела опенЦЛ взаимодействия нет.  Взаимодействие по аналогии с вызовом функции: 1. задали начальные параметры, 2. запустили расчёт, 3. забрали результат

2. Стоит ли вообще выносить поиск по массиву в OpenCL, если нужно получить только подтверждения существования соответствия?

Не знаю.  Зависит от задачи. Может и не стоит. А может и стоит.  Клуб телепатов знаете где? :)

3. При оптимизации каждый отдельный поток обязан выполнять свою инициализацию OpenCL и нет возможности подключится уже к активной?

Не совсем понял вопрос. Если имеете в виду оптимизацию в тестере/оптимизаторе стратегий терминала, то скорее всего так.  Я не пробовал запускать опенЦЛ из оптимизатора. Из тестера запускал, но там всё последовательно, можно один кернел многократно использовать, это очевидно и без объяснений.
4. А при оптимизации видяха не тормозит от нескольких OpenCL одновременно?

Я не пробовал в оптимизаторе запускать.  Но если несколько вызовов накладываются друг на друга (я это делал запуская одновременно несколько ОЦЛ-индикаторов и экспертов), то естественно тормозит. 

//  С потолка же не возьмутся ресурсы, да? 

Если перегрузить память видеокарты (например если несколько процессов параллельно пытаются загрузить в видеопамять массивы по сумме превышающие объём её памяти), то можно "порвать драйвер" - получить полную перезагрузку (ресет) видеокарты и драйвера, с последующим сообщением о падении драйвера.  По крайней мере на моей карте/драйвере это неоднократно случалось. К необратимым пагубным последствиям это не приводит, только вызвавшие падение программы обычно подвисали (их приходилось перезапускать). Раньше ещё были случаи повисания терминала, но в последнее время такого не помню. 

// Впрочем, я давно уже не "рвал" драйвер нескромными запросами к памяти, примерно нащупал "границы роскоши". :)

Sceptic Philozoff
Модератор
17844
Sceptic Philozoff  
Roffild: Тем про OpenCL хватает, но задачи, которые приводятся в пример, слишком далеки от торговых.

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

Драйверы OpenCL уже неплохо оптимизированы и для видеокарт, и для эмуляции на процесcорах (во втором случае, пожалуй, значительно сильнее процессоры Intel). Так что нужно сильно постараться, чтобы в конце концов не получить вообще никакого положительного результата.

Вангелис
676
Вангелис  
Roffild:
 

Так что же может дать OpenCL трейдерам?

 

По пунктам 1-4 Вам уже ответили, а на главный Ваш вопрос рискну ответить я (есссно сугубо моя точка зрения такова): подавляющему большинству трейдеров OpenCL не даст ничего, лучше оставить этот "хлеб" программистам.
Комбинатор
16188
Комбинатор  
Народ, кто шарабанит? Можно переложить на OpenCL решение линейной системы уравнений? Размер системы может быть реально большим и есть еще нюансы.
Nikolay Demko
12551
Nikolay Demko  
TheXpert:
Народ, кто шарабанит? Можно переложить на OpenCL решение линейной системы уравнений? Размер системы может быть реально большим и есть еще нюансы.

Решение СЛАУ на OpenCL

нормальный такой pdf отвечающий на твой вопрос.

Комбинатор
16188
Комбинатор  

Николай, спасибо за отзывчивость. Там CUDA и кода нет.

А, забыл еще одну вещь сказать -- построение матрицы занимает больше времени чем ее решение :) так что параллелить возможно надо будет построение.

Vladimir Gomonov
8302
Vladimir Gomonov  
TheXpert:

Николай, спасибо за отзывчивость. Там CUDA и кода нет.

А, забыл еще одну вещь сказать -- построение матрицы занимает больше времени чем ее решение :) так что параллелить возможно надо будет построение.

Подумать надо.  Исходные данные какие?  // формат, структура данных интересует

В смысле из чего строим матрицу?  Из связки буферов?  Из дерева? Из [...] ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных - Документация по MQL5
Nikolay Demko
12551
Nikolay Demko  
TheXpert:

Николай, спасибо за отзывчивость. Там CUDA и кода нет.

А, забыл еще одну вещь сказать -- построение матрицы занимает больше времени чем ее решение :) так что параллелить возможно надо будет построение.

Я имел в виду не реализацию а схему. CUDA конечно отличается но общая схема таже.

Согласен с Владимиром, ты даёшь мало инфы чтоб тебе помочь.

В принципе врядли ещё кто то впишеться, так что если не хочешь на публику, можешь к любому из присутствующих в личку.

Комбинатор
16188
Комбинатор  
MetaDriver:

В смысле из чего строим матрицу?  Из связки буферов?  Из дерева? Из [...] ?

Грубо говоря, есть пространство огромной размерности (10 -- 1000 и больше), для него надо решить задачу МНК.

Решение задачи МНК сводится в итоге к

(1) построению уравнений производных

(2) решению системы уравнений, полученных в (1)

Сейчас львиную долю времени решения занимает (1). Чем больше размерность, тем больше часть.

Nikolay Demko
12551
Nikolay Demko  

У параллельных алгоритмов есть всего 2 фишки дающих преимущество над последовательными.

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

И пирамидное сворачивание/разворачивание. Разворачивание реже в основном сворачивание.

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

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