インテル® マス・カーネル・ライブラリー 10.0 Linux* 版
リリースノート

目次

概要
インテル® MKL の新機能
動作環境
インストール・ノート
ドキュメント
既知の制限事項
テクニカルサポートとフィードバック
関連製品とサービス
著作権と商標について

 

概要

 

インテル® マス・カーネル・ライブラリー (インテル® MKL) は、工学、科学、金融系ソフトウェアの開発者向けに、線形代数ルーチン、高速フーリエ変換、ベクトル・マス・ライブラリー関数、乱数生成関数を提供します。これらのルーチンや関数はすべて、最新のインテル® Pentium® 4 プロセッサー、ストリーミング SIMD 拡張命令 3 (SSE3) 対応 64 ビット インテル® Xeon® プロセッサー、インテル® Itanium® 2 プロセッサー用に最適化されています。本ソフトウェアは、インテル以外の (x86) プロセッサーでも問題なく動作します。

インテル® MKL は、線形代数機能として、LAPACK (ソルバーおよび固有ソルバー) に加え、複雑な数学ソフトウェアで必要な BLAS レベル 1 (ベクトル演算)、レベル 2 (ベクトル-行列演算)、レベル 3 (行列-行列演算) を提供します。FORTRAN 90/95 用に、少ない引数で LAPACK ドライバー・サブルーチンや計算サブルーチンを呼び出すことができるインターフェイスも用意しています。また、ScaLAPACK (スケーラブル LAPACK) を備え、PBLAS (並列基本線形代数) といった機能をサポートしています。スパース連立方程式の解の算出用には、スパース BLAS レベル 1、レベル 2、レベル 3 のサポートに加え、直接法スパースソルバーおよび反復法スパースソルバーも用意しています。

インテル® MKL は、(変換の長さが 2 の累乗に限定されない) 混合基数に対応する多次元離散フーリエ変換 (1 次元、2 次元、3 次元) を備え、 クラスター上で利用可能なこれらの関数の分散型バージョンも提供しています。また、偏微分方程式を解くために、反復ソルバーの収束に役立ついくつかのプリコンディショナーも用意されています。最適化 [Trust Region] ソルバーは、非線形最小二乗問題 (境界制約のあるなしにかかわらず) の解を効率的に求めるためのルーチンを提供します。

インテル® MKL のベクトル化された超越関数 (ベクトル・マス・ライブラリー (VML) と呼ぶ) は、多くのプロセッサー上で、LibM (スカラー) 関数よりも優れたパフォーマンスと精度を実現します。ベクトル・スタティスティカル・ライブラリー (VSL) は、さまざまな確率分布および畳み込み/相関ルーチン用の高性能かつベクトル化された乱数ジェネレーターを提供します。また、浮動小数点値の区間に対して演算を行う関数群も用意しています。区間演算パッケージには、区間線形連立方程式のソルバー、逆区間行列のソルバー、および区間行列の正則性/特異性をテストするための関数が含まれています。

インテル® MKL の BLAS、LAPACK、直接法スパースソルバー (DSS)、FFT、VML ライブラリー関数、最適化ソルバーは、OpenMP* を使用してスレッド化されています。インテル® MKL は完全にスレッドセーフです。

 

インテル® MKL 10.0 の新機能

 

インテル® MKL 9.1 からの変更点

インテル® MKL 9.1 からのパフォーマンスの向上

その他の機能の向上

 

動作環境

 

ハードウェア

インテル® MKL をインストールして使用するには、サポートしているプロセッサーを搭載したシステムと 700MB のディスク空き容量 が必要です (ホストシステムでは、インストール時、ファイルのダウンロードおよびテンポラリー・ファイル用に別途 400MB の空き容量も必要)。

サポートしているプロセッサー - インテル® MKL は、以下のプロセッサーをサポートしています。

ソフトウェア

インテル® MKL を使用するには、サポートしているコンパイラーおよび MPI 実装が必要です。

以下のオペレーティング・システムをサポートしています。

以下の C/C++ コンパイラーおよび Fortran コンパイラーをサポートしています。

インテル® MKL は、以下の MPI 実装をサポートしています。

注意:

 

インストール・ノート

 

インテル® MKL のインストール時に、インストールに関するガイダンスが提供されます。ステップごとにインストール手順を説明したファイル (ファイル名: Install.txt) へのリンクが示されます。このファイルは doc ディレクトリー以下にあります。

 

ドキュメント

 

ドキュメント・インデックス (doc ディレクトリーにある Doc_Index.htm) には、インテル® MKL の主要なドキュメントがリストされています。すべてのドキュメントの一覧は、『ユーザーズガイド』の第 3 章を参照してください。

 

既知の制限事項

 

ポアソン・ライブラリー・ルーチンにおける制限事項:

インテル® MKL 10.0 におけるスパースソルバーおよび最適化ソルバーの制限事項:

インテル® MKL 10.0 における FFT 関数の制限事項:

インテル® MKL 10.0 における LAPACK 関数の制限事項:

インテル® MKL のベクトル・マス・ライブラリー (VML) 関数とベクトル・スタティスティカル・ライブラリー (VSL) 関数における制限事項:

インテル® MKL 10.0 における区間演算関数の制限事項:

インテル® MKL 10.0 における ScaLAPACK 関数の制限事項:

ILP64 バージョンのインテル® MKL における制限事項:

Java* サンプルにおける制限事項:

LAPACK の Fortran 95 インターフェイスにおける制限事項:

g77 コンパイラー・サポートにおける制限事項:

64 ビット インテル® プロセッサー上では、GNU Fortran コンパイラー (バージョン 3.2.3) でコンパイルされたユーザープログラムは、-fno-f2c GNU Fortran コンパイラー・フラグが使用されていない場合、単精度値を返すインテル® MKL の関数で正しくない結果を返すことがあります。GNU Fortran コンパイラーは、デフォルトでリターンレジスターの最初の 8 バイトが REAL*4 である (倍精度値として表現される) と想定しますが、インテル® Fortran コンパイラーは、リターンレジスターの最初の 4 バイトが REAL*4 であると想定します。インテル® MKL の動作は、インテル® Fortran コンパイラーの動作と互換性があります。GNU Fortran コンパイラーの動作は、-fno-f2c フラグを使用することでインテル® Fortran コンパイラーと互換になるように変更されます。

FFT、VML、VSL、および PDE サポート関数は Fortran 77 から呼び出すことはできません。これらのコンポーネントは、(構造などが) Fortran-90/95 インターフェイス固有なため、Fortran 77 では使用できません。

インテル® コンパイラー 10.0 でインテル® MKL のサンプル・ソース・コードをコンパイルする場合は、-Od オプションを使用することを推奨します。現在のビルドスクリプトは、このオプションを指定しません。また、これらのコンパイラーでは、デフォルトでベクトル化を行うように変更されました。

VSL 関数はすべて、エラーステータスを返します。例えば、VSL の API のデフォルトは、以前のバージョンのインテル® MKL ではサブルーチン形式でしたが、現在では関数形式です。つまり、Fortran のユーザーは、VSL ルーチンを関数として呼び出す必要があります。

         関数の呼び出し例:

 errstatus = vslrnggaussian(method, stream, n, r, a, sigma)

         サブルーチンの呼び出し例:

 call vslrnggaussian(method, stream, n, r, a, sigma)

ただし、インテル® MKL では、下位互換用にサブルーチン形式も用意しています。サブルーチン形式のインターフェイスを使用するには、手動で include\mkl.fi ファイル内の include 'mkl_vsl.fi' という行を include 'mkl_vsl_subroutine.fi' に変更し、mkl_vsl.fi ファイルの代わりに mkl_vsl_subroutine.fi ファイルを組み込みます。VSL の API 変更は、C/C++ ユーザーには影響しません。

ハイパースレッディング・テクノロジー (HT テクノロジー) は、各スレッドが異なる演算を実行している場合、またはプロセッサー上に十分に活用されていないリソースがある場合に特に有効です。インテル® MKL は、このどちらにもあてはまりません。ライブラリーのスレッド化された部分が効率的に (利用可能なリソースの大半を使用して) 実行され、各スレッドで同一の演算を行っているためです。HT テクノロジーを有効にせずにインテル® MKL を使用すると、より高いパフォーマンスを得られることがあります。

メモリー割り当て: より高いパフォーマンスを得るため、インテル® MKL によって割り当てられたメモリーは解放されません。これは仕様で、インテル® MKL ルーチンがメモリーバッファーを操作するのは 1 回 (割り当て) だけです。ツールによ チては、これをメモリーリークとして報告することがあるため、注意してください。必要に応じて、メモリーを解放することができます。プログラムでインテル® MKL の MKL_FreeBuffers() 関数を使用するか、各呼び出しの後に MKL_DISABLE_FAST_MM 環境変数を設定します (詳細は、doc ディレクトリーにある『ユーザーズガイド』を参照してください)。しかし、これらの方法を使用してメモリーを解放しても、メモリーリークが報告されなくなるとは限りません。実際、ライブラリーを複数回呼び出す場合、各呼び出しごとに新しいメモリーの割り当てが必要になり、報告される数は増えることもあります。上記の方法で解放されなかったメモリーは、プログラムの終了時にシステムによって解放されます。この制限を回避するには、上記のようにメモリー管理を無効にします。

Red Hat Enterprise Linux* 3.0 では、正しいサポート・ライブラリーがリンクされていることを確認するために、環境変数 LD_ASSUME_KERNEL を設定する必要があります。
例: 'export LD_ASSUME_KERNEL=2.4.1'

その他: GMP および区間ソルバーのコンポーネントは、ソルバー・ライブラリーにあります。インテル® 64 および IA-64 プラットフォームの場合、これらのコンポーネントは LP64 インターフェイスのみサポートしています。

 

テクニカルサポートとフィードバック

 

セルフヘルプおよびユーザーフォーラム

チュートリアル、基本操作のヒント、製品に関する既知の問題点、製品のエラッタ、互換性に関する情報、FAQ など、多くのセルフヘルプ情報については、インテル® ソフトウェア開発製品テクニカルサポート Web サイト (http://www.intel.com/software/products/support/index.htm) (英語) を参照してください。問題に対する解決策を素早く得たり、製品を効果的に使用するための情報を入手することができます。

インテル® MKL ユーザーフォーラム (http://softwareforums.intel.com/ids/board?board.id=MKL) (英語) は、ユーザー同士の意見交換や専門家への質問などの場としてご利用いただけます。

問題の送信方法

インテルでは、お客様からのフィードバックを非常に重視しております。本製品で提供されるツールについてテクニカルサポートを利用したり、製品アップデートを入手するには、インテル® ソフトウェア開発製品レジストレーション・センター (https://registrationcenter.intel.com/) で登録する必要があります。

インテル® MKL に関する質問または問題は、サポート (https://registrationcenter.intel.com/support/) までお問い合わせください。

注意: 特定の国に対してアクセスを制限する必要があるソースコードが含まれている場合は、サポートが可能かどうかを判断するため、ソースコードを送る前にサポート担当者に確認してください。

インテル® プレミアサポートから問題を送信する場合は、次の手順に従ってください。

  1. ブラウザーで Java および Java スクリプトが有効になっていることを確認します。
  2. http://premier.intel.com (英語) にアクセスします。
  3. ログイン名とパスワードを入力します。どちらも大文字と小文字が区別されます。半角英数字と一部の記号のみ使用できます。
  4. [Submit Issues] ボタンをクリックします。
  5. [Product Type] ドロップダウン・リストから [Development Environment (tools,SDV,EAP)] を選択します。
  6. ソフトウェアまたはライセンスに関連する問題の場合は、[Product Name] ドロップダウン・リストから [Intel® MKL for Linux*] を選択します。
  7. 質問を入力し、ウィンドウの残りのフィールドも記入します。

問題の報告や製品に対するご意見を送信する際は、次のガイドラインに従ってください。

  1. 問題、その他ご意見を入力してください。
    問題を報告する場合は、その問題を再現できるように、できるだけ具体的に (コンパイラーやリンク・コマンドライン Eオプションなども含めて) 説明してください。可能な場合は、テストファイル (小さなもの) を含めるようにしてください。
  2. システム構成情報を入力します。
    オペレーティング・システム、インストールされているアプリケーションの名前とバージョンなど、問題の特定に役立つと思われるすべての情報が含まれていることを確認してください。

 

関連製品とサービス

 

インテル® ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/software/products/ を参照してください。関連製品には次のものが含まれます。

 

権利の帰属

 

エンド・ユーザー・ソフトウェア使用許諾契約書 (End User License Agreement) で言及されているように、製品のドキュメントおよび Web サイトの両方で完全なインテル製品名の表示 (例えば、"インテル® マス・カーネル・ライブラリー") とインテル® MKL ホームページ (www.intel.com/software/products/mkl) (英語) へのリンク/URL の提供を正確に行うことが最低限必要です。

インテル® MKL の一部の基となった BLAS の原版は http://www.netlib.org/blas/index.html (英語) から、LAPACK の原版は http://www.netlib.org/lapack/index.html (英語) から入手できます。LAPACK の開発は、E.Anderson、Z. Bai、C. Bischof、S. Blackford、J. Demmel、J. Dongarra、J. Du Croz、A. Greenbaum、S. Hammarling、A. McKenney、D. Sorensen らによって行われました。LAPACK 用 FORTRAN 90/95 インターフェイスは、http://www.netlib.org/lapack95/index.html (英語) にある LAPACK95 パッケージと類似しています。すべてのインターフェイスは、純粋なプロシージャー用に提供されています。

インテル® MKL クラスター・エディションの一部の基となった ScaLAPACK の原版は http://www.netlib.org/scalapack/index.html (英語) から入手できます。ScaLAPACK の開発は、L.S. Blackford、J. Choi、A.Cleary、E.D'Azevedo、J.Demmel、I. Dhillon、J. Dongarra、S. Hammarling、G. Henry、A. Petitet、K.Stanley、D.Walker、R. C. Whaley らによって行われました。

インテル® MKL 10.0 の PARDISO は、バーゼル大学 (University of Basel) から無償で提供されている PARDISO 3.2 (http://www.pardiso-project.org (英語)) と互換性があります。

本リリースのインテル® MKL の一部の FFT 関数は、カーネギーメロン大学からライセンスを受けて、SPIRAL ソフトウェア生成システム (http://www.spiral.net/ (英語)) によって生成されました。本リリースのインテル® MKL の一部の FFT 関数は、ヒューストン大学からライセンスを受けて、UHFFT ソフトウェア生成システムによって生成されました。SPIRAL の開発は、Markus Püschel、José Moura、Jeremy Johnson、David Padua、Manuela Veloso、Bryan Singer、Jianxin Xiong、Franz Franchetti、Aca Gacic、Yevgen Voronenko、Kang Chen、Robert W.Johnson、Nick Rizzolo らによって行われました。

 

著作権と商標について

 

本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) にも一切応じないものとします。

インテルによる書面での同意がない限り、インテル製品は、インテル製品の停止を起因とする人身傷害または死亡を想定して設計されていません。

インテル製品は、予告なく仕様や説明が変更される場合があります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。

本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。

最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。

本書で紹介されている注文番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。

インテル・プロセッサー・ナンバーはパフォーマンスの指標ではありません。プロセッサー・ナンバーは同一プロセッサー・ファミリー内の製品の機能を区別します。異なるプロセッサー・ファミリー間の機能の区別には用いません。詳細については、http://www.intel.co.jp/jp/products/processor_number/ を参照してください。

本資料には、開発の設計段階にある製品についての情報が含まれています。

Intel、インテル、Intel ロゴ、Intel Core、Celeron、Itanium、Pentium、VTune、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

© 2007 Intel Corporation. 無断での引用、転載を禁じます。