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

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

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

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

1回答

740閲覧

doMCでplotした図が保存されない

shimiken

総合スコア368

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2019/02/11 13:01

以下のcodeで複数の図を作っています。

R

1for(i in 1:4) { 2 png(paste(i,".png", sep="")) 3 plot(i,i) 4 dev.off() 5}

これをdoMCで高速化するために、以下のように変更しました。

R

1library("doMC") 2registerDoMC(4) 3foreach(i=1:4) %dopar% { 4 png(paste(i,".png",sep="")) 5 plot(i, i) 6 dev.off() 7}

しかし、図が作成&保存されません。
どのように修正すればよいでしょうか。


OS X El Capitan
プロセッサ 3.4 GHz Intel Core i5
R version 3.3.2

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

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

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

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

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

guest

回答1

0

試してみたことがないので想像ですが、図を描くプロセスを並列化してしまった場合、dev.cur()とplotの関係が必ずしも意図通りにならなさそうな気がします。

だいたい、作図の律速はディスクへの書き込みステップになるでしょうから、並列化が仮にうまくいったとしても大した効果は見込めないのでは。普通にループを回すのが無難なように見えます。

投稿2019/02/20 17:06

KojiDoi

総合スコア13671

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

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

shimiken

2019/02/21 08:38

ご回答ありがとうございます。 別の並列化のパッケージであるdoSNOWでは並列化&高速化できています。また図も意図通りに作製&保存されています。 なのでplotの並列化の一般的な問題ではなくて、doMCに特異点な問題が発生しているのではないかと考えています。 plotではない計算ならばdoMCでも並列化&高速化できています。 そしてその場合はdoSNOWよりもdoMCのほうが計算が速いです。 よって、できればdoMCを使いたいと考えています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問