データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
知る人ぞ知る強力なデータ解析ツール octave ... unixを科学研究で使っている香具師には非常に心強い味方のはずだ。 matlab互換を主張しながら、微妙にバージョンアップを続ける octaveについて語ろう。 そのPart 2です 前スレ データ解析ツールoctaveを語ろう http://pc12.2ch.net/test/read.cgi/unix/1086016412/ >>423 サンクスです。 やっぱインストーラある方が便利ですよね >>426 試してみました。 バイナリ:octave-3.8.0-2-portable.zip 動作環境:WinXP on VMware Player MSYS環境でコンパイルしてあるらしく、相変わらず起動が異常に遅い(CPU 100%)。 > a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc Elapsed time is 1.5 seconds. > jit_enable(1) > a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc 無限ループ… ヽ(`Д´#)ノ >>425 最新のoctave-3.8.0-5なら,windows 7 では起動は早いです。 jit_enable(1)の問題はそのままです。 >>428 Thanks! Windows7なら、MinGW版でも起動は早い、らしいですね… 3.2から3.4の時に急に遅くなったので、いつかは原因を究明してみたいものですが。 >>426 windows 8ではGUIは動かないようです。 >>396 >>430 GUI スキンとしてDomainMath IDE 0.16はWindows 8でも動くようです。 しばらくはこれを使おう。 https://sites.google.com/site/domainmathide/home http://mxeoctave.osuv.de/ に新しくおかれた w8-octave-gui.bat を使えば windows 8 でもExperimental GUIが使えるようです >>427 放っておいてあった古いマシンにUbuntu 12.04 LTS を入れてoctave 3.8.0 をビルドしてみました。 octave:1> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc Elapsed time is 4.21553 seconds. octave:2> jit_enable(1) octave:3> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc Elapsed time is 0.891052 seconds. Ubuntu 上ではjitは動作してますね。MinGWの特有の問題かもしれません。 >>436 おぉ、そこまでしていただけるとは…。 そうですね、実用段階までまったり待っていることにします。 # Max Bristerさん、燃え尽きちゃったりしないですよね…? # ttp://hg.savannah.gnu.org/hgweb/octave/search/?rev=Max%20Brister&revcount=200 >>438 いえいえ,ちょうど聞きたいところだったので。 # Max Bristerさん、燃え尽きちゃったりしないですよね…? すごい勢いですよね。燃え尽きはこわいですね。 Ubuntu 12.04 LTS でmxe-octaveを使って,octave-3.8.1 をビルドしました。 参考 http://wiki.octave.org/Windows_Installer native-gccでビルドがこけたのでoctave MLで質問してパッチを得ました。 パッチが載ってるスレッドのURLは,ここ。 http://octave.1599824.n4.nabble.com/mxe-octave-cross-build-errors-when-building-native-gcc-tt4662612.html MinGW上でのビルドはうまくいきません。 クロスビルドするしかないのかなあ。 win7-x64 x86_64-w64-mingw32 gcc-4.9でビルドしてみた。 最初staticライブラリを使ってguiを有効にしてビルドしたんだけど、 1.QtとGraphicsMagickでtiffの関数がかぶる 2.最終リンクでvtable for file_editor_interfaceのエラーが出る 3.Qt有効時には、src/makefileに -loleaut32 -lwinmm -lcomdlg32 -limm32 -lwinspoolの追加が必要 4.ssl有効にしてた場合ssl関連のライブラリ追加が必要 2に関しては試してないけどGUNの掲示板でpatchが出てた。 3、4はmakefile修正で解決 1の問題解決が面倒というかQtかGraphicsMagickどっちかのtiffを無効にしてライブラリ再ビルドか、 もしくはsharedライブラリじゃないと無理? で、disable-guiでmake。ライブラリはstatic。 今度はrpl_gethostnameが不明とか出たので、…gethostnameをコメントアウトしちゃった。 一応ビルドは通って>>427 の計算も速いんだけどうーん。 GUIもビルド出来た 1.tiffを無効にしたライブラリを使用 2.公式のパッチを当てる 3.LIBSに追加してconfigure 4.3同様 やはり、gethostname.cを処理して無いみたいなので定義をsokets.cに移植 これでビルドは完了するんだけど初回起動時設定ファイルを作成出来ずに クラッシュしてた。なんとかして設定ファイルを作成し所定の場所に配置 どうにかしてGUIの起動を拝めたんだけど、どうもpngも処理されていない。 まあなんとか起動までは漕ぎ着けたので満足して終了 それと、win7-64bitではatlasのビルド時、atlasの測定ツールみたいなの が異常終了する。色々ググってたらそういう人多いみたい。 しかし、めげずにmakeを繰り返していると通る。というか通す。 ちな10時間かかった… atlasはpythonの拡張であるsicpyをビルドする時必須(少なくても自分の環 境では)のようで、openblasではtest中落ちる。sicpyに依存するmatplotlib もatlasでビルドしたsicpyじゃないとビルド中落ちる。 matplotlibを実行してpythonが無反応になる場合は font_manager.py中のif not local:の前に local = None を書き加える。 MinGWというかwindowsでやるもんじゃないね。VMware上のUbuntuで同じ事 やったら1時間かからなかったつД`) >>443 おつかれさまでした。 Windowsだと、何かコンパイルしようと思うと異常にハードルが上がるのは、同感です… でも自分の場合は、お仕事がWindowsメインだから仕方ない ちなみに教えてほしいのですが、他のライブラリとかはすんなりビルドできました? Benjaminさんのビルドスクリプトだと、あっちこっちパッチ当てて、涙なしには見れないのですが。。。 お仕事かあー、そりゃ大変なるべく力になるよ! winでビルドはあまりにも情報少なくて何度も折れそうになったしね パッチはwinだとOpen Source Waresってトコが頼りになる。 あと ttps://build.opensuse.org/project/show/windows:mingw:win64 と ttp://lfsbookja.sourceforge.jp/BLFS/svn.ja/index.html ここらで情報収集、だけどまず素でビルドしてみてどうしてもダメなら当てる あとスクリプトビルドは極力避け地道にコツコツやるといいかも atlasは前述した通り諦めずもうひたすらmakemakemakemake scipyのビルド手順もどこぞに書いたのでもし興味あれば参考に 基本Open Source Waresさんの情報通りでいいんだけど、umfpackはCHOLMOD関連でエ ラーになるのでmakeのコマンドは make CC="gcc -DCHOLMOD=0" library みたいな感 じでやるといいと思う。 guiならGraphicsMagick、qt4が必要、ちなみにimagemagickだとウチではエラー出た。 python@spyderまで視野に入れるならqt4はwebkitも有効にしなくちゃいけない。 qtはmsys上からではなくてcmdからビルド。msysのツールも使いたいので、msys上から start cmdでコマンドプロンプトを呼び出しビルドする。 staticビルドにするなら、Open Source Waresさんのパッチは必須。winの関数の問題 であれこれライブラリ要求されるけどそれらは随時.proに追加。 それとは別にfreetypeと64bit固有の問題のパッチ当てなきゃダメだったけど、これ は問題に遭遇した時ググればすぐ出てくる。 ちなみにOpen Source Waresさんのpython使うなら自分でビルドした方がいいと思う 何故なら、恐らくwinだと、readlineとcursesを組み合わせると挙動がおかしくなる から。cursesはPDCでも通る(要リネーム)。組み込むならどっちかの2択だと思う。 GCCはトランクから引っ張ってビルドした4.9だけど、いやー去年に比べて随分安定し てきたなー、以前はしょっちゅうセグメントエラー出て大変だったんだけど こんなとこです >>445 その苦労をみてるとUbuntu何かを古いマシンに入れてmxe-octaveで クロスビルドしてwindowsバイナリを作成する方が簡単ですね。 時間はかかるけど,一か所パッチをあてるだけですんなりビルドが通る。 作成されるgnuplotがバギーなので,本家のもので置き換える必要があります。 やばい、ちょっと目を離してる間に、完全に時代に取り残されてるのを感じる… >>445 丁寧にありがとう! うん、めっちゃ泥臭い作業が必要だというのは判った。 遠くない未来にWin 64bitでコンパイルしなければならないのですが、それなりの覚悟をしときます。 Pythonは覚えてみたいと思いつつ放置してたけど、spyder+scipy+matplotlibでここまでできるのか! 疎行列の演算とかはそれほど充実してないみたいだけど、スカラーの数値計算ならMATLABレベルのことはできそう。 あとは、JITあり/なしのOctaveと比べて、どの程度の速度がでるかですが、今度試してみます。 >>446 LinuxでWindowsバイナリをクロスコンパイルできることは聞いたことだけありますけど、そんなにすんなり通るんでしょうか? コンパイル時の問題として @configure/makeを通すためのコマンドが足りないor動作がおかしい Aコンパイラorソースコードのトラブルで、コンパイル時にエラーになる の二種類があるとして、上ではAも大きいみたいですけど、Aの条件ってMinGWとあんまり変わらないんじゃないでしょうか…多分。 Windows上でコンパイルするより楽ならこちらの方法も検討してみたいので、ご意見いただけたらありがたいです。 >>447 441に書きましたが,一か所既出のパッチを当てるだけで通りましたよ。 ただ,使っているマシンが32ビットしか対応できないので64ビット ビルドはやってないのですが。 ちなみに,内部ではBenjaminさんレベルに結構ソースにパッチをかけてやっている。 mxe-octaveは,原理的にはMsys+MinGW(+少しのツール)で動くはずなのですが 全然うまくいきませんでした。なぜ,うまくいかないかは時間がないので追及 してません。 >>441 >>448 http://wiki.octave.org/Windows_Installer には,Ubuntuの例がなかったのでDebainので aptitude installをsudo apt-get installに変える必要があります。 ちなみに,mxeというのはいろいろなOSのパッケージをクロスビルドで 作成するためのシステムのようです。 http://mxe.cc/ mxe-octaveはmxeをもとに,jwe氏が作りはじめて,そのほかのOctave-MLに 登場するメンバーなどがかかわってメイテイテナンスされています。 いいところはOctaveの開発メンバーが直接かかわっている点です。 返信感謝です。 mxe-octave、さっそく確認してみました。 てっきりOctave本体だけの話かと思ってましたが、関連ライブラリも含めてコンパイルしてくれるんですね。 また、仰るとおり、パッチを山ほど当ててるみたいです。 http://hg.octave.org/mxe-octave/file/44eb8941c35f/src なるほど、使いこなせれば、かなり便利そうですね。 ありがとうございます! 廃棄予定のXPマシンをいただいて、Ubuntu(12.04 LTS 64bit)をいれました。 AthlonX2 (64bit)のマシンだったのでメモリを4Gに増設してして使っています。 何とかjit付きでoctave-3.8.1のビルドに成功しました。 ttp://octave.1599824.n4.nabble.com/Is-configure-check-TargetData-h-in-llvm-obsolate-Octave-3-8-1-td4663673.html その結果、 octave:1> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc Elapsed time is 2.99728 seconds. octave:2> jit_enable(1) octave:3> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; end; toc Elapsed time is 0.0284832 seconds. >>434 よりだいぶ性能がいい。マシンのせいなのか。Octaveが3.8.0から3.8.1になったのが いいのか分かりませんがなかなかいい感じです。 http://mxeoctave.osuv.de/ に置かれたoctave-3.8.1(MinGW32)がrelease-2になってます。 しかし、本屋の統計コーナーはRばっかりだなあ MATLAB系はScilabも含めてほとんど使われてない Rのどこがいいんだかよくわからない まあ統計の教科書のほとんどがS言語ってのが大きいのかな >>453 > まあ統計の教科書のほとんどがS言語ってのが大きいのかな その流れでRが流行っているね。 とりあえず現状は、R使っておけば安心。 だけど、今後は、Python択一になりそうな勢い。 OctaveでやれることもPythonでみたいな。 oct ファイルおよび Octave の C++の内部インターフェースについて調べています。 NDArray と Matrix という、一見よく似たクラスがあるのですが、 これらはどう使い分けるのでしょうか? パソコンを新しくしたのでWindows8.1になったのも含めて OctaveやらScilanbやらインストールしてたのだけど Core i5-5200U 2.2GHzのマシンで Octave Windows VS2010 ver 3.6.4 で n=4096;A=rand(n,n);B=rand(n,n);tic;C=A*B;t=toc,GFLOPS=2*n^3/t*1e-9 をやると t = 9.2240 GFLOPS = 14.900 だったのに、Scilab-5.5.2 64bitで stacksize('max') としてから n=4096;A=rand(n,n);B=rand(n,n);tic();C=A*B;t=toc,GFLOPS=2*n^3/t*1e-9 をやると、 t = 4.021 GFLOPS = 34.180292 になった。 実はScilabには Intel MKLが入っていて、Octaveに入っているOpenBLASではSSE3までしか対応していないのに対して MKLではAVX2に対応してるので、1クロックの倍精度実数の演算回数がSSE3の2回から4回に増えるためだと思う。 理論演算速度は2.2GHzの場合、SSE2で17.6GFLOPS、AVX2で35.2GFLOPSで、理論値通りの性能がでているようだ。 Octave 4.0出たようですが、plotでグラフを描くとフリーズします Windows7 64bit WIndows8.1 32bit の両方で確認しております それと、MATLABがMATLAB Homeとして、個人用の場合 1万5000円ぐらいで買えるようになりました Simulinkを含めたtoolbooxも各4500円で買えます Octaveもいいですが、ちょっとお金がある人はMATLAB Home買った方が幸せかも 上のレスにもある通りMATLABならMKLが入っているので SSE2, AVX, AVX2というSIMD命令とマルチコア演算による 高速な行列演算が可能になります Matlab Home Edition は あくまで個人用途みたいだから ライセンス気を付けないとね でも個人用途でMatlab使う人なんて そんなにいるの? >>458 自宅で作業する場合とかにあると便利でしょうね Matlab homeの制限はここに載ってます(以下機械翻訳) http://jp.mathworks.com/products/matlab-home/includes/faq.html よくある質問 MATLAB Homeライセンスを購入して使用することができますQ.? A. MATLAB Homeライセンスは、あなたの個人的な使用のためです。 これは、政府、学術、研究、商業、またはその他の組織使用することはできません。 Q. MATLABホームとMATLABのプロ版の違いは何ですか? A. MATLABホームは、MATLABのプロフェッショナル版と同じパワーと機能を提供します。 違いは、MATLABホームは、個人使用のためにのみ利用可能であり、 政府、学術、研究、商業またはその他の組織の目的に使用することができないことです。 個人で買って家庭のPCにインストールして、家庭で作業をするのはOK そのアウトプットを組織のアウトプットとして使う場合は、 組織でライセンス取ってねという話だと思われます MathWorksがやりたいのは、Matlabの裾野を広げたいということで 個人でOctaveやScilabをやってる連中は、仕事で使う場合は喜んで Matlabの企業ライセンスを買うと思うので、そこはどうでもよくて 一方の、Python系のScipy+Numpy+Matplotが無料で高性能であることから 急速にひろがっておりますが、そちらに行った連中にMatlab体験させるために 格安のMatlabを用意したのでしょう しかし個人利用限定とはいえOptimization Toolboxまで4500円ってのは破格 https://jp.mathworks.com/store/link/products/home/new?u=HOME& ;m=newLicense なるほど python系への対抗なのか 回答ありがとう! >>463 よく言われるんですが、簡単にはスレ立てできないので、許してください。m(__)m 誰かがソフトウェア板にスレ立てしていただけるといいのですが。 なんでUNIX板なんだろうな GNU Octaveだから? >>465 このスレの最初にスレ立ての理由がかかれていますが、現状ほとんどUnix関係ない。誰かがソフトウェア板にスレ立てしてくれることを希望。m(__)m でもソフトウェア板だとmatlabと被るから 更に過疎りそうだぬ ソフトウェア板? matlabスレもないけど プログラム板にはmatlabスレやmathematicaスレがあるようだけど プログラム板と間違えたw プログラミング技術はプログラム板で ソフトウェアの設定や使い方はソフトウェア板か >>467 そうですね。 今のスレがおわる(いつだ?)までこのままでいいのかな。 過疎ってるゆうても、話題があればなんだかんだみんな来るやんw Unix板なのにWindowsの話ですいません。でも、このビルドツールはunix類似環境で動くので言い訳しておきます。 Build instructions using MSYS2/Mingw-w64 https://sourceforge.net/p/gnuplot/support-requests/199/ このインストラクションにそって開発版のgnuplotのビルドが出来ました。 いい時代になったものだ。 >>472 >>473 msys2には本当にいろんなライブラリがある。これを使って、windows nativeな環境でoctaveがビルドできるかもしれない。 #でも、素直にLinux使ってmxe-octaveでビルドする方がはるかに楽だろうが。 octave-4.0.1がリリースされました。octaveのwebページにリリースの詳細とリンクがあります。 4.0.1のリリースにあわせて,拙Wikiのインストール方法を更新しました。 http://www40.atwiki.jp/gnuoctavejp/ ご意見を頂ければ幸いです。 また,Unix関係は,Ubuntuしか事情が分からないので他のディストリビューションの方が 加筆していただけると幸いです。 公式ページにはアナウンスされていませんが,octave-4.0.2がでています。 ftp%3A//ftp.gnu.org/gnu/octave (ソース) ftp%3A//ftp.gnu.org/gnu/octave/windows (windowsバイナリ)。 詳しいことは,Octave MLのNabbleアーカイブで http://octave.1599824.n4.nabble.com/octave-4-0-2-td4676595.html >>477 >>478 >>479 >>480 操作ミスすみませんでした。 ftp%3A//ftp.gnu.org/gnu/octave (ソース) ftp%3A//ftp.gnu.org/gnu/octave/windows (windowsバイナリ)。 詳しいことは,Octave MLのNabbleアーカイブで http://octave.1599824.n4.nabble.com/octave-4-0-2-td4676595.html コロンがASCIIコード 3Aになってる 文字化けとは言わない コピペでそうなっても1文字分くらい手打ちでコロンに変えればよかったのに なにい? ftp%3A//ftp.gnu.org/gnu/octave こうしろと tp://ftp.gnu.org/gnu/octave >>487 ありがとうございます。次回からそうします。m(__)m # しかし、全くoctaveと関係ないネタので盛り上がってますなあ。 4.0.2のリリースにあわせて,拙Wikiのインストール方法を更新しました。 http://www40.atwiki.jp/gnuoctavejp/ ご意見を頂ければ幸いです。 また,Unix関係は,Ubuntuしか事情が分からないので他のディストリビューションの方が 加筆していただけると幸いです。 また、Macは全然わからないのでよろしくお願いしたいと思っています。 >>490 octaveは、データ解析だけのツールではないし、数学だけのソフトでもない。総合的な数値計算ツールの1つだ。(最近はsimpyベースのsymbolic packageがよくなってきて、数学ツールとしての側面もでてきたが。) でも、細かいことをいっても仕方ないので上手く向こうに乗れればいいなあと、思うようになっています。Unix板よりは、いいのかなと。 しばらくは、両方に顔をだします。ここには、長い間お世話になっているので。 現在,MacOSX用のバイナリは https://sourceforge.net/projects/octave/files/ -> Octave MacOSX Binary -> 2016-06-06-binary-octave-4.0.2 でダウンロードできます。 おっ、4.0.2リリースされたのか upgradeしとこ octave 4.0.3がでたようです。 ftp%3A//ftp.gnu.org/gnu/octave (ソース),ftp%3A//ftp.gnu.org/gnu/octave/windows(windowsバイナリ) 現在,MacOSX用のバイナリは https://sourceforge.net/projects/octave/files/ -> Octave MacOSX Binary -> 2016-07-11-binary-octave-4.0.3 でダウンロードできます。 octave-4.2.0-rc1がでました。 ftp%3A//alpha.gnu.org/gnu/octave です。 Octave 4.0.3 のWindowsバイナリ(i686-w64-mingw32)で GUIのコマンドウィンドウでたまにキーボードの入力を取りこぼすんですが うちの環境がまずい?あるいはバグ? >>500 レス遅くてすいません。症状ですが、何ともいえません。私は経験ありませんがタイピングが単に遅いせいかもしれませんし。 また、メーリングリストを見ているとGUI上の不具合は結構環境依存の面があるようです。 4.2.0-rc1 はwindowsバイナリもありますし、こちらを試してみたらいかがでしょう。正式版リリースまでには少しかかるとは思いますが、そう遠くない時期にリリースされると思います。 >501 レスありがとうございます。 自宅/職場のいずれでも発生するので環境ではなさそうな気が。 4.2.0試してみます。 octave 4.2 も引き続きGUIの翻訳をしています。まだ、未翻訳の部分もあります。 ここおかしいとかあれば、教えて下さい。まだ、rc1なので修正ができるので。 octave-4.2.0-rc2 がでました。 windowsバイナリもあります。 tp://alpha.gnu.org/gnu/octave >504 rc2のウィンドウズバイナリ試してみました。 今のところ問題の症状は発生していないようです。 情報有難うございました。 編集→やり直し(Ctrl+Z) の訳は「元に戻す」のほうが一般的かな?という気がします。 >>505 確かに翻訳おかしいですね。 修正を送って適用されたようなので、4.2.0の本リリースでは修正されると思います。 ありがとうございました。 Mac版Octave-gui4.0.3のコマンドウインドウで長い行列をdisp()した時、-- less -- (f)orward, (b)ack, (q)uit となりますけど、qとかquitとか入力しても改行されるだけで抜け出せません これはバグでしょうか? >>507 windowsや linuxでその手の不具合に遭遇していないのでmac版固有の問題かもしれません。 more off でしのぐしかないのかもしれません。 octave-4.2.0も間もなく出そうなので、それがでたら直るかもしれません。 >>508 more off なんてコマンドあったんですね!! 当面はこれで問題なくいけそうです、有難うございます。 公式で4.2来てんね 64bit版も公式で来てたんで試してみたけど 32bitだと四次元配列作るとデータサイズオーバーするんで しょうがなく回りくどい方法で半日かかってた処理が 10分で終わるようになったw ありがてえwありがてえw macに入れたのですが、octave guiの画面のプロンプトに quitといれてreturnを押すと、虹マークがでて回転して止まりません。 apple menuのforce quitを選んで強制終了させても、octave guiの画面は 消えません。 どうすればquitできるのでしょうか? http://savannah.gnu.org/bugs/?50025 にレポートがあるけど、どうしようもないとおもう そこでguiなしで起動する。ターミナルで octave ―no-gui と打つか emacsの設定ファイルに自分で調べて設定を書いて emacsを動かして、 M-x run-octave で起動させるしかない。emacsで起動させるとコードに色がつくからいいよ >>513 https://savannah.gnu.org/bugs/?49053#comment13 に書かれているように、quitの前にclose allを入れてみるとか。 当方macは使ってないので確認できず。 助けてください windows8でOctave4系統(4.0.0と4.2.1)を入れたのですが、起動した後すぐに落ちてしまいます 3.6.4だと動いきました。JREは入っています 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 O91V1J5T75 過疎ってるな。私もpythonに移行しつつある。さようなら。ありがとうございました。 ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、 改憲議員が3分の2を超えております。『憲法改正国民投票法』、 でググってみてください。国会の発議はすでに可能です。 平和は勝ち取るものです。お願い致します。☆☆ mac で4.2の octave 使ってるんだけど。 グラフのラベルに tex 文字表示できないバグありますね。 \theta や \tau としても heta やら au と表示されます。どうやら \t が無視されてしまう模様 皆さんはどおですか ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる