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を実行することは試していないのですが。テスターでやってみましたが、そこはすべて統一されていて、1つのカーネルが複数回使えるというのは、説明しなくてもわかることです。
4 最適化の際、複数のOpenCLスレッドを同時に使用してもグラフィックカードが遅くならないか?

オプティマイザーでの実行は試していませんが、複数の呼び出しが重なると(複数のOpenCLインジケータやExpert Advisorを同時に起動してやっていました)、当然遅くなりますね。

// 天井からリソースを取るわけではないのですね。

ビデオカードのメモリがオーバーロードされた場合(例えば、複数のプロセスが並行してビデオメモリにアレイをロードしようとした場合、そのメモリ容量を超える)、「ドライバを壊す」ことができます - ビデオカードとドライバの完全再起動(リセット)、ドライバのクラッシュに関するメッセージが続きます。 少なくともこれは私のカード/ドライバに繰り返し発生しました。これは不可逆的な損傷にはつながりませんが、クラッシュを起こしたプログラムは通常ハングアップします(再起動する必要があります)。以前は端末がハングアップするケースもありましたが、最近はありません。

// しかし、私は長い間、不謹慎なメモリクエリでドライバを「破って」いない、私は約「贅沢の限界」を発見しました。:)

 
Roffild: OpenCLに関するスレッドはたくさんありますが、例に挙げたようなタスクは商用には無理があります。

トレーディングに近いタスク(例えば、気配値履歴の分析)をOpenCLで解決しようとするもので、非常にシンプルです。何度か失敗した後、さらに文献を読み、新たな試みをすれば、必ずうまくいくはずです。ただし、英文文献を消化できることと、最低限の頭脳だけでなく、ちょっとした粘り強さがあることが条件です。

OpenCLのドライバは、ビデオカード用にもプロセッサ上のエミュレーション用にも、すでにかなり最適化されています(後者の場合、Intelプロセッサの方がはるかに強いでしょう)。だから、結局は全くプラスにならないように頑張るしかないんです。

 
Roffild:

では、OpenCLはトレーダーに何を与えてくれるのだろうか。

1〜4については、すでに回答がありましたので、あえて本題にお答えします(もちろん、これは私の見解にすぎません)。
 
皆さん、シャッフルは誰がやっているのでしょうか?連立方程式の解をOpenCLに転送することは可能か?規模が本当に大きくなることもありますし、その他のニュアンスもあります。
 
TheXpert:
みんな、誰が魔法をかけてるんだ?連立方程式の解をOpenCLに転送することは可能か?規模が本当に大きくなることもありますし、その他のニュアンスもあります。

OpenCLでSLAEを解決する

これはあなたの質問に答える良いpdfです。

 

ニコライさん、ご対応ありがとうございました。CUDAもコードもないんです。

もうひとつ言い忘れたのですが、行列の構築には解法よりも時間がかかるので :) 並列化する必要があるかもしれませんね。

 
TheXpert:

ニコライさん、ご対応ありがとうございました。CUDAもコードもないんです。

もうひとつ言い忘れたのですが、行列の構築には解法よりも時間がかかるので :) 並列化する必要があるかもしれませんね。

元データは何か // 形式、データ構造

つまり、バッファの束や木からマトリックスを構築するのですか?From [...] ?

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

ニコライさん、ご対応ありがとうございました。CUDAもコードもない。

あ、もうひとつ忘れていたのですが、行列は解くより作るほうが時間がかかるので :) 、並行して作る必要があるかもしれません。

実装ではなく、スキームという意味です。もちろん、CUDAは違いますが、一般的なスキームは同じです。

ウラジミールの意見に賛成です、情報が少ないので助かります。

他の人は参加しないと思うので、公開したくない人は、発表者の誰かに内緒で質問してください。

 
MetaDriver:

つまり、バッファの束や木からマトリックスを構築するのですか?From [...] ?

大雑把に言えば、10〜1000以上の巨大な次元の空間が存在し、そのためにMNC問題を解く必要があるのです。

ANM問題の解決は、次のことに集約される。

(1) 誘導体の方程式を構築する

(2) (1)で導かれた連立方程式を解くことにより

今は、(1)が解決時間の大半を占めています。次元数が大きければ大きいほど、分数は大きくなる。

 

並列アルゴリズムには、逐次アルゴリズムに比べて優位に立つ特徴が2つだけある。

それらは、それぞれの歯が糸を取り、全長に沿って引っ張るコーミングアルゴリズムです。

そして、ピラミッドロール・アンロール。巻き戻しはあまりなく、ほとんどがカールしています。

問題文にこれらの機能が含まれていない場合、並列ソルバーは優位性を持たず、メモリロードのコストにより遅くなることが多くなります。