記事"MQL5を使用した整列法とその可視化"についてのディスカッション

 

新しい記事 MQL5を使用した整列法とその可視化 はパブリッシュされました:

Graphic.mqhライブラリは、MQL5のグラフィックスで動作するように設計されています。本稿では、実用的なアプリケーションの例を示し、ソートの概念について説明します。ソートタイプには既に少なくとも1つの別個の記事が書かれておりソートタイプのいくつかは詳細な調査の対象なので、ここではソートの一般的な概念が説明されます。

FillArr() 関数は、10から(X軸とマージしない)110までの乱数で配列を塗りつぶします。'arr' 配列は、交換関数が標準のルックswap(arr, i, j).を持つようにローカルになります。最後のObjectDeleteAllコマンドは、プロットしたものを消去します。それ以外の場合は、メニューのオブジェクトリストCtrl+Bでオブジェクトを削除する必要があります。  

準備が完了です。ソートを始めます。


並べ替えのヒストグラム

作者: Dmitrii Troshin

 
司会者たちも同じように良い仕事をしていたように思う)
 
Дмитрий Трошин:
モデレーターの仕事も少なくないようだ :)

私のi5と16GBのメモリで24のソートを実行してもうまくいかなかった =(

 
Andrey Khatimlianskii:

私のi5と16GBのメモリで24のソートを実行してもうまくいかなかった。

12個のメソッドで試してみてください。

動画を撮影したコンピュータのパラメータは以下の通りだ。

2017.05.25 11:19:34.700 Terminal        Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i7  920 @ 2.67 GHz, RAM: 7215 / 12277 Mb, 
 
Дмитрий Трошин:
私には、モデレーターも同じくらい仕事をしているように思えたが......)

そう、編集者、彼らは冷酷だ)。

全体的に興味深いが、私が想像していた映像化とは違っていた。見ている分には面白いが、その方法を理解することはできない。

 
Rashid Umarov:

12の方法で試してみてください。

ビデオを撮影したコンピュータのパラメータは以下の通りです。

はい、私の場合は10個で動きました。

私が言いたいのは、並列ソートを視覚化するという一見すると超複雑ではない課題はまだ解決されていないということだ。

もしかしたら、その一見は間違っているのかもしれない。)

 
Andrey Khatimlianskii:

おそらく最初の見解は間違っている )

Sleep() を使用して、すべての並べ替えを別々のチャートにスクリプトとして分散させる(ChartApplyTemplate を 使用する)。

もう一つの解決策はもっと複雑で、CCanvas の機能を経済的に使用することです。より注意深く、時間のかかるプログラミングが必要です。

 
Andrey Khatimlianskii:

つまり、並列ソートを視覚化するという一見超複雑なタスクは解決されていないということだ。

8コアで24スレッドの並べ替え、さらにオペレーティングシステムでレンダリングやその他のタスクを別スレッドで行う。
 
Rashid Umarov:
8コアで24スレッドの並べ替え、さらにOSのレンダリングやその他のタスクの別スレッド - どんなコンプでも、どんなコンピューターでも厄介な立場に追い込まれる可能性がある。
それは本当に難しいタスクなのだろうか?100個の要素からなる配列を 24個ソートする?本当に理解できない。
 
24スレッドすべてが同時に8コアのリソースを得ようとしています。全員が十分なリソースを確保できるようにするにはどうすればいいでしょうか?
 
Rashid Umarov:
すべての24スレッドが同時に8コアのリソースを得ようとしています。全員のために十分なリソースを確保するにはどうすればいいのか?

私にはわからない。OSではどのように処理されているのでしょうか?

それとも、最初の8プロセスがコアを100%占有し、他の誰にもアクセスさせないことが問題なのでしょうか?