[Big Data] Oracle R Distribution Performance Benchmark

原文はこちら。
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ノードで構成
最初のグラフでは、劇的に性能が向上していることがわかります。例えば、特異値分解をOracle R DistributionとMKLの組み合わせで実行した場合、利用しなかった場合に比べて、4スレッドの場合は20倍も速く実行します。8スレッドの場合は29倍も速くなります。コレスキー分解の場合、Oracle R DistributionとMKLの組み合わせでは4スレッドで18倍、8スレッドで30倍も速くなります。

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 件のコメント:

コメントを投稿