インテル® Data Analytics Acceleration Library (インテル® DAAL) は、データの取得から、前処理、変換、データマイニング、モデリング、検証、意思決定まで、すべてのデータ解析段階をカバーする、インテル® アーキテクチャー向けに最適化されたビルディング・ブロックのライブラリーです。
インテル® DAAL は、スタンドアロンまたは次のスイート製品の一部としてインストールされます。
インテル® Parallel Studio XE 2016 Composer Edition、Professional Edition、または Cluster Edition
https://software.intel.com/en-us/intel-parallel-studio-xe からダウンロードできます。
システム要件 (英語)
インテル® DAAL は <install dir>/daal ディレクトリーにインストールされます。
デフォルトでは、<install dir> は /opt/intel/compilers_and_libraries_2016.x.xxx/linux です。
インストールの詳細は、インテル® DAAL インストール・ガイド (英語) を参照してください。
インテル® C++ コンパイラー 16 の -daal オプションを指定するか、統合開発環境 (IDE) でプロジェクトを設定します。
-daal コンパイラー・オプションの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』 (デフォルトの場所は /opt/intel/documentation_2016/ja/compiler_c/common/core/index.htm) を参照してください。
この短いアプリケーションは、インテル® DAAL でコレスキー分解を計算します。
/*******************************************************************************
!Copyright(C) 2014-2015 Intel Corporation. All Rights Reserved.
!
!The source code, information and material ("Material") contained herein is
!owned by Intel Corporation or its suppliers or licensors, and title to such
!Material remains with Intel Corporation or its suppliers or licensors. The
!Material contains proprietary information of Intel or its suppliers and
!licensors. The Material is protected by worldwide copyright laws and treaty
!provisions. No part of the Material may be used, copied, reproduced,
!modified, published, uploaded, posted, transmitted, distributed or disclosed
!in any way without Intel's prior express written permission. No license
!under any patent, copyright or other intellectual property rights in the
!Material is granted to or conferred upon you, either expressly, by
!implication, inducement, estoppel or otherwise. Any license under such
!intellectual property rights must be express and approved by Intel in
!writing.
!
!*Third Party trademarks are the property of their respective owners.
!
!Unless otherwise agreed by Intel in writing, you may not remove or alter
!this notice or any other notice embedded in Materials by Intel or Intel's
!suppliers or licensors in any way.
!
!*******************************************************************************
!Content:
! Cholesky decomposition sample program.
!******************************************************************************/
#include "daal.h"
#include <iostream>
using namespace daal;
using namespace daal::algorithms;
using namespace daal::data_management;
const size_t dimension = 3;
double inputArray[dimension *dimension] =
{
1.0, 2.0, 4.0,
2.0, 13.0, 23.0,
4.0, 23.0, 77.0
};
int main(int argc, char *argv[])
{
/* 配列から入力数値テーブルを作成 */
SharedPtr<NumericTable> inputData = SharedPtr<NumericTable>(new Matrix<double>(dimension, dimension, inputArray));
/* デフォルトの手法を使用してコレスキー分解を計算するアルゴリズム・オブジェクトを作成 */
cholesky::Batch<> algorithm;
/* アルゴリズムの入力を設定 */
algorithm.input.set(cholesky::data, inputData);
/* コレスキー分解を計算 */
algorithm.compute();
/* コレスキー係数のポインターを取得 */
SharedPtr<Matrix<double> > factor =
staticPointerCast<Matrix<double>, NumericTable>(algorithm.getResult()->get(cholesky::choleskyFactor));
/* コレスキー係数の最初の要素を出力 */
std::cout << "The first element of the Cholesky factor: " << (*factor)[0][0];
return 0;
}
アプリケーションのコードをコピーして、エディターにペーストします。
ファイルを my_first_daal_program.cpp として保存します。
選択した -daal コンパイラー・オプション (例えば -daal=parallel) を指定してアプリケーションをコンパイルします。
icc my_first_daal_program.cpp -daal=parallel -o my_first_daal_program
アプリケーションを実行します。
インテル® DAAL のスレッドモードとリンク方法に応じて、リンク行で次のインテル® DAAL ライブラリーを指定します。
シングルスレッド (スレッド化されていない) インテル® DAAL |
マルチスレッド (内部的にスレッド化されている) インテル® DAAL |
|
---|---|---|
スタティック・リンク |
libdaal_core.a libdaal_sequential.a |
libdaal_core.a libdaal_thread.a |
ダイナミック・リンク |
libdaal_core.so libdaal_sequential.so |
libdaal_core.so libdaal_thread.so |
これらのライブラリーは、アーキテクチャー固有のディレクトリー <install dir>/daal/lib/{ia32|intel64}_lin にあります。アーキテクチャーのパラメーター (ia32 または intel64) には、環境変数の設定時に daalvar.sh スクリプトで指定したパラメーターと同じパラメーターを指定します。
リンク方法に関係なく、インテル® DAAL ライブラリーが依存するライブラリーをリンク行に追加してください。
例えば、インテル® DAAL のマルチスレッド・ライブラリーをスタティックにリンクしてインテル® 64 アーキテクチャー向けのアプリケーションをビルドする場合は、次のように指定します。
icc my_first_daal_program.cpp -o my_first_daal_program $DAALROOT/lib/intel64_lin/libdaal_core.a $DAALROOT/lib/intel64_lin/libdaal_thread.a -liomp5 -ltbb -lpthread -ldl
サンプルをビルドします。
C++ のサンプル・ディレクトリーに移動して、make コマンドを実行します。
cd <install_dir>/daal/examples/cpp
make {libia32|soia32|libintel64|sointel64}
example=<example_name>
compiler={intel|gnu}
mode=build
{libia32|soia32|libintel64|sointel64} パラメーターの中から、daalvars.sh スクリプトで指定したアーキテクチャー・パラメーターおよびビルドする実行ファイルの種類と一致するプリフィクス (スタティックの場合は lib、ダイナミックの場合は so) を含むパラメーターを指定します。
サンプルの名前は daal.lst ファイル内にあります。
コマンドを実行すると、選択したコンパイラー、アーキテクチャー、ライブラリー拡張子 (a または so) のディレクトリー (例えば、_results/intel_intel64_a) が作成されます。
サンプルを実行します。
C++ のサンプル・ディレクトリーに移動して、make コマンドを run モードで実行します。例えば、daalvars スクリプトで intel64 ターゲットを指定した場合、次のように指定します。
cd <install_dir>/daal/examples/cpp
make libintel64 example=cholesky_batch.cpp mode=run
make コマンドを実行すると、インテル® 64 アーキテクチャー用のスタティック・ライブラリーと cholesky_batch.cpp サンプルがインテル® コンパイラーで (デフォルトの場合) ビルドされ、生成されたファイルが実行されます。
Java* のサンプルコードをビルドして実行するには、環境変数の設定時に daalvars.sh スクリプトで指定したアーキテクチャー・パラメーターに対応するバージョンの Java* 仮想マシンを使用してください。
サンプルをビルドします。
Java* のサンプル・ディレクトリーに移動して、launcher コマンドを build パラメーター付きで実行します。
cd <install_dir>/daal/examples/java
launcher.sh build $PATH_TO_JAVAC
コマンドを実行すると、実行ファイル *.class (例えば、CholeskyBatch.class) が
<install dir>/daal/examples/java/com/intel/daal/examples/<example name> ディレクトリーに生成されます。
サンプルを実行します。
Java* のサンプル・ディレクトリーに移動して、make コマンドを run パラメーター付きで実行します。
cd <install_dir>/daal/examples/java
launcher.sh {ia32|intel64} run $PATH_TO_JAVAC
daalvar.sh スクリプトで指定したアーキテクチャー・パラメーターを指定します。
指定したアーキテクチャーに応じて、./_results/ia32 または ./_results/intel64 ディレクトリーにある <example name>.res ファイルに結果が出力されます。
ドキュメント |
説明 |
---|---|
次の情報が含まれます。
|
|
製品で利用可能なインストール・オプションの説明とインストール手順が含まれます。 |
|
インテル® DAAL についての次の情報が含まれます。
|
|
<install dir>/daal/examples フォルダー |
インテル® DAAL API の使用方法を説明するプログラムのコレクション。 |
/opt/intel/samples_2016/en/daal フォルダー (デフォルトのインストール・パスの場合) |
プログラムに追加して Hadoop*、Spark*、MPI (メッセージ・パッシング・インターフェイス)、mySQL* とともに使用できる、さまざまなアルゴリズムのコードサンプルのコレクション。 |
日本語の最新ドキュメントを入手できます。 | |
最新情報を日本語で参照できます。 |
Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
Java は、Oracle および / または関連会社の登録商標です。
© 2015 Intel Corporation. 無断での引用、転載を禁じます。
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 |