問題タブ [parfor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 単一インデックスからの 2 次元配列インデックスの合計
m
次のようにxm
行列を埋めるために、MATLAB で並列 for ループを作成しようとしています。
私がそれなしでそれをしていたなら、parfor
私は単純に次のようにします:
ただし、残念ながらparfor
、その本体内に他のインデックスを許可していないため、やりたいことができません。
を使用してインデックスの合計を抽出しようとしましたが、ceil(i/3) + mod(i,3)
これは機能しi=3
ませ1
ん4
。
インデックスの合計を抽出するより良い方法はありますか?
matlab - ループ インデックスのリセット / ループの再開 - MATLAB - MathWorks 日本
for ループを 1000 のバッチで実行する必要があります。しかし、最初の実行時に 'cc' が 100 に達しない場合は、cc が 100 に達するまで 1000 のバッチをさらに実行する必要があります。
これは while ループを使用して実行できることはわかっていますが、並列ツールボックスparfor
(おそらく GPU も) を使用する必要があり、知る限り、while ループはサポートされていません。
基本的に、if ループ内の for ループ インデックスを変更 (リセット) する必要があります。ただし、MATLAB の for ループは、ループ内でインデックス (この場合は 'i') を変更できないように設計されているようです。これを回避する方法はありますか?while ループを使用せずにこれを行うには、よりスマートな方法が必要です。助言がありますか?
matlab - Matlabpool は surf() 関数でいくつかの問題を引き起こします
Matlab で parfor を使用すると問題が発生しました。parfor ループ内で呼び出される関数内で以下のコードを実行します。
- matlabpool を開くと、関数でプログラムがクラッシュし
saveas
ます。 - matlabpool を開かなければ、すべてうまくいきます。
- 両方の呼び出しにコメントする
surf
と、matlabpool が開いていても、すべてが正常に機能します。
私は通常、.pdf 形式で名前を付けて保存しますが、.fig 形式で名前を付けて保存すると、すべてうまくいきます。.fig 形式は、問題を引き起こさない唯一の形式です。もちろん、matlabpool open を使用した parfor ではステップインできないため、並列ループをデバッグすることはできません。したがって、matlabpool open がないと、すべての変数が適切であることがわかります。
何か不足していますか?parfor ループ内で surf を使用すると、既知の問題が見つかりません。本当の問題がどこにあるのかを理解しようとする奇妙な問題が多すぎるので、誰かが同様の問題を抱えているかどうか尋ねます。
UP: OK、これはエラーを引き起こす完成したプログラムです:
distcomp.remoteparfor/getCompleteIntervals の使用中にエラーが発生しました (22 行目) parfor が使用しているセッションがシャットダウンされました。
私の目標はTitle.mat
、pdfファイルに保存することです。もちろん、Title.mat には一貫性のある正しいデータが含まれています。すべてのスレッドは、.mat ファイルを含む専用のディレクトリに移動する必要がありますtranslate
。プールを開かない場合、すべてが期待どおりに機能します。.fig 形式で保存すると、すべてが期待どおりに機能します。