MQLによる非同期・マルチスレッドプログラミング - ページ 23

 
Maxim Romanov:
openclの何が問題なのか説明してください。端末にはopenclのコードを書く機能が実装されており、これはマルチスレッドである。ここに書かれているマルチスレッドとこの機能は何が違うのか、自分でも理解したいです。
まあ、あるいは誰にでもわかるように説明してください。

VPSサーバーに ビデオカードがない、もしくはあっても非常に採算が合わない ))
ローカルのほとんどのユーザーでも、ビデオカードはopenclをサポートしていません))
openclのために適切なコードを書くことの複雑さは言うまでもありません。
はい、選択肢はありますが、ごく一部の人たちのためのものです。

 
Roman:

ビデオカードはVPSサーバーでは 使用できないか、使用できても非常に収益性が悪い ))
ローカルサイトではほとんどのユーザーでもopenclをサポートしていません))
openclのために適切なコードを書くことの複雑さは言うまでもありません。
オプションはありますよ。でも、ごく狭い範囲の人たちだけです。

プロセッサ上ではopenclも動作します。コードを実行するデバイスを選択するだけです。ビデオカードの技術に限ったことではありません。サーバーでは、ビデオカードのトラブルがありますよね。
 
Maxim Romanov:
openclプロセッサ上でも動作します。コードを実行するデバイスを選択するだけです。ビデオカード技術だけではありません。サーバーでは、ビデオカードのトラブルがありますよね。

しかし、openclがCPUでも動作することは知りませんでした。openclについては、まだRenatさんの記事にたどり着けません。
ここでもopenclについての投稿を読みましたが、すべてのプログラマーをopenclに乗せることはできません、箱から出したタスクのネイティブメソッドの方が使い勝手がよさそうです。
では、openclはどんなプロセッサでも動作するのでしょうか?それとも、機種によっても違うのでしょうか?

 
Roman:

しかし、openclがプロセッサーでも動作することは知りませんでした。openclについては、まだRenatさんの記事にたどり着けません。
ここでもopenclの記事を読みましたが、プログラマーを全員openclに乗せることはできない、箱から出したタスクの標準メソッドのほうが使い勝手がよさそうです。
では、openclはどんなプロセッサでも動作するのでしょうか?それとも、機種によっても違うのでしょうか?

はい、Intelとamdの両方のプロセッサで動作するようで、1つはドライバをインストールする必要があるだけです。amdで試したところ、うまくいきました。
 
Maxim Romanov:
はい、Intelとamdで動作するはずで、ドライバをインストールする必要があるようです。amdで試したところ、うまくいきました。

すべて同じように、プロセッサのモデルかドライバのどちらかにある程度依存することが判明したのです。
作品を配布(販売)している方など、すべての方に適しているとは限りません。
プログラムの移植性を重視する人もいますが、私としてはそれも重要なパラメータだと考えています。

openclはカスタムDLLで動作可能ですか?
つまり、DLLからエクスポートされた関数を 非同期で呼び出すのですか?
タスクを扱う内部クラスがあれば、DLLから独自の関数を非同期で呼び出すことができる。
つまり、通常の機能の方が使い勝手がよく、コードを書く上でもアクセスしやすいのです。

 

輸送部門の責任者から連絡がないのが残念ですが、具体的にどのようなタスクでマルチスレッドを実装したいのでしょうか?提案するソリューションの簡単なブロック図を描いてください。

本来想定していないMKLのタスクを頑なに押し込もうとしていますね。一言で言えば、「全然ダメ」です。ZeroMQは ほとんどすべてのJDへのAPIを持っています。さらに、親切なDing Li 氏は、MQL4/5でZeroMQを使うためのライブラリを開発し、サンプルも用意してくれました。このトピックに関する フォーラムスレッドで、実際のコード例をご覧ください。

なぜあなた(トピックスターター)は鍋に水を押し込んでいるのですか?それとも、市場にも縛られているのでしょうか?

グッドラック

Interesting Whitepapers - zeromq
  • zeromq.org
Unlike other (centralised) messaging systems which are based on the well-understood theoretical foundation, there are almost no resources regarding distributed messaging in general and ØMQ in particular that an interested reader can be pointed to. The goal of this paper is to explain the elementary concepts of ØMQ architecture, how they fit...
 
Roman:

openclはカスタムDLLを扱う方法を知っているのでしょうか?
I.e. 非同期でDLLからエクスポートされた関数を 呼び出すのですか?
タスクを扱うインハウスクラスがあり、DLLから非同期にも関数を呼び出すことができました。
つまり、通常の機能の方が使い勝手がよく、コードを書く上でもアクセスしやすいのです。

DLL関数を呼び出す。DLLにスレッドを作り、そこにデータを転送し、スレッドを切断して忘れる - タスクが完了したら勝手に終了する。 DLLでスレッドを切断すると、端末のスレッドは解放されます。すべての処理にかかる時間は、1ミリ秒以下だと思います。スレッドを切断しなくても、データベースへの書き込み処理が4〜5msであることから判断して。まあ、60tick/minもあれば、ターミナルからの非同期呼び出しに悲観することはないでしょう。

 
Vladimir Perervenko:

輸送部門の責任者から連絡がないのが残念ですが、具体的にどのようなタスクでマルチスレッドを実装したいのでしょうか? 提案するソリューションの簡単なブロック図を描いてください。

本来想定していないMKLのタスクを頑なに押し込もうとしていますね。一言で言えば、「全然ダメ」です。ZeroMQは ほとんどすべてのJDへのAPIを持っています。さらに、親切なDing Li 氏がMQL4/5でZeroMQを使用するためのライブラリを開発し、サンプルも用意してくれました。このトピックに関する フォーラムスレッドで、実用的なコード例をご覧ください。

なぜあなた(トピックスターター)は鍋に水を押し込んでいるのですか?それとも、市場にも縛られているのでしょうか?

グッドラック

サードパーティーのソリューションは使わないようにしています。
私はすでにネットワークの問題を解決する方法を見つけており、あとはそれを勉強し、応用し、自分の頭を使わないようにするだけです。
しかし、ここにはノンブロッキングの呼び出しや非同期を必要とするプログラマもいる。
だから、この機能を標準の言語配信に実装することを提案したのです。そして、それは開発者次第であり、要はアイデアであり、センスなのです。
端末がEventLoopを実装することを想定していないのはなぜでしょうか?特に言葉から・・・。
ローカルエージェントの実行には、どのようなアルゴリズムが使用されていますか?おそらくスレッドプールにあるのでは?誰が管理し、タスクを分配しているのか?
では、端末はすでにそのようなアルゴリズムを持っているのだから、それを使って機能を拡張すればいいのではないか。
プログラマに非同期でコードを書けるモードを提供する。
私はこのアイデアに賛成です。非同期で必要とする人がいないのなら、まあ何というか、多くの人がシングルスレッドにこだわっていることだけが残念です。


 
Yuriy Asaulenko:

DLL関数を呼び出す。DLLにスレッドを作り、そこにデータを転送し、スレッドを切断して忘れる - タスクが完了したら勝手に終了する。DLLでスレッドを切断すると、端末のスレッドは解放されます。すべての処理にかかる時間は、1ミリ秒以下だと思います。スレッドを切断しなくても、データベースへの書き込み処理が4〜5msであることから判断して。まあ、60ticks/sもあれば、ターミナルからの非同期呼び出しで悲しむことはないでしょう。

ここで、別のアイデアをありがとう、私はローカルの記事に従ってDLLを書くことができますが、残念ながら彼らはエントリポイント手順、初期化、メモリ割り当て、スレッド作成などを記述していません。
このテーマに関する文献を探しても、エントリーポイントを適切に処理する方法が見つからないんだ。何か情報があれば、教えてください。
あるいは教えていただけるのであれば、喜んで知識を受け入れたいと思います。
私はプログラマーとして勉強していない、すべて私が自分で学ぶ、したがって、私を蹴らないでくださいボア ))

 
Maxim Romanov:
openclの何が問題なのか説明してください。端末にはopenclのコードを書く機能が実装されており、これはマルチスレッドである。ここに書かれているマルチスレッドとこの機能は何が違うのか、自分でも理解したいです。
まあ、あるいは誰にでもわかるように説明してください。
正直なところ、openclはそれをじっくりと研究したわけではない。私はこのソリューションのいくつかの依存をキャッチし、興味をしなくなりました。ふと、あちこちから配線を引っ張ってきて、何かをネジ止めすればいいんじゃないかと思ったんです。私が間違っているのかもしれませんが、ここではopenclを使っている実践者に出会ったことがありませんし、私の偏見を打ち破ってくれる人もいなかったのです。もしかしたら、後でもっと仲良くなったら気が変わるかもしれないし、その逆もあるかもしれない。いずれにせよ、プログラムの移植性が重要な私にとって、外部依存はストレスになります。