コードの合計CPU時間を(foreach
、パッケージdoParallel
から)実行しようとしていますが、これを行う方法についてはわかりません。私はproc.time()
を使用しましたが、実際の時間の差を返します。私がsystem.time()
を読んだところから、それはちょうどproc.time()
と同じことをするべきです。並行して実行されるRコードの合計CPU時間を取得するにはどうすればよいですか?R foreachで合計CPU時間を取得する方法は?
1
A
答えて
1
少しのトリックは、計算結果を一緒に測定したランタイムをlist
で返すことです。以下の例では、system.time()
を使用してランタイムをproc.time()
と同じにしています。
注:これは私のブログ記事R with Parallel Computing from User Perspectivesの変更例です。
# fake code to show how to get runtime of each process in foreach
library(foreach)
library(doParallel)
# Real physical cores in my computer
cores <- detectCores(logical = FALSE)
cl <- makeCluster(cores)
registerDoParallel(cl, cores=cores)
system.time(
res.gather <- foreach(i=1:cores, .combine='list') %dopar%
{
s.time <- system.time({
set.seed(i)
res <- matrix(runif(10^6), nrow=1000, ncol=1000)
res <- exp(sqrt(res)*sqrt(res^3))
})
list(result=res, runtime=s.time)
}
)
stopImplicitCluster()
stopCluster(cl)
したがって、ランタイムはres.gather
に保存され、あなたは簡単にそれを得ることができます。したがって、それらを追加すると、並列プログラムの合計時間の数がわかります。
> res.gather[[1]]$runtime
user system elapsed
0.42 0.04 0.48
> res.gather[[2]]$runtime
user system elapsed
0.42 0.03 0.47
> res.gather[[2]]$runtime[3] + res.gather[[2]]$runtime[3]
elapsed
0.94
最後に、2つのRセッションの実行時間は、Rマスタのアカウンティング待ち時間なしで0.94秒です。
関連する問題
- 1. CPU + GPUの合計時間を計算する方法
- 2. メソッドレベルの取得は、MBeansで費やされるCPU時間の合計です。
- 3. SQLで時間と分の合計を取得する方法
- 4. Rubyベンチマークがスレッド内のCPU時間の合計を計算する方法
- 5. Oracleでの合計作業時間を取得する方法は?
- 6. 合計分と時間を取得
- 7. iOS/MediaPlayerで合計再生時間を含むアルバムリストを取得する方法
- 8. Rで合計期間を取得する期間を追加する方法は?
- 9. Omnet ++の全サーバーの合計サービス時間を取得する方法は?
- 10. pythonでtimedeltaの合計時間と分を取得する方法
- 11. 時刻の範囲内での合計時間数tsqlの取得方法
- 12. Rは時刻を合計時間に変換する関数
- 13. Googleマップでウェイポイントを経由して合計時間と合計距離を取得する方法
- 14. PHPスクリプト処理/ cpu時間(壁時計時間ではない)
- 15. mysql/mariadb dateカラム時間合計時間を取得するには
- 16. Webtestrequestから通話合計時間を取得するには
- 17. 2つのdatetimeフィールドの合計時間を取得する方法
- 18. Androidでの合計通話時間を取得する
- 19. wpfコントロールの合計レンダリング時間を計算する方法は?
- 20. 計算された列の時間を取得する方法
- 21. InsightsClientを使用してazure WebアプリケーションのCPU時間を取得する方法
- 22. Incl CPU時間、Excl CPU時間、Incl実CPU時間、Excl実CPU時間の意味は何ですか?
- 23. T-SQLで時間(7)データ型を合計する方法は?
- 24. Visual C++:CPU時間を取得するには?
- 25. ASP - 時間範囲内の合計時間と分を計算する方法
- 26. 列の合計を取得して合計レコードを同時に取得する方法
- 27. 合計ページ読み込み時間を取得する
- 28. 合計行時間と分を取得する
- 29. SQLサーバー:売り上げ合計時間を取得するProductID
- 30. コンパイルされた合計時間を取得する
ありがとうございました! – Plinth