質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

並列処理

複数の計算が同時に実行される手法

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Q&A

解決済

1回答

978閲覧

matlabのparforに関して

unser

総合スコア58

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

並列処理

複数の計算が同時に実行される手法

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

0グッド

0クリップ

投稿2020/11/09 01:38

matlabにて並列計算を行いたいと考えています.
しかし,自分の環境で並列計算を行うと,大きい方から小さい方へ逐次的に実行されているだけのため,全く並列化されていない状況下にあります.
そのため,並列化を行うための改善方法を教えていただきたいです.

MATLAB R2018a academicのものを使用しています.

例を示します.

MATLAB

1clear A 2d = 0; i = 0; 3parfor i = 1:3 4 d = i*2; 5 A(i) = d; 6 for j=5:8 7 fprintf('i=%g,j=%g\n',i,j); 8 end 9end

これを実行すると,私の予測では実験毎にprintされる順番が変化すると思うのですが,
毎回結果が

result

1i=3,j=5 2i=3,j=6 3i=3,j=7 4i=3,j=8 5i=2,j=5 6i=2,j=6 7i=2,j=7 8i=2,j=8 9i=1,j=5 10i=1,j=6 11i=1,j=7 12i=1,j=8

となるため,並列化できていないと考えられます.さらに,iごとに綺麗に整頓されてしまっている状況です.

私の理想としては i がここまで順番にならず,入り乱れることになれば並列化できていると考えています.

ご教授していただけると幸いです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

parforは並列化単位をヨーイドンで始めるのではなく、準備が済んだものから動かしていくようですので、その程度の処理では区別がつかないと思います。
parforの中身にかかる時間を100倍くらいにしてみてください

投稿2020/11/10 06:44

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問