5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

データ解析ツールoctaveを語ろう

1 :名無しさん@お腹いっぱい。:04/06/01 00:13
知る人ぞ知る強力なデータ解析ツール octave ...

unixを科学研究で使っている香具師には非常に心強い味方のはずだ。

matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。



2 :名無しさん@お腹いっぱい。:04/06/01 03:13
リンクを貼るとか、

せめてものネタふりとして自分の使用感を晒すとか、

 今度、卒研で使わざるを得なくなりました
 インストールのしかたから教えてください

とか、

書くことがあるんじゃネーノ?w

3 :名無しさん@お腹いっぱい。:04/06/01 04:15
>>2
どうも申し訳ない。

http://www.octave.org/

がリンクです。

実は、研究でmatlabを使っていたんですが、
サポート料金を払う金がおしくなって octave にしました。

octave 意外と使えるので、というか軽いし gnuplot との融合性が
高くて本家のmatlabよりも使いやすいのではないかと
思っています。

もちろん、パッケージなんかを考えるとmatlabの方が良いのだけど
私の使い方だと、高価なパッケージ使うこともあまりないので
それほどデメリットにはなりませんでした。

4 :名無しさん@お腹いっぱい。:04/06/01 07:04
あくまで数値解析ソフトなわけで、数式解析ソフトな matlab
と比較するのはどうかと思う


5 :名無しさん@お腹いっぱい。:04/06/01 09:29
>>4
mathematica と間違えていませんか?

matlab で数式解析するという話は聞いたことがありませんが?

私もFreeBSD上で octave 使っています.
最近では数学関数も増えているようでけっこう使いやすく
なっています.

非線型の最小自乗法が扱える関数があればベストなんだけどね.


6 :名無しさん@お腹いっぱい。:04/06/01 10:17
matlabの影響力は日本は少ないからね

7 :名無しさん@お腹いっぱい。:04/06/01 14:42
octaveいいね。卒論で他人がFFTやらのプログラム書いてるときに、
俺はoctaveで楽させてもらった。


8 :名無しさん@お腹いっぱい。:04/06/01 15:57
>>5
その通り。失礼した
あんまり使ってないけど、行列計算の検算とか変形に便利ではあった

9 :名無しさん@お腹いっぱい。:04/06/01 22:38
octaveって使ってみたのですが,
行列計算ってそんなに必要なんですか?



10 :名無しさん@お腹いっぱい。:04/06/01 22:39
>>9
失礼、上げてしまった。

11 :名無しさん@お腹いっぱい。:04/06/01 23:52
必要なところには必要、不要なところには不要。

12 :名無しさん@お腹いっぱい。:04/06/02 00:44
scilabというのもあるので、どっちがいいか比較キボン。
http://www-rocq.inria.fr/scilab/

13 :名無しさん@お腹いっぱい。:04/06/02 01:13
直接LAPACKを使う場合と比べてどの位遅くなるのでしょうか

14 :名無しさん@お腹いっぱい。:04/06/02 01:58
>>12
scilabの方がmatlab互換という点では良いかも知れないけど,
純粋に線形解析に使うのだったらoctaveの方が使いやすいと思います.

私的感想だと数学関数はoctaveの方が良いと思う.

15 :名無しさん@お腹いっぱい。:04/06/02 02:02
>>13
速度に関してはインタプリタの分だけ遅いという感じですね.
最近のoctaveは中間コードに変換しているような感じなので
それほど速度の低下は感じられません.

octaveと数学関係の外部ライブラリの間をいったり来たりするような
感じの処理だと遅くなるようですが...

16 :名無しさん@お腹いっぱい。:04/06/02 07:05
Perl とか awk とかでやるにはややめんどい数値処理
(FFTとか統計処理とか) にいい。liboctave というのも
あるようだが未見。

科学関係のソフトがわりと丁寧に整理・紹介されている。octave もあるよ
http://www.mlb.co.jp/linux/science/
http://www.mlb.co.jp/linux/science/octave/index.html

17 :名無しさん@お腹いっぱい。:04/06/02 19:48
>>16
けっこう参考になるリンクですね。

最近は、貧乏研究室に配属になったので、Open source系の
科学技術計算ソフトの情報はありがたい。

最近は、FreeBSDにoctaveをインストールしてデータ解析の毎日です。
しかし、portsから入れたらoctaveのインストールに時間のかかること...


18 :名無しさん@お腹いっぱい。:04/06/02 19:52
昔学生だったときに三田村さんのページをよく見た。

…と思ったらまだあった。:-)


19 :名無しさん@お腹いっぱい。:04/06/02 20:08
>>18
だれそれ?

20 :名無しさん@お腹いっぱい。:04/06/02 22:39
オープンソースなツールを使って科学技術計算やっている人々の話が聞きたい.

ほとんどが学術系だと思うけど企業とかの研究者でもoctaveとか使っている人
いますか?


21 :名無しさん@お腹いっぱい。:04/06/02 22:43
ところで画像解析にmatlabを使っている人多いと思うけど,
octaveで画像解析している人いますか?

どうしても画像になると octave だと若干貧弱になると思うのだけど...

特に表示するときとかインデックスドカラーなので
カラーパレットの設定などが大変なんですが,
うまくやっている人いたらコツを教えてください.

22 :名無しさん@お腹いっぱい。:04/06/02 22:48
>>4-5
matlabにも数式解析機能はある(toolboxとして)。
その目的のために買う人は少ないだろうけど。

>>20
技術屋としての数値計算に僕が主に使うのはemacsとgcc。
matlabとoctaveも使っているけど、自分で使う道具としてではなくて
プログラミングをあまり知らない人とのやりとりのために使っている。

Cの読み書きができない人(客)でもMatlabやOctaveのコードなら自分でいじれ
ることが多い(オレのまわりでは)。


23 :名無しさん@お腹いっぱい。:04/06/02 23:30
>>22

数値計算アルゴリズムを開発する場合,octaveみたいに試作が直ぐにできる
ツールを使った方が効率が良くないですか?

最終的にはC言語で実装するにしても,アルゴリズムの開発で
試行錯誤を繰り返している段階の場合は,やはり最初は
octaveのようなツールが有効だと思いますが...

24 :22:04/06/02 23:39
>>23
>試行錯誤を繰り返している段階の場合は,
このあたりは主に紙の上でやります。

25 :名無しさん@お腹いっぱい。:04/06/03 01:33
>>24
それは凄い.

私はコンピュータの上でしか試行錯誤ができなくなってしまっています.
コンピュータに頼りきるのも考え方が雑になってしまうという
弊害もあるのかも知れないけれども便利ですよ.

私のところのoctaveの使用目的というのは,
(1) 特にソフトウェアは必要なくて,
  対象(物理系の実験データ)の解析結果データのみが
  必要なとき

(2) 新しいアルゴリズムを試作するとき

の2つの時ですね.

26 :名無しさん@お腹いっぱい。:04/06/03 03:02
>>25
アルゴリズムとして定式化する以前の試行錯誤のところじゃないですかねぇ
もちろん、分野によって異なる計算によるわけですが。

私もoctave+gnuplotはかなり便利に使わせてもらってます。

27 :名無しさん@お腹いっぱい。:04/06/05 00:28
Octaveで非線形計算やるパッケージをご存じないですか?

誰か作ってそうなんだけど...

28 :名無しさん@お腹いっぱい。:04/06/05 01:50
非線形方程式を解くコマンドはfsolveだったはづだけど、計算..?

29 :名無しさん@お腹いっぱい。:04/06/05 02:59
みんながOctaveをどのように使っているか、聞きたい。

私は、某工学分野の研究員だが、
Octaveは、アルゴリズム設計の前段階で使うことが多い。

ちょっと変な使い方かも知れないけど、Octaveでデータを統計解析して、
その傾向に合わせてC言語でプログラムを組んでいる。
つまり、直接アルゴリズム開発に使っているのではなくて、
アルゴリズムを開発するときの参考というか理論的な根拠にしている。

こういう使い方にはけっこう向いていると思うのだが。

30 :名無しさん@お腹いっぱい。:04/06/05 03:01
>>28

非線形の最小自乗法が欲しい。
fsolveは、微分方程式を解く関数じゃなかったっけ?

31 :名無しさん@お腹いっぱい。:04/06/05 11:05
>>30
gnuplot

32 :名無しさん@お腹いっぱい。:04/06/05 13:02
>>30
そのへんはRとかどうなん?

33 :名無しさん@お腹いっぱい。:04/06/05 22:20
>>30
でもあれはデータフィッティングしてグラフをプロットするだけでしょう?
ちゃんとパラメータとかを求めたいってことだと思うのだが...

34 :33:04/06/05 22:21
スマソ,リンク間違えた

>>31 ね...

>>32
Rにしちゃうと Octaveの他の恩恵が受けられなくなる...
という問題が...

35 :名無しさん@お腹いっぱい。:04/06/05 22:25
Octaveをインストールするとき,FreeBSD 4.x だと
readlineのバージョンが古いっていって libreadlineが使えません.
コマンドライン編集や履歴を使いたいのでこれでは
不便なのですが...

それで手動でlibreadlineの新しいやつをインストールして
使っているのですが,octaveのバージョンが変ると
パッチ当てとかがめんどうです.

FreeBSD 5.2くらいなら libreadlineのバージョンが
新しいので問題ないのだけど...

36 :名無しさん@お腹いっぱい。:04/06/05 22:27
RはしらんけどSはやたらdirect mailを送ってきた印象があるな

37 :名無しさん@お腹いっぱい。:04/06/05 22:30
非線形一般均衡系のシミュレーションに使おうとしてうまくいきまへんでした > octave
で、MATLAB買っちゃいました。toolboxマンセー

38 :名無しさん@お腹いっぱい。:04/06/05 22:36
>>37
こういう分野では MATLABというか サードパーティ製のtoolboxが
かなり強力だよね.

でも価格が大変だよね.
貧乏な大学の研究室だと変えないところが多そうだ.

うちも非線形解析用のパッケージ買っていたけど,
本体のライセンス代金も含めて大変なことになっていた.


39 :名無しさん@お腹いっぱい。:04/06/05 22:41
octaveはプログラム組むのに、1ファイル1関数っていうのが
不便ですね。
最近のバージョンだとこの制限なくなっているのかな?

MATLABも昔はそうだったけど、最近のはそういう制限無くなっているし

40 :名無しさん@お腹いっぱい。:04/06/07 11:21
>>30
FAQだとよ。
http://www.octave.org/octave-lists/archive/help-octave.1999/msg00770.html

41 :名無しさん@お腹いっぱい。:04/06/07 12:41
>>40
これは良いかも知れない.
丁度Levenberg-Marquardt法のアルゴリズム探してました.

あとは,これをパラメータの範囲指定ができるように改造して
使わないと解がlocal minimum に陥ってしまって
収束しないんですよね.

もしかしてそれもあったりして...

42 :名無しさん@お腹いっぱい。:04/06/07 16:31


cygwin で liboctave 使えますか?
下のようなテストプログラムでエラーになってしまいます.

$ cat test.cpp
#include <iostream>
#include <octave/config.h>
#include <octave/Matrix.h>

using namespace std;

int main()
{
Matrix m(2, 2, 1.0);
cout << m << endl;
return 0;
}

$ g++ -I/usr/include/octave-2.1.49 -L/usr/lib/octave-2.1.49 -loctave -lcruft -lreadline -ltermcap -llapack -lblas -lg2c -lfftw -lm test.cpp -o test
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text+0x8e):test.cpp: undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Matrix const&)'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdED2Ev+0xd):test.cpp: undefined reference to `Array<double>::~Array [not-in-charge]()'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdEC2EiiRKd+0x1b):test.cpp: undefined reference to `Array2<double>::get_size(int, int) const'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdEC2EiiRKd+0x33):test.cpp: undefined reference to `Array<double>::Array[not-in-charge](int, double const&)'
collect2: ld returned 1 exit status
make: *** [test] Error 1


43 :名無しさん@お腹いっぱい。:04/06/08 00:44
>>42

octave は知らないが、与える引数間違ってるんじゃないの?

44 :名無しさん@お腹いっぱい。:04/06/08 18:13
>>43
どう間違っているのでしょうか?
Linux と同じじゃダメなのでしょうか?


45 :名無しさん@お腹いっぱい。:04/06/08 21:03
素晴らしーいソフトウェアです。
Fedora CORE 2 でSMPマシンにインストールしました。
コンパイルに1時間強、出来上がったバイナリ− octave が60MBを越えたのには
驚きましたけど。
紹介していただいたみなさんに感謝感激です。
しばらくマイブームとなりそうです。


46 :名無しさん@お腹いっぱい。:04/06/08 23:11
>>42

俺が試した限りでは、

octave-2.1.57 を ./configure; make install した状態で、

$ g++ -I/usr/local/include/octave-2.1.57 test.cpp -L/usr/local/lib/octave-2.1.57 -loctave -lcruft -lg2c -o test

でコンパイルできたが。


47 :名無しさん@お腹いっぱい。:04/06/08 23:27
>>45
60MBは、たぶん -g つけたままコンパイルしたんじゃないか?
liboctaveも巨大なままでは?
make clean; make CFLAGS=-O2 CXXFLAGS=-O2 をおすすめする。
あと、strip octave。

48 :名無しさん@お腹いっぱい。:04/06/08 23:30
>>46
上ので通りました. -llapack とかは不要なんですね.

$ g++ -I/usr/local/include/octave-2.1.57 -L/usr/local/lib/octave-2.1.57 -loctave -lcruft -lg2c -o test test.cpp

こう書くと undefined reference がいっぱい出ますが,
順番が大事だとわかりました.

どうも, ありがとうございました.


49 :名無しさん@お腹いっぱい。:04/06/09 03:42
octave ってスパース行列扱うの弱くない?

最近はCPUもメモリも強力だけど、古いマシンで
計算させたら死にそうになった。

50 :名無しさん@お腹いっぱい。:04/06/09 05:01
Scilab使へば

51 :45:04/06/10 00:35
がびーん。
./configure; make しただけだったのですが、そういえばご丁寧に -g
が付いていたような。。。
気を取り直してもう一度 build してみます。
その前に HDD 増設かも。


52 :45:04/06/10 00:37
連続書き込みすみません。
octave って SMP マシンの恩恵を得られるのでしょうか?
HT対応のCPUを2個挿せば、体感?4つになります。
個人でも 4 way も持てるなんて、想像しただけで幸せです。


53 :Pen4 2.4GHz:04/06/10 01:25
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 2.7709

最近のマシンは速いねぇ…

54 :名無しさん@お腹いっぱい。:04/06/10 01:33
>>53
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 193.02
(´・ω・`)ショボーン

Status of processor 1 as of: 06/10/04 01:33:21
Processor has been on-line since 05/25/04 18:25:10.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 06/10/04 01:33:21
Processor has been on-line since 05/25/04 18:25:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.


55 :名無しさん@お腹いっぱい。:04/06/10 01:52
>>52

多分ならなかったと思うけど...
threadで組んでたかな?

56 :名無しさん@お腹いっぱい。:04/06/10 10:59
>>54

PentiumIII(katmai) 600MHz

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 17.742

sparcのv9って比較的最近のCPUじゃないの?
大昔(Coppermineですらない)のPenIIIよりも遅いのですか...??


57 :名無しさん@お腹いっぱい。:04/06/10 11:00
>>56
書くの忘れたけど,
OSは,FreeBSD 5-current で
CPUは 600MHz x 2のSMPです.

58 :名無しさん@お腹いっぱい。:04/06/10 11:10
ちなみに FreeBSD-4.9R で
ちょっと古いCPUですが,
Athlon-MP(多分Thunderbirdコア) 1.2GHzx2 のSMPで

octave-2.1.50:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.50:2> tic;A\b;toc
ans = 5.1248

と5秒ちょっとのタイムをマークしました...
Octaveは多分 SMP は効いてないと思うので,速度は
>>53の Pen4 と比較してもクロック分の速度は出てるかな...

59 :名無しさん@お腹いっぱい。:04/06/10 23:19
>>49

それってかなり古いOctaveじゃない?

60 :ThinkPad X31:04/06/11 01:05
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 5.6739

最近のB5サブノートは速いねぇ…

61 :名無しさん@お腹いっぱい。:04/06/11 02:05
Octaveって疎行列の計算はできますか?
周期境界条件を課した疎行列の計算パッケージがなかなか見つからなくて困っています。
FFTはNlogNのオーダーなんで遅いしなーって思うとNのオーダーで計算できる
疎行列パッケージが一番よいのですが。

62 :SS S8:04/06/11 09:20
>>60
cygwinでコンパイルしたやつだけど、
ans = 34.755
だった orz
コンパイルオプションばりばりつけた方がいいのかなぁ

63 :名無しさん@お腹いっぱい。:04/06/11 14:52
>>61
自分で書くと感謝されるよ。

でもLAPACKとかで疎行列扱えないの?
最近はOctaveも外部ライブラリに頼っているからね。



64 :名無しさん@お腹いっぱい。:04/06/11 14:57
うちのThinkPad X31(PentiumM-1.4GHz)も,
FreeBSD 4.10-stable 上で

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 5.5506

という値を出しました.


65 :名無しさん@お腹いっぱい。:04/06/12 02:04
漏れも試そうとportsでoctaveをmakeしてるんだけど
atlasのビルドが一日たっても終わんないよう。


66 :名無しさん@お腹いっぱい。:04/06/12 02:31
atlasのインストール時ってコンパイルが終わらないというより、
数値計算を行っている時間が長いようですね。

ずっと数値計算プログラムが動いていますが、
計算精度のチェックでもしているのでしょうか?

ちなみにうちのThinkPad X31だと、とりあえず1日ってことはないな
3時間くらいで終わっていたように思えるけど...

67 :名無しさん@お腹いっぱい。:04/06/12 02:45
>>65
メモリが不安定だと計算処理が途中で異常終了して
計算を繰り返して丸一日以上かかることがありました.

もしも速いCPUを使っていて丸一日以上かかるようだったら、
メモリをチェックしてみた方が良いかもしれません.
普通に使っていて動いていても memtest とかが
通らない場合がありますよ.

私は atlas のコンパイル作業でメモリ異常に
気が付きました.

ちなみに Athlon等の1GHz以上のCPUなら数時間で計算処理が
終わります.


68 :45:04/06/12 09:45
なにせ古いマシン、PentiumIII 550E ×2 です。
40GB HDDを買ってきて Fedora CORE 2を再インストールしました。
ご指摘のありました -g 付きの ./configure; make 版です。

$ uname -a
Linux localhost.localdomain 2.6.6-1.427smp #1 SMP Thu Jun 10 10:01:11 EDT 2004 i
686 i686 i386 GNU/Linux
$ octave
GNU Octave, version 2.1.57 (i686-pc-linux-gnu).
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 110.47

xcpustate で各プロセッサーの状態を監視しながら実行させました。
なるほど、片側のプロセッサーのみを占有していました。悲しい。
窓を2枚開いて同時に octave を起動して、上記処理を行なうと、
143.50 と 145.39 でした。二人で同時に動かしてもそれなりということか。
少し救われるかも。
47さんのアドバイスに従って再make 中です。

どんなプラットフォームでもちゃんと動作するマルチスレッドの
プログラムを作るのは難しいですからね。SMPを活かそうと思ったら
やはりガリガリ自分で作るしかなさそう。嬉しいような悲しいような。。。


69 :名無しさん@お腹いっぱい。:04/06/12 22:56
>>68

110秒はちょっと遅いですよね?
これはコンパイルオプションにかなり左右されるのでしょうか?
SSEとかどうなっているのでしょうか?

>>56 は 同じようスペックで17秒ちょいで終わっているようですが...


70 :名無しさん@お腹いっぱい。:04/06/13 03:03
研究環境を完全OpenSource化使用して、いろいろ画策中です。

特にMATLABからOctaveへ関数をいくつか移植しているのだけど、
けっこう大変だよね。

Octaveは関数が一つしか書けないし、微妙なところで関数の仕様が
違っていたりするし。

でもMATLABへのライセンス料を払わなくて済むなら
かなりの出費が押さえられる。



71 :名無しさん@お腹いっぱい。:04/06/13 03:04

               ____
           ./, - 、, - 、   ̄ ヽ
          ./-┤ 。|。  |――-、 ヽ
           | ヽ`- ○- ´ /  ヽ  |
           | -   |     ―   |  |
           |  ´  |    `ヽ  . |  |ヽ
  ∩      人`、 _  |    _.- ´ | .|  \
  |  ⌒ヽ /  \  ̄ ̄ ̄     ノノ       \
  |      |´      | ̄―--―― ´ヽ     _  /⌒\
  \_   _/-―――.| ( T )      `l     Τ(      )
       ̄       |   ̄        }      | \_/
             | 、--―  ̄|    /

72 :名無しさん@お腹いっぱい。:04/06/13 03:06
>>71
もしかしてキリ番狙っていたの?

73 :名無しさん@お腹いっぱい。:04/06/13 03:46


   ||
 Λ||Λ
( / ⌒ヽ
 | |   | 逝け>72
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐

74 :+++:04/06/13 11:00
   ||
 Λ||Λ
( / ⌒ヽ
 | |   | 逝け>>72
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐


75 :名無しさん@お腹いっぱい。:04/06/13 18:03
>>71, >>73, >>74

せっかくのAAなんだけどうちの環境,FreeBSD + mozilla デフォルト設定では
文字がずれて,きちんと見えません...

等幅フォントにすりゃいいんだけどね.

76 :名無しさん@お腹いっぱい。:04/06/13 18:30
このスレせっかくいい調子で話が進んでいたのに、
変な香具師が紛れ込むようになってきたね。

77 :名無しさん@お腹いっぱい。:04/06/13 18:33
必要もないのにageちゃうからだろ。


78 :名無しさん@お腹いっぱい。:04/06/13 19:15
さりげなくサイエンスな香りがするこのスレ、気に入っていたのに

79 :名無しさん@お腹いっぱい。:04/06/13 23:20
WindowsでOctaveって動きますか?

ちょっと面白そうなので立ち寄ってみました。

80 :名無しさん@お腹いっぱい。:04/06/13 23:24
>>79
動くよ。native 版もあるし、cygwin で動かす手もある
特に数値計算なら、こしょこしょコード書くよりまかせてしまったほうがいいと思う

81 :名無しさん@お腹いっぱい。:04/06/13 23:40
レスありがとうございます。

Windowsのnative版もあるんだ。
探してみます。

でもcygwinはややこしいからパスします。

82 :45:04/06/14 22:01
途中報告。
-g を抜いたバイナリでSMPカーネルで同じ手順を行ないました。
バイナリサイズはナント 7MB でした。
実効結果は
ans = 105 くらいでした。大差ないです。
原因を引き続き調査中です。

そうそう、SPARC とかは float より double が早いそうですね。
ハードウェアがそう設計されているそうです。


83 :名無しさん@お腹いっぱい。:04/06/14 23:01
>>85
floatよりdoubleが速い処理系は多いよ.特に昔のRISC系CPUの場合は...

それと表示は,桁を省略しているけど,Octaveは基本的に double で
計算しているはずです.
それで105秒だと本当にそれくらいの速度かと...

atlasをコンパイルするとき -g を抜くだけではなくて,
gcc で -O3 とか -msse2 といった最適化オプションは
指定してありますか?


84 :名無しさん@お腹いっぱい。:04/06/15 00:48
>>83

FreeBSDのportsではSSE2対応のCPUでは,自動的に
SSE2が有効になるようにコンパイルオプションが
指定されているようです.


85 :SS S8:04/06/15 01:12
gcc-3.3.1/cygwin/PenM 1G ですが、
-O2のみでは
ans = 34.755
だったのが、
FFLAGS, CFLAGS, CXXFLAGS全部に
-O3 -fomit-frame-pointer -mcpu=pentium3 -march=pentium4 -msse2 -funroll-loops
を指定したら、
ans = 14.412
になりました。ただし、一番効いてるのは -mcpu っぽい。

86 :名無しさん@お腹いっぱい。:04/06/15 02:36
よく覚えていないのですが、atlasってアセンブラで
SSE2のコード書いてませんでしたっけ?
たしかプリプロセッサでSSE2を有効にする変数を定義したら
SSE2が有効になったような...


87 :名無しさん@お腹いっぱい。:04/06/15 08:00
Opteron242だと
ans=11.8
やけにおそいな。
OS SuSE 9.1 X86_64

88 :名無しさん@お腹いっぱい。:04/06/16 04:15
>>87
B5サブノートのPentiumMに負けている...

Opteronって通常の数値計算が速いって聞いてますが、
実際のところどうなんでしょうか?

Octaveの使用を含む数値計算用に一台Dual CPUなのを購入予定なのですが...


89 :名無しさん@お腹いっぱい。:04/06/16 17:14
opteron 242*2(1.6GHz)
姫野ベンチ 2CPU
1313MFlops
Pentium200MHz 40.7倍

Xeon 2GHzしかないが
819MFlops




90 :名無しさん@お腹いっぱい。:04/06/19 03:03
今一つ速くないね.Opteron...

まだ最適化が十分ではないのかな?

91 :名無しさん@お腹いっぱい。:04/06/22 11:44
あげ

92 :名無しさん@お腹いっぱい。:04/06/22 11:48
しかしながらベンチマークスレに成り下がっているのは情けなくもある。

93 :名無しさん@お腹いっぱい。:04/06/22 12:14
演算の精度の制御はどうやればできますか?
たぶんデフォルトではdoubleというか64bitっぽいですが、
もっと精度が欲しいのです。

94 :名無しさん@お腹いっぱい。:04/06/22 22:44
scilab

95 :名無しさん@お腹いっぱい。:04/06/23 07:09
>>92
スーパーコンピューターの最大ユーザーはベンチマーク屋である。
という話を聞いたことあるけど。
もっともコンパイルオプションの違いで数倍のパフォーマンスが
違えばショックですね。
MATLABを買ったと思ってPC買い換えれば幸せになれるかも。。。


96 :名無しさん@お腹いっぱい。:04/06/23 08:20
>>93
演算の精度制御は、できないみたい。
「GNU Octave Manual」によれば(p35)
numeric data is currently stored as double precision numbers.
use the IEEE floating format,
the relative precision is approximately 2.2e-16.
とある。
無論、表示の制御は、できる。C likeのフォーマットが使える。

97 :名無しさん@お腹いっぱい。:04/06/23 09:03
>>94,>>96
どうもありがとう。octaveじゃ無理なんですね。

scilabをインストールしてみたら、例のペンチマークがoctaveより速くて、
のりかえを検討していますが、こっちはどうやれば精度の制御ができるんでしょう?

98 :名無しさん@お腹いっぱい。:04/06/23 09:54
octaveは全く触ったことがない厨房ですが、octaveとRは機能的に
かなりかぶりますか? それとも相互補完するものですか?

99 :名無しさん@お腹いっぱい。:04/06/24 12:56
若干かぶるけど,特定分野だとRの方が強いと思うよ...

Octaveは線形代数系の計算全般といったところか.

100 :名無しさん@お腹いっぱい。:04/06/24 12:59
>>95
MATLABのことを考えると,毎年PCを買い換えれますね.

MATLABは基本的に毎年ライセンス料を払わないといけないプレッシャーが
あります.
まぁ,払わなくてもいいんだろうけど,修正パッチとか
バージョンアップのことを考えるとライセンス料を払い続けるしか
ないシステムになっています.




101 :名無しさん@お腹いっぱい。:04/06/24 13:03
>>95

ベンチマークだいすきですぅ。

102 :名無しさん@お腹いっぱい。:04/06/25 14:28
MATLAB個人で買いましたよ。
octaveじゃできないこともおおいし。

ちなみに「データ解析ツール」じゃなくて「行列言語」な。
間違えるなよ。

103 :名無しさん@お腹いっぱい。:04/06/25 22:18
行列言語ってのもなんだな...

104 :名無しさん@お腹いっぱい。:04/06/25 22:28
Octave使っているのだけど,マニュアルとかが英語なのがちょっとね.
何かお奨めな参考書とかWebページとかりますか?

105 :名無しさん@お腹いっぱい。:04/06/25 22:28
とかありますか?

106 :名無しさん@お腹いっぱい。:04/06/26 09:24
あまり役に立たない本
「Octaveを用いた数値計算入門」
北本 卓也著
ピアソンエヂュケーション
ISBN4-89471-448-5


107 :名無しさん@お腹いっぱい。:04/07/01 07:59
卒研で構造物の強度計算をすることになりました。
それで手頃なツールをさがしているのですが、
Octaveでできますか?

研究室のOSはNetBSDというものだそうです。

108 :名無しさん@お腹いっぱい。:04/07/01 08:02
強度計算がどんな計算をするものなのかわからないので、わからない。
行列計算とか微分方程式とかに帰着させられるんならできるだろうけど。
OSは無関係。

109 :名無しさん@お腹いっぱい。:04/07/04 23:00
初めて立ち寄ってみました。
lsodeの中身は4段のRunge-Kuttaなのでしょうか?
何を見たら分かるのでしょう?どなたか教えてください。

110 :名無しさん@お腹いっぱい。:04/07/04 23:34
微分方程式は Runge-Kuttaを使っていたと思います.

今のOctaveは外部の数値計算ライブラリに依存しているから
そのソースコードを確認するのがいいのではないでしょうか?

でもFORTRANとかで書かれているのでちょっと困りますが...

111 :名無しさん@お腹いっぱい。:04/07/04 23:43
>>109
lsodeはRunge-Kuttaではなく、stiffな問題にはBDF法、nonstiffな問題にはAdams(predictor-corrector)と使い分けています。
いずれもRunge-KuttaのようなSingle step methodでは無く、Multi step methodと呼ばれる方法です。
http://www.llnl.gov/CASC/odepack/

もともとODEPACKというFORTRANのパッケージに含まれていて、ソースはwww.netlib.orgからダウンロード出来ていたと思います。
lsodeでググってみたら出てきますよ。

112 :名無しさん@お腹いっぱい。:04/07/05 07:45
二つの異なる情報ですが、ありがとうござました。
linspaceで刻み幅を固定して計算するのだからRKだろうか
と思っていました。ソースを読んで見ます。
BDFかあ。懐かしいなあ。ずっと以前でしたが、理解するのに
一苦労したっけ。小生は、現在は、刻み幅自動調整の
RKFの愛用者です。

113 :名無しさん@お腹いっぱい。:04/07/05 07:48
異なる内容でしたが、ありがとうございます。
linspaceで刻み幅を固定するので、RKかと思っていました。
小生は、現在は、刻み幅自動調整のRKFを愛用しているので
つい、そう思っていました。ソースを読んで見ます。

114 :名称未設定:04/07/07 22:57
Matlabのtoolboxが必要なら、octeva-forgeをインストすれば

115 :名無しさん@お腹いっぱい。:04/07/14 03:05
>>114

こんなんあったんだね。
これはちょっと使えるかも。

116 :名無しさん@お腹いっぱい。:04/07/21 20:37
さてMATLAB R14が出たわけだが。

117 :名無しさん@お腹いっぱい。:04/07/21 21:18
MATLABは新しくなればなるほど重く不安定になってくる。
R12以前くらいかな良かったのは。

118 :名無しさん@お腹いっぱい。:04/09/28 22:30:37
久々にベンチマークネタ age

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 4.5008

CPU: AMD Athlon(tm) XP 1700+ (1472.93-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1

そんなに速くないな...motherboardも古いし...

119 :名無しさん@お腹いっぱい。:04/09/29 04:41:37
octave-forgeってどーですか

120 :名無しさん@お腹いっぱい。:04/10/02 21:42:10
>>119
けっこう使えるよ。
公開されてるMatlab用のプログラムが変更無しで動く

121 :名無しさん@お腹いっぱい。:04/10/02 21:56:19
octave-forge ってそもそも何ですか?

122 :名無しさん@お腹いっぱい。:04/10/03 00:20:31
>>121
cat /usr/ports/math/octave-forge/pkg-descr


123 :名無しさん@お腹いっぱい。:04/11/13 20:43:16
あげ

124 :名無しさん@お腹いっぱい。:04/11/13 20:45:19
あげ

125 :名無しさん@お腹いっぱい。:04/11/14 03:58:42
日本語化パッチはまだでつか?

126 :名無しさん@お腹いっぱい。:04/11/14 04:15:32
Octave に日本語って必要なんですか?

127 :名無しさん@お腹いっぱい。:04/11/14 04:23:04
必要かどうかは解かりませんけど、
道具が人を選んではいけないと思います。

128 :名無しさん@お腹いっぱい。:04/11/14 04:35:04
>>127
意味分かりません


129 :名無しさん@お腹いっぱい。:04/11/14 05:48:38
英語読むのめどい

130 :名無しさん@お腹いっぱい。:04/11/19 11:26:10
馬鹿とハサミは使い方次第ですね
馬鹿には道具は使えないんでしょうかねぇ

131 :名無しさん@お腹いっぱい。:04/11/19 11:28:12
んなこといっちゃってはずかしいくせに

132 :名無しさん@お腹いっぱい。:04/11/19 16:55:41
Octaveって線形代数電卓って感じだなぁ.

普段何気なく使っていて,それほど必要だとは思わないんだけど
自分の使っているマシンに入ってないと気づいたときのショックは
計り知れない.
無いとかなり不便なんだよね.

133 :名無しさん@お腹いっぱい。:04/11/23 06:37:06
FreeBSDの ports の Octave 新しくなりましたね.
何が変わったのかな?


134 :FreeBSD5.2.1-R:04/11/23 20:41:54
2.1.63にアップグレードしたら次のメッセージが出るようになった
warning: lo_ieee_init: unrecognized floating point format!
何でしょうねこれ

135 :134:04/11/24 01:33:20
自己レス
最適化がきつすぎたみたい
コンパイルオプション変えたら出なくなった

136 :名無しさん@お腹いっぱい。:04/11/24 05:47:50
スレ違いでしたらすいません。
Octaveで以下の式を解きたいのですが、どの様な手順で進めるたらいいか、どなたか救いの手をよろしくお願いします。

dx(i)/dt = P(i) - k(i)x + a(i)x(i) - b(SUMx(j))

ここでxは2つあり、x=1の時は以下の式で解を求めます。
When D <> 0
x1(t) = (Ps/2S + Pd/2D) + (x1(0) - Ps/2S)e^(-St) - (Pd/2D)e^(e-Dt)

When D = 0
x1(t) = xd(0) + Pdt/2 + Ps/2S + (xs(0) - Ps/2S)e^(-St),

where
S = k + B;
D = k - B;
xs=x1+x2;
xd=x1- x2;
Ps = P1+ P2;
Pd = P1- P2;

x=2の場合、Pd -> -Pd, x1 -> x2, xd -> -xdとし、同じ様に解を求めます。

137 :名無しさん@お腹いっぱい。:04/12/13 00:21:01
CPUとマザーボードを買い換えました.
AthlonからPen4に変えたのですが
octave って再コンパイルが必要だったんですね.

138 :名無しさん@お腹いっぱい。:04/12/14 20:04:09
-march=athlonとかやってたんでないのか?

139 :名無しさん@お腹いっぱい。:04/12/21 23:47:43
Octave は関係ないんだけど atlas がコンパイル時にSSEや3D Now を
自動的に認識して最適なコードを出力します.

Athlonだと3D Now が入ってしまうから Pen4だと動かなくなってしまいます.

140 :名無しさん@お腹いっぱい。:04/12/22 05:03:05
FreeBSD 5.3-stable + プレスコットなPen4で ATLASを
コンパイルしたら以下のようなエラーが出るようになりました.

何かエラーを解消する方法があれば教えてください.

同じOSで PentiumM なら問題なくコンパイルできたのに...

pre=s, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
mu=4, nu=1, ku=8, muladd=0, lat=1 ====> mflop=1573.458410
*** Error code 255

Stop in /usr/ports/math/atlas/work/ATLAS/tune/blas/gemm/THREADED.
*** Error code 1

Stop in /usr/ports/math/atlas/work/ATLAS/bin/THREADED.
Assertion failed: (fp), function GetMMRES, file ../atlas_install.c, line 327.


141 :140:04/12/23 09:52:22
PentiumM でコンパイルしたATLASを pkg_create してプレスコットな
Pen4 2.8GHz に入れました。
思ったより速くないですね。

PentiumM でコンパイルしているので SSE2 とかは有効になっている
はずです。

octave-2.1.63:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.63:2> tic;A\b;toc
ans = 4.3339
octave-2.1.63:3> tic;A\b;toc
ans = 4.1330


142 :名無しさん@お腹いっぱい。:04/12/23 17:52:46
portsから入れるならWITH_OPTIMIZED_FLAGSを定義しておく
その他CFLAGSやFFLAGS等も適切に設定しておく

143 :名無しさん@お腹いっぱい。:04/12/23 18:21:14
>>141
SSE2の速度はPentiuMとPen4でぜんぜん違いますね。
>>142
WITH_OPTMIZIZED_FLAGSは定義しないでください。gcc-3.4.2の
バグで無限ループに陥ることアリ。CFLAGS/FFLAGSは意味なしです。


144 :名無しさん@お腹いっぱい。:04/12/23 19:31:54
意味無いこと無いだろ

145 :名無しさん@お腹いっぱい。:04/12/23 20:05:09
mahoたん降臨とみた。


146 :名無しさん@お腹いっぱい。:04/12/23 22:58:33
>>143

Pen4 ってSSE2 速いんですか?

それほどでもないと思うのですが...

147 :143:04/12/23 23:06:00
>>64 で X31 のベンチがありましたが
こちらも同じマシンですがベンチの結果はほぼ同じです。

同じ環境で PenM 1.4GHz 5.5秒 Pen4 2.8GHz 4.3秒...
これをどうみるか...



148 :名無しさん@お腹いっぱい。:04/12/25 13:29:55
>>145
するどい。143です。
>>147
octaveではないですが、ATLASだとdouble(REAL*8)の
FLOPSがPen4, PenMで全然違います。厳密には覚えてないですが、
Pen4 2.4Gでdgeemが1600MFlopsでPenMが500MFlops程度
だったかと。dualでもtheoretical peak近いところまででます。
(宣伝したい訳ではないが) FreeBSD Expert 2005にATLASの
ベンチマークを行った結果を詳しく書いています。ただPentiumMに
関しては書いていません。REAL*8はあまりに低速だったからです。
single precisionということはないですか?
PenMのほうが同クロックだと相当高速ですよ。

149 :名無しさん@お腹いっぱい。:04/12/26 01:01:24
>>148

プレスコットでも北森でも同じなのでしょうか?

研究室で数値計算用に一台PCを組もうと思っているんですが
世間のPen4の不人気具合いからためらっています.

とりあえず FreeBSD Expert 買ってみます.

150 :名無しさん@お腹いっぱい。:04/12/26 17:44:12
>>149
Expert2005のXeon dualはプレスコットだろうか? すまぬ。厳密な
チェックは怠った...しかし、FreeBSD/amd64を入れてみたがブートはしなかった。
SSE2は理論性能は実クロックx2Flops
でます。簡単にはXeon dual (3.4G)ならば3.4x2(dual)x2(theoretical)
=12.8GFlops Opteronも同様。まぁそこまでは出ません。
数値には出にくいのですが、複雑な処理をさせるとXeonは不利で、
Opteronがキビキビしてるなというのが良く解ります。

FreeBSD ports+HPCというのに僕は期待しています。
ノウハウをみなで共有できたら良いと思いますし、よい記事執筆者
が出ることを期待もしています。

151 :143:04/12/27 22:56:58
少しスレ違いな話で申し訳ないのですが

うちのプレスコなPen4とThinkPad X31 で FreeBSD 5.3-stable の
kernelコンパイル時間を計測してみたのですが

make buildkernel KERNCONF=MYPC

とやると ThinkPadX31(PenM 1.4GHz),自作PC(プレスコPen4 2.8GHz)

X31は 10分35秒, 自作PCは8分42秒でした.

またuser time と CPU使用率は
X31 545.5秒 97.9%
自作PC 795秒 181%
でした.

正直いってプレスコ使うのが嫌になってきています.

152 :140:04/12/27 22:57:38
>>151

ごめん名前間違えた 143 ではなく 140です.

153 :名無しさん@お腹いっぱい。:05/01/17 19:45:19 ,
すいません。
お聞きしていいですか??
現在、octaveで1次元有限要素法のプログラムを書いているのですが、量子井戸の波動関数を求めようとした際に、どうしても解が振動してしまいます。
波動関数の2乗の値はまともなのに、2乗しないとだめです。
どうしてでしょうか??

154 :名無しさん@お腹いっぱい。:05/01/18 17:46:38
>>153
ネタ?

155 :名無しさん@お腹いっぱい。:05/01/18 19:00:34
>>153

> 波動関数の2乗の値はまともなのに、2乗しないとだめです。

ここの意味がわかりません.

156 :名無しさん@お腹いっぱい。:05/01/18 21:58:47
>>153
とりあえずソースを

固有エネルギー・固有状態がほしいのか
波動関数の時間発展をみたいのか
何をしたいのか明確に説明プリーズ

157 :153:05/01/19 04:45:16
すいません。
説明不足でした。
波動関数が振動するとは、1要素ごとにプラスとマイナスが入れ替わってるような、ギザギザした形状になってしまうということです。
以下にソースを載せますので、暇であればお試しください。
欲しいのは時間に依存しない方程式を解いて、固有関数と固有値です。

http://cyobe36.k-server.org/newpage1.htm



158 :153:05/01/19 04:46:57
ttp://cyobe36.k-server.org/newpage1.htm

159 :名無しさん@お腹いっぱい。:05/01/19 21:31:54
>>157
ちゃんと解読してないけど
固有値が一番大きな方の波動関数をプロットしてない?
だったら1サイトごとに振動してても問題ないかと。
固有値が小さいやつをプロットしてみたらどうでしょう。
ただ、plot(x,v(:199))をしてみたけど
ポテンシャル井戸に局在してるようなモードでは無かったです。
対角化したときに固有値・固有状態がどういう順番で出るのか良く知らないんですけど。


160 :名無しさん@お腹いっぱい。:05/01/29 17:13:41
ATLASってiccでビルドするとどれくらい速くなるんでしょうか

161 :名無しさん@お腹いっぱい。:05/02/11 19:46:36
Octave GTK+
http://octave-gtk.sourceforge.net/

162 :名無しさん@お腹いっぱい。:05/02/11 22:01:01
すいません、宣伝になっちゃいますけど

liboctaveの使い方をまとめたLiboctaveWikiを立ち上げました
http://liboctave.halfmoon.jp/
ちょっとliboctave使ってみたいなっていう初心者の方から、
liboctaveなら俺に任せろ!な猛者まで、
Wikiの編集に参加していただけるとうれしいです。
なんでOctaveじゃなくてliboctaveの方なんだっていうのは無しの方向で・・(汗

44 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)