OpenCL:真正的挑战

 

关于OpenCL的话题很多,但引用的任务与交易相差太远。

那么,OpenCL能给交易者带来什么?

是的,我还没有研究过OpenCL,所以我想学习并弄清要点。

  1. 它不是一个接收输入和输出数据的独立程序吗?因此,MQL根本没有任何互动?
  2. 在OpenCL中实现数组搜索是值得的,因为你所需要的只是得到确认是否存在匹配?
  3. 在优化过程中,每个线程都必须执行自己的OpenCL初始化,而且没有可能连接到已经在用的线程?
  4. 在优化时,显卡是否不会因为同时有多个OpenCL线程而变慢?
 
Roffild:

关于OpenCL的话题很多,但引用的任务与交易相差太远。

那么,OpenCL能给交易者带来什么?

你能接受的,那就是它能给予的。

是的,我还没有研究过OpenCL,所以我想学习并弄清要点。

好吧,学习。 互联网会有帮助。 不要被论坛上的问题所迷惑,或者说是入门级的问题。 所有关于 "如何工作 "的信息都在互联网和论坛上的文章中。比如我,当我看到这个人自己在深耕细作,并且已经可见掌握了一定程度的材料时,我就有了帮助的愿望。 我不想帮助那些以 "我在这里,已经教我了!"为姿态的自由人,而我只想 "对上脑子"。)

我今天会破例一次(我心情很好)。 然而,在初始阶段,由于明显的滑坡,我可能会忽略 "婴儿谈话",只回答关于编程的具体问题,只要他们不是太笨。

1.这是一个独立的程序,接收输入和输出数据,不是吗?因此,MQL根本没有任何互动?

在内核操作期间,没有任何交互,交互与函数调用的情况类似。1、设置初始参数,2、运行计算,3、获取结果

2.如果你只想得到确认是否存在匹配,是否值得将数组搜索引入OpenCL?

我不知道,这取决于手头的任务。也许你不必如此。或者你应该这样做,你知道心灵感应俱乐部在哪里吗?:)

3.在优化过程中,每个线程都要做自己的OpenCL初始化,而且没有办法连接到活动线程?

我不太明白这个问题。如果你是指在终端策略测试器/优化器中 的优化,我想一定是这样的。 我没有尝试过从优化器中运行OPTZL。我在测试器中做了,但那里的一切都很一致,一个内核可以多次使用,这很明显,不需要任何解释。
4 在优化时,显卡是否不会被多个OpenCL线程同时拖累?

我没有试过在优化器中运行它,但如果几个调用相互重叠(我在做的是同时启动几个OpenCL指标和专家顾问),它当然会变慢。

// 它不需要从天花板上获取资源,对吗?

如果显卡的内存过载(例如,如果几个进程试图在显卡内存中并行加载阵列,超过了内存容量),那么你可以 "破坏驱动"--得到显卡和驱动的完全重启(重置),然后出现驱动崩溃的信息。 至少这种情况反复发生在我的显卡/驱动上。这不会导致不可逆的损害,但导致崩溃的程序通常是挂起的(它们必须重新启动)。以前也有终端挂机的案例,但最近没有。

// 然而,我已经很久没有用不谦虚的内存查询来 "撕扯 "司机了,我已经找到了 "奢侈的极限 "大约。:)

 
Roffild: 有很多关于OpenCL的线程,但例子中概述的任务离商业化太远。

这很简单:你把一个接近于交易的任务(例如,分析报价历史),并试图用OpenCL来解决它。经过几次不成功的尝试,进一步阅读文献和新的尝试,它将会成功,我保证。但条件是,你必须能够消化英文文献,并有一点毅力,以及最低限度的头脑。

OpenCL驱动已经为显卡和处理器上的仿真进行了相当好的优化(在后一种情况下,英特尔处理器可能更强大)。所以你必须努力尝试,最后根本没有得到任何积极的结果。

 
Roffild:

那么,OpenCL能给交易者带来什么?

关于第1-4点,你已经得到了回答,我将大胆回答你的主要问题(当然,这只是我的观点):绝大多数交易者将从OpenCL中得不到任何好处,他们最好把这个 "面包 "留给程序员。
 
伙计们,谁在做洗牌?是否有可能将线性方程组的解转移到OpenCL上?系统的规模可能真的很大,而且还有其他细微差别。
 
TheXpert:
伙计们,谁在施展魔法?是否有可能将线性方程组的解转移到OpenCL上?系统的规模可能真的很大,而且还有其他细微差别。

在OpenCL中解决SLAEs问题

这是一个很好的PDF,可以回答你的问题。

 

尼古拉,谢谢你的回应。没有CUDA,也没有代码。

哦,我还忘了说一件事--矩阵的构建比它的解法需要更多的时间:)所以,你可能需要并行构建。

 
TheXpert:

尼古拉,谢谢你的回应。没有CUDA,也没有代码。

哦,我还忘了说一件事--矩阵的构建比它的解法需要更多的时间:)所以我可能需要将它并行化。

什么是源数据?//格式、数据结构

我的意思是,我们用什么来建立矩阵? 一堆缓冲区? 一棵树?来自[...]?

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

尼古拉,谢谢你的回应。没有CUDA,也没有代码。

哦,我还忘了一件事--矩阵的构建比解决它需要更多的时间:),所以可能需要平行构建。

我指的是计划,而不是实施。当然,CUDA是不同的,但一般方案是相同的。

我同意弗拉基米尔的观点,你没有提供足够的信息来帮助你。

我想不会有其他人加入,所以如果你不想公开,你可以私下问任何一位主持人。

 
MetaDriver:

我的意思是,我们用什么来建立矩阵? 一堆缓冲区? 一棵树?来自[...]?

粗略地说,有一个巨大维度的空间(10-1000甚至更多),对于它,我们需要解决MNC问题。

解决ANM问题的方法可归结为

(1) 构建导数的方程式

(2) 通过求解(1)中得出的方程组来实现

现在(1)占据了大部分的解决时间。维度越大,分数就越大。

 

并行算法只有两个特点,使其比顺序算法更具优势。

它们是梳理算法,每个齿都拿着它的线,沿着整个长度拉动。

还有金字塔的滚动/展开。揭开包装的情况比较少见,大多是卷曲的。

如果问题陈述不包括任何这些特征,并行求解器就不会有优势,更多的时候会因为内存加载的成本而变得更慢。