サイト構成 | データベース関連技術 | データの扱い | インストール,設定,利用 | プログラミング | 情報工学の講義実習 | サポートページ | 連絡先,業績など |
この Web ページでは,Eclipse を使い,GSL (GNU Scientific Library) の機能を呼び出すような C プログラムを作る手順を図解で説明する.
GSL には,BLAS の機能が標準で添付されている. 一方で,BLAS の機能を実装したプログラムは,いろいろあります. フリーソフトウエアでは,GotoBLAS や ATLAS が有名です. GSL を使うとき,BLAS の部分を, GotoBLAS や ATLAS に入れ替えることは簡単です.
以下,2000×2000の行列を2つ作り,乱数を使って値を設定することとと,行列の掛け算を行う C のプログラムを GSL を使って作ってみました.
で比較します.
前準備:上にも書いたように,GotoBLAS と CBLAS をインストールしておくこと.
コンパイル時のオプションを,「gcc -o a.exe mat3.c -lgsl -lgslcblas」 のように設定します.
コンパイル時のオプションを,「gcc -o a.exe mat3.c -lgsl -lcblas -lgoto」 のように設定します.
実行結果
結果からいえること:性能には明らかな差がある.GotoBLAS の方が早い.出てくる答えは同じ (一部分を diff コマンドで確認)
使用したプログラム
サイト構成 | データベース関連技術 | データの扱い | インストール,設定,利用 | プログラミング | 情報工学の講義実習 | サポートページ | 連絡先,業績など |
下記の手順で,プロジェクトを新規に作成します.
プロジェクトを作成すると,ワークスペースのディレクトリ(C:\workspace)の下に, プロジェクトのディレクトリができます.プロジェクトのディレクトリの下には,デフォルトでは,Debug, src の2つのサブディレクトリができます.
「ファイル」→「新規 (New)」→「プロジェクト (Project)」
または,パッケージ・エキスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」
新規プロジェクトのウインドウが開くので, 「C」を展開する.
展開した「C」の下にある 「C プロジェクト」を選び,「次へ」をクリック.
新規Cプロジェクトのウインドウが開くので,プロジェクト名と プロジェクト・タイプを指定する.
プロジェクト名には好きにつけて良いが,全角文字は避ける.分かりやすい名前が良い.
static ライブラリー,共有ライブラリー,実行可能,Makefile プロジェクトから選べる.ここでは,実行可能を展開し,Hello World ANSI C プロジェクト選ぶ.
終わったら,「次へ」をクリック
基本設定はデフォルトのままでよい. 「次へ」をクリック
基本設定はデフォルトのままでよい. 「完了」をクリック
パッケージ・エクスプローラで, プロジェクトHelloの srcを展開すると,ソース・ファイルの一覧が表示される.
※ Hello World ANSI C プロジェクト選んだので,Hello.c がすでに出来ている.
パッケージ・エクスプローラで, Hello.cをダブルクリックすると,エディタが開き, ソース・ファイルの編集ができる.
MagickWand のサイトから wand.c を入手し,それをコピーアンドペーストする.次のようになる.
Eclipseで,プロジェクトHelloを右クリック. 「プロパティー」を選択. 出てきたウインドウで,「C/C++ビルド」の下の「設定」を選ぶ.
gcc `MagickWand-config --cflags --cppflags` -o wand.exe wand.c `MagickWand-config --ldflags --libs`
CTRL + B(コントロールキーを押しながら「B」) または,「プロジェクト」メニューで「すべてビルド」
※ ビルド時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する. 問題・ビューのエラー一覧の中で,エラーをクリックすると該当箇所が強調表示される.
CTRL + F11(コントロールキーを押しながら「ファンクションキー11」) または,「実行」メニューで「実行」
※ 実行がうまくいかない場合, C:\cygwin\bin\cygwin1.dll を C:\Windows\System32 にコピーすることを忘れている可能性がある.