Octave を Windows にインストール(公式インストーラ使用・高速な行列演算環境)
【概要】
Octave は,MATLAB とほぼ互換の数値解析ソフトウェアである。この資料では,Windows に Octave の最新安定版(バージョン 11.3.0)を公式インストーラでインストールする手順と,高速な行列演算のしくみ(BLAS・LAPACK)について説明する。
かつては,行列演算を高速化するために Octave をソースコードから自分でビルドし,最適化された BLAS を組み込む必要があった。現在の公式 Windows インストーラは,最適化済みの BLAS と LAPACK をあらかじめ同梱している(インストーラを実行するだけで高速な演算環境が整う)。そのため,ソースコードからのビルドは一般の利用者には不要である(この点は後の章で説明する)。
【目次】
【関連する外部ページ】
- Octave 公式サイト: https://octave.org/
- Octave 公式マニュアル: https://docs.octave.org/latest/
- Octave パッケージ一覧: https://gnu-octave.github.io/packages/
【サイト内の関連情報】
BLAS と LAPACK とは
Octave の行列演算・ベクトル演算の速さは,内部で使う数値計算ライブラリ BLAS と LAPACK によって決まる。最新の公式 Windows インストーラは,これらの最適化版を同梱している(利用者が別途組み込む必要はない)。
BLAS(Basic Linear Algebra Subprograms)とは,行列演算・ベクトル演算の基本機能をもつプログラム群である。おおまかに次の三段階に分かれている。
- Level 1:ベクトルとベクトルの演算。内積(DOT),y <- ax + y の形の演算(AXPY),ノルム(NORM)など。
- Level 2:行列とベクトルの演算。行列とベクトルの積(y <- Ax),行列の rank-1 更新(A <- A + xy')など。
- Level 3:行列と行列の演算。行列と行列の積(Z <- XY)など。
LAPACK(Linear Algebra PACKage)とは,連立一次方程式,固有値問題,特異値分解など,行列に関する多くの計算を提供するライブラリである。Octave の主要な機能はこの LAPACK を利用している。
最新の公式インストーラに同梱されている BLAS は,マルチスレッドで動作し,複数の CPU コアを使って行列演算を高速に実行する(インストールしただけで最適化の恩恵を受けられる)。
前準備
前もって調べておく事項
- 使用中の Windows が 64 ビット版であること。現在の Octave は 64 ビット版のみが公式に提供されている(32 ビット版はすでに提供終了)。
Octave のインストール手順
- ウェブページを開く
- 「Microsoft Windows」の項目にある,最新の 64 ビット版インストーラを選ぶ
推奨されるインストーラは octave-11.3.0-w64-installer.exe である(バージョン番号は最新のものに読み替える)。
- ダウンロードが始まる
- ダウンロードした .exe ファイルを実行
- ようこそ画面では「Next」をクリック
- ライセンス条項の確認。同意できる場合のみ「Next」をクリックする。
- インストールオプションは,既定(デフォルト)のままでよい。「Next」をクリック。
- 次のインストールオプションも,既定(デフォルト)のままでよい。「Next」をクリック。
- インストールディレクトリ(フォルダ)は,既定(デフォルト)のままでよい。「Install」をクリック。
- インストールが始まる。
- インストール完了の確認。「Finish」をクリック。
動作確認
- スタートメニューから Octave を起動する。
- 行列と行列の積を計算し,実行時間を測る。Octave のコマンドウィンドウで次を入力する。
X = rand(2000); Y = rand(2000); tic(); Z = X * Y; toc();
- 簡単なベクトル演算を試す。
x = [1 2 3] y = [4 5 6] x + y x * y' - Octave の終了
exit
拡張パッケージ(旧 octave-forge)の利用
かつて octave-forge と呼ばれた拡張機能群は,現在は個々の Octave パッケージとして配布されている。公式 Windows インストーラには,よく使うパッケージがあらかじめ同梱されている(多くの場合,別途インストールする必要はない)。
同梱済みパッケージの一覧は,次のコマンドで確認できる。
pkg list
一覧にないパッケージを追加したいときは,インターネットに接続した状態で,次の形式でインストールする(例として統計パッケージ statistics を追加する)。
pkg install -forge statistics
インストールしたパッケージは,使う前に読み込む必要がある。
pkg load statistics
help dlmread
グラフ描画
Octave は,計算結果を図として描画できる。現在の公式インストーラは描画機能を同梱しているので,追加の設定なしにそのまま描画できる。
x = 0:0.2:1.2;
plot(x, sin(x))
ソースコードからビルドしたい場合の補足
最新版の公式 Windows インストーラは,最適化済みの BLAS・LAPACK と主要な拡張パッケージを同梱している。そのため,一般の利用者がソースコードから Octave をビルドする必要はない(インストーラの実行だけで高速な演算環境が整う)。
開発版を試したい,特定の最適化を自分で施したいなど,どうしてもソースコードからビルドしたい場合は,公式が配布するソース一式(例:octave-11.3.0.tar.xz)を用いる。ビルド方法は Octave 公式マニュアルおよび Octave Wiki に最新の手順がまとめられている。ビルドは環境依存の要素が多いため,一次情報である公式ドキュメントに従うことを勧める。
演習
Octave を起動し,次の計算を順に実行して,結果と実行時間を確認しなさい。
X = rand(2000,2000);
Y = rand(2000,2000);
tic(); Z = X * Y; toc() % 行列と行列の積
tic(); [L, U, P] = lu(X); toc() % LU 分解
tic(); [Zi, RCOND] = inv(X); toc() % 逆行列
tic(); [U2, S, V] = svd(X); toc() % 特異値分解
tic(); [v, D] = eig(cov(X)); toc() % 分散共分散行列の固有値と固有ベクトル