В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
ML 0 Startup 07:18:59 access rights to common directory successfully checked
OF 0 Startup 07:18:59 Service start initialized
QL 0 Startup 07:18:59 Create startup thread
ER 0 Startup 07:18:59 Thread successfully created
DE 0 Startup 07:18:59 MetaTester 5 x64 build 756 (25 Jan 2013)
JP 0 Server 07:18:59 MetaTester 5 started on 0.0.0.0:2000
RK 0 OpenCL 07:18:59 Device #0: GPU NVIDIA Corporation Tesla T10 Processor with OpenCL 1.0 (30 units, 1440 MHz, 4095 Mb, version 307.45)
QJ 0 Startup 07:18:59 initialization finished
IO 0 Startup 07:18:59 Startup thread finished successfully
IK 0192.168.1.13207:19:12 login (build 756)
MG 0 Network 07:19:1238680 bytes of group info loaded
NN 0 Network 07:19:121490 bytes of tester parameters loaded
CG 0 Network 07:19:12708 bytes of input parameters loaded
EM 0 Network 07:19:12817 bytes of symbols list loaded
MK 0 Tester 07:19:12 expert file added: Experts\OpenCLExpert.ex5. 8322 bytes loaded
MR 0 Network 07:19:12224 bytes of optimized inputs info loaded
GG 0 Tester 07:19:12 successfully initialized
CQ 0 Network 07:19:1222 Kb of total initialization data received
DJ 0 Tester 07:19:12 Intel Core i7-2600 @ 3.40 GHz, 16366 MB
CM 0 Tester 07:19:12 optimization pass 1 started
LD 0 Symbols 07:19:12 EURUSD: symbol to be synchronized
HO 0 Symbols 07:19:12 EURUSD: symbol synchronized, 3304 bytes of symbol info received
NJ 0 History 07:19:12 EURUSD: load 15 Kb of history data to synchronize
FR 0 History 07:19:12 EURUSD: history synchronized from2012.01.02 to 2013.01.29
KP 0 History 07:19:12 EURUSD,H1: contains 6210 bars of beginning data from2012.01.0200:00 to 2012.12.3119:00
DD 0 History 07:19:12 EURUSD,H1: history cache reserved for estimated 6754 bars
LE 0 History 07:19:12 EURUSD,H1: history begins from2012.01.0200:00
HM 0 Tester 07:19:121 : passed within 297 ms
KF 0 Tester 07:19:12273 Mb memory used
我们专门扩充了错误信息来 查找有问题的代理。我们将逐步消除它们。
既然我们从事的是贸易业务,也许您听说过 "供求关系 "这个词。
也许是代理商的供应太多,而对云计算的需求太少。
MQ 从供应商那里收取多少佣金?
升级到版本 756 后,登录和相应的"出售资源"复选框被重置。
结果发现,当试图重新启动服务时,它们并没有重新启动....。
我不得不通过任务管理器杀死进程,然后才重新启动。
OpenCL 也仍然存在问题:
RL 0 Startup 14:47:50 创建启动线程
FR 0 Startup 14:47:50 线程创建成功
CE 0 Startup 14:47:50 MetaTester 5 x64 build 756 (25 Jan 2013)
JP 0 Server 14:47:50 MetaTester 5 started on 0.0.0.0:2001
GE 0 OpenCL 14:47:50 initialize
PD 2 Agent 14:47:50 OpenCL initialisation skipped due to critical error.请更新视频驱动程序。
EK 2 Agent 14:47:50 OpenCL 将在终端下次启动时初始化。
DO 0 启动 14:47:50 初始化完成
NK 0 启动 14:47:50 启动线程成功完成
LO 0 Network 14:49:50 Network 14:49:50 connected to 1.agents.mql5.com
升级到版本 756 后,登录和相应的 "出售资源 "复选框被重置。
结果发现,当试图重新启动服务时,它们并没有重新启动....。
我不得不通过任务管理器杀死进程,然后才重新启动。
OpenCL 也有问题:
在下一个版本中,我们将发布在服务模式下工作时对 OpenCL 的改进支持(我们修复了一些错误),开放对云中 OpenCL 设备统计数据的访问,并使在网络中实际使用 OpenCL 成为可能。
我们还不会预测结果,但发布后我们就会看到。
下面以英伟达特斯拉为例,介绍 OpenCL 在服务代理中的启动和初始化过程:
每个人都将在下一个版本中使用它。下面以英伟达特斯拉为例,介绍 OpenCL 在服务代理中的启动和初始化过程:
每个人都将在下一个版本中使用它。所有 == 都在专用于计算的 GPU 上,还是所有?
那些在视频驱动程序之外提供 API 的 GPU。这些是专门的计算卡,如 Tesla。
有些驱动程序(AMD/ATI)可以将 CPU 用作 OpenCL 设备。我们目前正在努力在代理中启用它们。此类设备的性能可能较低,但最重要的是,我们将获得 OpenCL 的广泛可用性。
在视频驱动程序之外提供 API 的 GPU。这些都是像特斯拉这样的专业计算卡。
对于普通用户来说,它们现在还没有前途。我是说,完全没有。
我们来比较一下双倍性能
7970 -- 0.95 TFlops
k20x -- 1.3 TFlops。
请注意价格)
7970 -- 400
k20 -- 3200 (!) k20x 价格虚高。
显然,您将代理作为服务组织起来的决定是错误的。