https://blogs.oracle.com/R/entry/oracle_r_distribution_performance_benchmark
Oracle R DistributionはMKLとの利用で劇的に性能向上します。
Rベンチマークとして広く認知されているR-benchmark-25.Rのテストスクリプトを使い、Intelから提供されているMath Kernel Library(MKL)を使った場合と使わなかった場合でのOracle R Distributionの性能を比較してみました。ベンチマークの結果、Oracle R Distributionは動的にロードされる高性能ライブラリと共に使うと、劇的に処理速度が速くなることがわかりました。これらの高性能ライブラリが実行する計算を呼び出す64ビットアーキテクチャ長でのデータ分析や、特定のR関数内での並行処理の利用などによって得られるすばらしい性能改善を、R言語をお使いの方は、オープンソースのR言語ですぐに実感頂けます。コミュニティが開発したテストは、行列計算や行列関数、プログラム制御、行列の乗算、コレスキー分解(Cholesky decomposition)、特異値分解(Singular Value Decomposition/SVD)、主成分分析(Principal Component Analysis/PCA)、線形判別分析(Linear Discriminant Analysis)で構成されています。こうした計算は、多くの現実世界での問題の主要コンポーネントを形作っており、計算時間の多くをしめることがよくあります。こうした計算の性能向上ができれば、より迅速な判断のためにより速く結果を得ることができます。
報告されているベンチマークの結果はIntel MKLを用いて実施したものですが、Oracle R DistributionはまたAMD Core Math Library (ACML) やSolaris Sun Performance Libraryもサポートしています。
Oracle R Distribution 2.15.1 x64 ベンチマーク結果(時間の単位は秒)
ORD +内部 BLAS/LAPACK 1スレッド | ORD + MKL 1スレッド | ORD + MKL 2スレッド | ORD + MKL 4スレッド | ORD + MKL 8スレッド | 性能比 ORD + MKL 4スレッド | 性能比 ORD + MKL 8スレッド | |
行列計算 | 11.2 | 1.9 | 1.3 | 1.1 | 0.9 | 9.2x | 11.4x |
行列関数 | 7.2 | 1.1 | 0.6 | 0.4 | 0.4 | 17.0x | 17.0x |
プログラム制御 | 1.4 | 1.3 | 1.5 | 1.4 | 0.8 | 0.0x | 0.8x |
行列の乗算 | 517.6 | 21.2 | 10.9 | 5.8 | 3.1 | 88.2x | 166.0x |
コレスキー分解 | 25 | 3.9 | 2.1 | 1.3 | 0.8 | 18.2x | 29.4x |
特異値分解 | 103.5 | 15.1 | 7.8 | 4.9 | 3.4 | 20.1x | 40.9x |
主成分分析 | 490.1 | 42.7 | 24.9 | 15.9 | 11.7 | 29.8x | 40.9x |
線形判別分析 | 419.8 | 120.9 | 110.8 | 94.1 | 88.0 | 3.5x | 3.8x |
- OS: Linux 5.5
- ノードあたりのRAM: 47GB
- CPU:3.07GHz (24コア)
- クラスタ構成:あり、3ノードで構成
2個目のグラフでは、3つの長時間実行テストに着目しています。行列の乗算は4スレッドで88倍、8スレッドで166倍速く実行できます。主成分分析は4スレッドで30倍、8スレッドで50倍速く、線形判別分析は3倍速く実行できます。
こうしたレベルの性能改善により、アプリケーションの実行時間を短縮でき、その結果インタラクティブかつ動的に生成された結果を容易に利用できるようになります。注意頂きたいのは、Oracle R DistributionとMKLの組み合わせはクライアント側の性能改善だけでなく、Oracle R EnterpriseのEmbedded R Execution(組み込みR言語の実行)を使って実行されるRスクリプトとの組み合わせで使われる場合の性能改善にも、影響があります。こうしたRスクリプトはデータベースサーバーマシンで実行され、同じように性能改善を享受しているのです。
0 件のコメント:
コメントを投稿