インテル® データ・アナリティクス・アクセラレーション・ライブラリー (インテル® DAAL) は、データの取得から、前処理、変換、データマイニング、モデリング、検証、意思決定まで、すべてのデータ解析段階をカバーする、インテル® アーキテクチャー向けに最適化されたビルディング・ブロックのライブラリーです。

インテル® DAAL は、スタンドアロンおよび次のスイート製品の一部としてインストールされます。

インテル® DAAL は、コミュニティー・ライセンス・プログラム (英語) の下でスタンドアロン・パッケージとしても提供されています。

必要条件

システム要件 (英語)

インテル® DAAL のインストール

インテル® DAAL は <install dir>/daal ディレクトリーにインストールされます。

デフォルトでは、<install dir>/opt/intel/compilers_and_libraries_2019.x.xxx/linux です。

インストールの詳細は、インテル® DAAL インストール・ガイド (英語) を参照してください。

環境変数の設定

  1. ターゲット・アーキテクチャーに応じて適切な <install dir>/daal/bin/daalvars.sh または .csh スクリプトを実行します。
    • IA-32 アーキテクチャー:

      daalvars.sh ia32

    • インテル® 64 アーキテクチャー:

      daalvars.sh intel64

  2. オプション: デフォルトのコンパイラーと異なる Java* コンパイラーを指定します。

    export JAVA_HOME=$PATH_TO_JAVA_SDK

    export PATH=$JAVA_HOME/bin:$PATH

C++ 言語

ステップ 1: インテル® DAAL アプリケーションの自動リンク用コンパイラー・オプションの選択

インテル® C++ コンパイラー 16 以上の -daal オプションを指定するか、統合開発環境 (IDE) でプロジェクトを設定します。

コンパイラー・オプション

IDE オプション

daal または ‑daal=parallel

インテル® DAAL のスレッドバージョンとリンクとリンクします。

Eclipse*:

  1. [Project] > [Properties] > [C/C++ Build] > [Settings] > [Intel C++ Compiler] > [Performance Library Build Components] > [Use Intel(R) Data Analytics Acceleration Library] を選択します。
  2. [Use threaded Intel DAAL (-daal=parallel)] または [Use non-threaded Intel DAAL (-daal=sequential)] を選択します。

‑daal=sequential

インテル® DAAL のシーケンシャル・バージョンとリンクします。

daal コンパイラー・オプションの詳細は、『インテル® コンパイラー・デベロッパー・ガイドおよびリファレンス』を参照してください。

ステップ 2: 最初のインテル® DAAL アプリケーションの作成と実行

この短いアプリケーションは、インテル® DAAL でコレスキー分解を計算します。


/*******************************************************************************
!  Copyright(C) 2014-2019 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;
using namespace daal::services;

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;
}
  1. アプリケーションのコードをコピーして、エディターにペーストします。
  2. ファイルを my_first_daal_program.cpp として保存します。
  3. 選択した -daal コンパイラー・オプション (例えば -daal=parallel) を指定してアプリケーションをコンパイルします。

    icc my_first_daal_program.cpp -daal=parallel -o my_first_daal_program

  4. アプリケーションを実行します。

ステップ 3 (オプション): 異なるコンパイラーでのアプリケーションのビルド

インテル® 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 ライブラリーが依存するライブラリーをリンク行に追加してください。

  • インテル® コンパイラーのインテル® TBB ランタイム・ライブラリー libtbb.so

例えば、インテル® 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 ‑ltbb ‑lpthread -ldl

ステップ 4: インテル® DAAL サンプルコードの実行

  1. サンプルをビルドします。

    C++ のサンプル・ディレクトリーに移動して、make コマンドを実行します。

    cd <install dir>/daal/examples/cpp

    make {libia32|soia32|libintel64|sointel64}

    example=<example_name>

    compiler={intel|gnu}

    threading={parallel|sequential}

    mode=build

    {libia32|soia32|libintel64|sointel64} パラメーターの中から、daalvars.sh スクリプトで指定したアーキテクチャー・パラメーターおよびビルドする実行ファイルの種類と一致するプリフィクス (スタティックの場合は lib、ダイナミックの場合は so) を含むパラメーターを指定します。

    サンプルの名前は daal.lst ファイル内にあります。

    コマンドを実行すると、選択したコンパイラー、アーキテクチャー、ライブラリー拡張子 (a または so) のディレクトリーが作成されます。(例: _results/intel_intel64_a)

  2. サンプルを実行します。

    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* 言語

インテル® DAAL サンプルコードのビルドと実行

Java* のサンプルコードをビルドして実行するには、環境変数の設定時に daalvars.sh スクリプトで指定したアーキテクチャー・パラメーターに対応するバージョンの Java* 仮想マシンを使用してください。

  1. システムで 4GB のメモリーを解放してください。
  2. サンプルをビルドします。

    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> ディレクトリーに生成されます。

  3. サンプルを実行します。

    Java* のサンプル・ディレクトリーに移動して、launcher コマンドを run パラメーター付きで実行します。

    cd <install dir>/daal/examples/java

    launcher.sh {ia32|intel64} run $PATH_TO_JAVAC

    daalvars.sh スクリプトで指定したアーキテクチャー・パラメーターを指定します。

    各サンプルの出力は、指定したアーキテクチャーに応じて、./_results/ia32 または ./_results/intel64 ディレクトリーにある <example name>.res ファイルに書き込まれます。

Python* 言語

ステップ 1: ビルド環境のセットアップ

C++ 言語の説明に従って C++ ビルド環境をセットアップします。

ステップ 2: インテル® DAAL for Python* のインストール

インテル® DAAL の Python* ソースを含むディレクトリーに移動してインストール・スクリプトを実行します。

cd <install dir>/pydaal_sources

<python home>/python setup.py install

このスクリプトはインテル® DAAL for C++ を使用してコードをコンパイルします。また、Python* プログラムでインテル® DAAL を使用するために pyDAAL パッケージをビルドしてインストールします。

ステップ 3: インテル® DAAL サンプルコードの実行

インテル® DAAL サンプルコードを実行するには、pyDAAL のインストールに使用したバージョンの Python* を使用します。

  • インテル® DAAL の Python* サンプルを含むディレクトリーに移動します。

    cd <install dir>/examples/python

  • すべてのサンプルを実行するには、次のコマンドを実行します。

    <python home>/python run_examples.py

    各サンプルの出力は、./_results/intel64/<example name>.res ファイルに書き込まれます。

  • 特定のサンプルを実行するには、次のコマンドを実行します。

    <python home>/python <algorithm name>/<example name>.py

    例: /usr/local/bin/python3.5.1/python cholesky/cholesky_batch.py

    このコマンドは、出力をコンソールに表示します。

トレーニングとドキュメント

製品の詳細については、以下のリソースを参照してください。

リソース

説明

オンライン・トレーニング (英語)

インテル® DAAL の Web セミナーおよび紹介記事。

インテル® DAAL デベロッパー・ガイド:

インテル® DAAL を使用したプログラミングにおける推奨事項 (パフォーマンス向上のヒントを含む)。

インテル® DAAL API リファレンス (英語)

以下のプログラミング言語の詳細な API の説明。

  • C++
  • Java*
  • Python*

インテル® DAAL インストール・ガイド (英語)

製品で利用可能なインストール・オプションの説明とインストール手順が含まれます。

インテル® DAAL リリースノート (英語)

詳細:

  • 製品の新機能
  • ディレクトリー構成
  • ハードウェアとソフトウェアの要件

<install dir>/daal/examples フォルダー

インテル® DAAL API の使用方法を説明するプログラムのコレクション。

インテル® DAAL サンプルコード (英語)

プログラムに追加して Hadoop*、Spark*、MPI (メッセージ・パッシング・インターフェイス)、MySQL* とともに使用できる、さまざまなアルゴリズムのサンプルコードのコレクション。

インテル® ソフトウェア・ドキュメント・ライブラリー (英語)

この製品およびその他のインテル® ソフトウェア製品のオンライン・ドキュメント・ライブラリー。

日本語最新ドキュメント

日本語の最新ドキュメントを入手できます。

日本語最新情報

最新情報を日本語で参照できます。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804