トップページ -> 情報工学,情報スキルの教材 -> Windows で開発環境やツールを整備 -> C プログラムから GSL (GNU Scientific Library) の機能を呼び出すプログラムの見本と実行手順
[サイトマップへ]  

C プログラムから GSL (GNU Scientific Library) の機能を呼び出すプログラムの見本と実行手順

この Web ページでは,Eclipse を使い,GSL (GNU Scientific Library) の機能を呼び出すような C プログラムを作る手順を図解で説明します.


前準備

  1. Cygwin の Web ページの記述に従って,Cygwin のインストールが済んでいること.

  2. BLAS のインストール

  3. 「Windows で GSL (GNU Scientific Library) をビルドとインストール」の記述に従って,GSL のインストールが済んでいること.

(オプション)Eclipse を使う場合

  1. Eclipse のインストールが済んでいること.

  2. 「Eclipse に C/C++ 開発ツール (CDT) をインストール」の Web ページの記述に従って,CDT プラグインのインストールが済んでいること.

なぜ GotoBLAS をインストールするのか

GSL には,BLAS の機能が標準で添付されています. 一方で,BLAS の機能を実装したプログラムは,いろいろあります. GotoBLASATLAS が有名です. GSL を使うとき,BLAS の部分を, GotoBLAS や ATLAS に入れ替えることは簡単です.

以下,2000×2000の行列を2つ作り,乱数を使って値を設定することとと,行列の掛け算を行う C のプログラムを GSL を使って作ってみました.

で比較します.

■ ハードウエアとソフトウエア

実行結果

結果からいえること:性能には明らかな差がある.GotoBLAS や ATLAS の方が早い.出てくる答えは同じ (一部分を diff コマンドで確認)

使用したプログラム


(画像をクリックすると,プログラムのソースコードがテキストファイル形式で開きます).

なぜ GSL のインストールで,ソースコードを使うのか?

「Windows で GSL (GNU Scientific Library) をビルドとインストール」の Web ページでは,GSL の Cygwin パッケージを使わずに,ソースコードからビルドとインストールしています.


非対称行列の固有値,固有ベクトル(プログラムの見本)


(画像をクリックすると,プログラムのソースコードがテキストファイル形式で開きます).

実行結果


Eclipse での GSL プログラム開発手順

Eclipse を使い,新規プロジェクトの作成,C プログラムの作成, 保存, 実行を試す.

あらかじめ決めておく事項

プロジェクトの新規作成

下記の手順で,プロジェクトを新規に作成します.

プロジェクトを作成すると,ワークスペースのディレクトリ(C:\workspace)の下に, プロジェクトのディレクトリができます.プロジェクトのディレクトリの下には,デフォルトでは,Debug, src の2つのサブディレクトリができます.

  1. プロジェクトの新規作成の開始

    「ファイル」→「新規 (New)」→「プロジェクト (Project)」
    または,パッケージ・エキスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

  2. C」の展開

    新規プロジェクトのウインドウが開くので, 「C」を展開する.

  3. C プロジェクト」の選択

    展開した「C」の下にある 「C プロジェクト」を選び,「次へ」をクリック.

  4. プロジェクト名とプロジェクトタイプの指定

    新規Cプロジェクトのウインドウが開くので,プロジェクト名プロジェクト・タイプを指定する.

    終わったら,「次へ」をクリック

  5. 基本設定

    基本設定はデフォルトのままでよい. 「次へ」をクリック

  6. 構成の選択

    基本設定はデフォルトのままでよい. 「完了」をクリック

ソース・ファイルの作成

プロジェクトのプロパティーの設定

プロジェクトのプロパティーを設定し,libgsl の機能が使えるようにする.

ビルド

実行

デフォルトでは,実行ファイルは, C:\workspace\Hello\Debug\Hello.exe に出来る.(「Hello」はプロジェクト名)

Eclipse のプロジェクト・エクスプローラで 「Debug」を展開.Hello.exe を右クリックし,「実行」から「ローカル C/C++ アプリケーション」を選ぶ. 数十秒ほど待つと,コンソールに大量に結果が出てくる.赤いボタンを押して,プログラムを強制終了させる.

※ 実行がうまくいかない場合, C:\cygwin\bin\cygwin1.dll を C:\Windows\System32 にコピーすることを忘れている可能性がある.