FORTRAN �W
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/12(日) 17:13:35FORTRAN77/90/95/2003, HPF等、FORTRAN全般に関する話題を書き込んで下さい。
・FORTRAN関連情報
お約束だが、まずは自分で調べよう
http://www.google.co.jp/
x86で動作するFortranコンパイラ
http://www.nminoru.jp/~nminoru/programming/x86-fortran.html
The Fortran Company
http://www.fortran.com/
Polyhedron Software
http://www.polyhedron.co.uk/
Google Directory - Fortran
http://directory.google.com/Top/Computers/Programming/Languages/Fortran/
・前スレ
FORTRAN III
http://pc8.2ch.net/test/read.cgi/tech/1104724162/
FORTRAN II
http://pc5.2ch.net/test/read.cgi/tech/1068351911/
Fortran
http://pc2.2ch.net/test/read.cgi/tech/1003214738/
0322デフォルトの名無しさん
2007/07/23(月) 10:15:40オープンにしたからSUNの石専用ってわけじゃないのでは?
確かに踏み台ぽいなw
0323デフォルトの名無しさん
2007/07/23(月) 23:44:19New challenges require new solutions
Guy L. Steele Jr.
ttp://www.ddj.com/dept/architect/184406382
まぁ、それなりに考えがあってFortressを作っているようだ。
Sunがアメリカのスパコン助成から脱落したので、さいさきは暗いだろう。
日本(富士通)で拾う振りをして、アメリカに疑心暗鬼を起こさせるのが吉だと思うwwww
0324デフォルトの名無しさん
2007/07/24(火) 09:34:34スゲーwwww
策士っすねw
0325デフォルトの名無しさん
2007/07/25(水) 00:35:12最近の最速スパコン競争は、なんか土建屋の既得権争いっぽいから、
釣りに走って遊ぶほうが、たしかにいい気がするw
0326デフォルトの名無しさん
2007/08/12(日) 22:19:24ttp://techon.nikkeibp.co.jp/article/NEWS/20070808/137619/
0327デフォルトの名無しさん
2007/08/13(月) 21:56:3053. 次世代、ペタスケール、T2K (2007/8/12)
ttp://grape.mtk.nao.ac.jp/~makino/articles/future_sc/note054.html#rdocsect59
すっぱいぶどうの更新w
0328デフォルトの名無しさん
2007/08/19(日) 02:10:13すみませんが どなたか情報をお持ちでしたら教えて下さい。
0329デフォルトの名無しさん
2007/08/19(日) 18:45:37以前
http://g95.sourceforge.net/
を試したら動いた
0330デフォルトの名無しさん
2007/08/19(日) 19:08:37ttp://g95.sourceforge.net/
でも、なんでパッケージに入ってないんだろう?
0331デフォルトの名無しさん
2007/08/19(日) 20:03:47ttp://gcc.gnu.org/wiki/GFortran
0332デフォルトの名無しさん
2007/08/19(日) 20:17:52ありがとうございまs。試してみます!
0333デフォルトの名無しさん
2007/08/23(木) 23:01:43http://softwareblogs.intel.com/2007/08/22/you-are-in-a-maze-of-twisty-little-passages-all-alike/
0334デフォルトの名無しさん
2007/08/23(木) 23:11:050335デフォルトの名無しさん
2007/08/30(木) 23:10:18MKL買った人カワイソス=おれ
0336デフォルトの名無しさん
2007/08/30(木) 23:28:080337デフォルトの名無しさん
2007/08/31(金) 00:31:24忘れたがMKLのライセンスからをコンパイラのライセンスに転換できて2個分になったんじゃ中田ッけ?
ガセだったら酢マンコw
0338335
2007/08/31(金) 01:05:11安く(1万円くらい)できただけだった。いずれにしても、MKL単体で買って損した気分だ。
0339デフォルトの名無しさん
2007/09/07(金) 13:02:07NAGのcompiler IntelMac版登場 トライアルができる
0340デフォルトの名無しさん
2007/09/08(土) 21:10:14http://icl.cs.utk.edu/lapack-for-windows/nmake_install.html
の手順に従いlapackとblasを導入しようとしてますが
1. C:\Program Files\LAPACK_3.1.1_for_Windows\LAPACK 3.1.1 for Windows\ に移動
2. set_environment.bat x86 Intel
と入力(Blasはデフォルトを使用)
4. nmake /nologo all
とすると
xilib.exe /OUT:"C:\Program Files\LAPACK_3.1.1_for_Windows\LAPACK 3.1.1 for Windows\blas.lib" *.obj
が実行されているときに次の旨の表示がでてうまくいきません。
"lib"を実行しています
"lib"がみつかりません
>>197
の slim に相当する形でxilibが使われているものだと思うんだけど、どう使用すればうまくいくのかわかりません。
ちなみにxilib に代えて xilink /lib を使っても同じです。
blas.lib lapack.lib を作るにはどうすればよいでしょうか?
0341デフォルトの名無しさん
2007/09/09(日) 13:51:43fortran95を使っているのですが
do i=1, size(A)
A(i) = hoge + i * fuga
end do
みたいのを
A = hoge + [なにか] * fuga
のようにして添字を配列演算に用いて一行にまとめられないのでしょうか?
それと
do i=1, size(A)
hoge = 複雑な式
A(i) = hoge * fuga
B(i) = hoge * piyo
end do
のような場合、
A = 複雑な式 * fuga
B = 複雑な式 * piyo
と書く事で二度計算されてしまうのは無駄ですし
式が長くなって読みづらいのですが、配列演算に対する一時変数のようなものは無いのでしょうか。
0342デフォルトの名無しさん
2007/09/09(日) 21:33:40Visual Studioに含まれているlib.exe/link.exeへのパスが通ってない。
通常はset_environment.batから呼ばれている
"%IFORT_COMPILER91%\IA32\Bin\ifortVars.bat"
の中でVSへの設定も行われるはずだが
環境変数 IFORT_COMPILER91 はIVF9.1用の設定なので
IVF9.0なら IFORT_COMPILER90、10.0なら IFORT_COMPILER10
に変更する必要がある。
ifortVars.bat を実行してもlib.exe/link.exeが使えない場合は
ifortVars.bat を修正するか、予めVS中の VSVars32.bat か
VCVars32.bat を実行しておく必要がある。
0343デフォルトの名無しさん
2007/09/09(日) 23:48:01A = hoge + (/(i,i=1,size(A))/) * fuga
0344デフォルトの名無しさん
2007/09/10(月) 17:01:44ありがとうございます。こんな素直な方法があったんですね。
後者については今のところ難しいでしょうか。
あと配列演算に使える関数が作れるといいのですが、これも難しいですかね。
配列をもらって配列を返すようなタイプだと一次的に戻り値用の配列を確保しなくてはいけないので現実的ではないんです。
0345デフォルトの名無しさん
2007/09/10(月) 19:36:29しかし>>343のようにやると、いったん暗黙のテンポラリ配列が生成されて
それから積が取られることになるので、DO LOOPの展開式とは等価ではない。
>あと配列演算に使える関数が作れるといいのですが、これも難しいですかね。
elementalだったかpureオプションつければ可能だった気がする。
調べてくれw
0346345
2007/09/11(火) 01:37:16MODULE m_elemental
CONTAINS
ELEMENTAL REAL FUNCTION watson(x)
IMPLICIT NONE
REAL, INTENT(IN) :: x
watson = x**2
RETURN
END FUNCTION watson
END MODULE m_elemental
!
PROGRAM holmes
USE m_elemental
IMPLICIT NONE
INTEGER :: i
REAL :: x(10), y(10)
DO i = 1, 10
x(i) = REAL(i)
END DO
y = watson(x)
PRINT '(10f7.1)', x
PRINT '(10f7.1)', y
STOP
END PROGRAM holmes
1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
1.0 4.0 9.0 16.0 25.0 36.0 49.0 64.0 81.0 100.0
Press any key to continue . . .
elemental ⊂ pure だったw
0347デフォルトの名無しさん
2007/09/13(木) 12:33:44試してみましたが確かにテンポラリ配列作られてますね。
elementalは便利ですね。ありがとうございました。
0348デフォルトの名無しさん
2007/09/13(木) 19:16:35a(1:n) とか部分配列の類もテンポラリを作ることが多いので、
ソースコードが短くなるからと調子に乗って、DO LOOPの代わりに乱用すると、
思わぬところでスタックオーバーフローとかで憤死する。
ベクトル機の場合は一旦テンポラリ配列に展開したほうが早くなるだろうが、
パイプラインのスカラー機の場合はDO LOOPのままの方が早いのではないかと思う。
まぁ勝手に最適化するかも知れんし、トレードオフが色々あるので、なんとも胃炎が。
0349デフォルトの名無しさん
2007/09/18(火) 15:26:340350デフォルトの名無しさん
2007/09/18(火) 22:17:040351デフォルトの名無しさん
2007/09/21(金) 00:26:580352デフォルトの名無しさん
2007/09/21(金) 01:08:09日本語マニュアルは別途ダウンロードできるし。
0353デフォルトの名無しさん
2007/09/21(金) 23:56:06fortran77を使っているのですが、コンパイラ時にはノーエラーで、実行のときランタイムエラーと表示されるのですが、
WARNING - Label 170 has not been referenced
NO ERRORS,1 WARNINGS [<MAIN@>FTN77 Ver 4.03]
Creating executable: sinchouryuu.exe
*** Unable to create executable file: sinchouryuu.exe
実行可能なファイルの作り方を教えて下さい。
あと、実行時のエラーの
00401000 MAIN# [+174f]
て書いてあるのですが、どういう意味でしょうか?
因みに170行は
166:* cnbの転置行列
167:
168: do 70 j=1,10
169: do 80 i=1,6
170:
171: cbn(j,i)=cnb(i,j)
172:
173: 80 continue
174: 70 continue
こんなんなんです。
0354デフォルトの名無しさん
2007/09/22(土) 00:01:51どういった風に作るのか、作り方をどなたかおしえてください!
0355デフォルトの名無しさん
2007/09/22(土) 21:55:29>fortran77を使っているのですが
それは「規格の種類」であってこの場合、それよりも使用しているコンパイラや
OSの名前を書いてくれた方がありがたい。
> WARNING - Label 170 has not been referenced
「170行」ではなく文番号の170が参照されていない。
> *** Unable to create executable file: sinchouryuu.exe
> 実行可能なファイルの作り方を教えて下さい。
おそらくsinchouryuu.exeを実行中で書き換えられないのだろう。
すべてのsinchouryuu.exeを終了させてからコンパイルするのだ。
> 00401000 MAIN# [+174f]
> て書いてあるのですが、どういう意味でしょうか?
MAIN#(プログラムの開始位置)から 5919バイト目の位置でエラーが発生した。
エラーの種類はFTN77の場合、ダイアログの上の方に書いてある。
>>354
つ google
0356デフォルトの名無しさん
2007/10/16(火) 01:37:18plato3(日本語不使用)でコンパイル実行可能でした
↓
fcpadを利用しては出来ないですか?
コンパイラパス
C:\Program Files\Silverfrost\FTN95\ftn95.exe
と入力
*** Invalid executable file suffix - only .EXE is permitted
とでてコンパイルできない。
秀丸でマクロを使おうかと思いきや、
PATHが通らず失敗。
誰か、ご指導願います・・・。
0357デフォルトの名無しさん
2007/10/16(火) 02:17:02くだすれFORTRAN(超初心者用)その2
http://pc11.2ch.net/test/read.cgi/tech/1164121236/355
0358デフォルトの名無しさん
2007/10/23(火) 23:51:02あまり高速化しませんでした。プログラムによってはむしろ遅くなることも。
サポートに問い合わせたら、こちらでも2コアでは確かにスピードダウンが
確認できましたが、4コアではスピードアップが確認できました、と回答。
まるでリフォーム詐欺のようだ・・・
単純な行列×ベクトルのみの計算でも最大30%アップ程度なのだが
並列計算ってそんなものですか?
0359デフォルトの名無しさん
2007/10/24(水) 01:28:55QuadコアなCPU?
0360デフォルトの名無しさん
2007/10/24(水) 01:48:48自動並列化は、そんなもんだよ。スパコンでも同じ。
まぁ並列化よりSSEの方が簡単に簡単にスピードが出るようになる。
0361デフォルトの名無しさん
2007/10/24(水) 03:04:44Qparallelって要するに自動でOpenMPディレクティブ入れてるだけだよね?
最近のOpenMPはどうなんだろう・・・古い古いとよく言われるけど、今後のマルチコアCPUで通用しなくなるのだろうか
0362デフォルトの名無しさん
2007/10/24(水) 09:34:52行列積とか素朴な演算ならSSEを入れれば単精度は4倍速、倍精度は2倍速とか、素直に早くなる。
コンパイル時のメッセージにベクトル化云々と出ればSSE使ってる。
0363358
2007/10/24(水) 11:02:26現在はOpteron1210(DualCore)を使っています。
インテルからはまるでQuadCoreのCPUを買えというような回答だったので、
詐欺商法のように聞こえました。
SSEは使っています。
CPUのクロック数があがらなくなった現在では並列計算にしないと
スピードアップが望めなくなると思い、並列を検討しています。
自分の勉強不足も大きいのですが、誇大広告にがっかりです。
0364デフォルトの名無しさん
2007/10/24(水) 11:20:56こういうのって大抵まともな(役に立つ)回答は期待できないものでは?
MSよりはマシだけど・・・
結局ググるなり2chなりどっかのコミュニティなりで探すしかないんだよね
0365358
2007/10/24(水) 12:58:59バージョンアップ込みで年間数万円(いくらか忘れた)のサポート料を払っているので、
使ってみたのですが、本当にがっかりです。
サポート料金を10倍にしてもいいので、まともな回答を期待したいです。
ググってますがなかなかいい情報が出てこないです。
私の最高は3割増が最高で、実務的な計算ではほとんど役に立ちません。
あれこれ考えている間に、時間をかけて計算したほうがいいのかと思えてきました。
0366デフォルトの名無しさん
2007/10/24(水) 12:59:13いや詐欺ではない。
既存プログラムを自動並列化して場合、スピードダウンするのはごく普通の現象。
はじめから並列化を前提に設計して、かつ指示行を入れまくってもいまいちなのは、実は常識だw
0367デフォルトの名無しさん
2007/10/24(水) 15:53:27スレ違いな話だけど、本気のガチンコサポートをするなら商売する側としては10倍でもペイしないと思うけどね・・・
そこはしょうがないっすよ
0368358
2007/10/24(水) 16:19:19>>367
あるソフトベンダーは年間140万円のサポートでいたれりつくせり。
(何が原因でしょうね?と問い合わせたら修正されてかえってくる)
そこは最優先でサポートを継続している。
別の40万円のところは、それなりだけど解決のヒントはくれる。
(これらは言語ではなくてアプリケーションですが)
VisualFORTRANは「開発に問い合わせます」のまま放置・・・。
ただ、今回の件については決して特殊な質問ではなく
広告にうたってある性能が出ないよに始まり、
そちらのもっている理想的なプログラムでいいから出してくれといっても
出てこない。いったいどんな質問だったら答えることができるのだろう。
0369デフォルトの名無しさん
2007/10/24(水) 19:20:01言語のサポートの場合、コンパイラのバグに対する対応の早さだと思う。
そういう点でIntelはパッチの出方は早い。
あとサポート掲示板には、様々なレベルの質問が出ているのでこっちも見てみたらいいかも。
ttp://softwarecommunity.intel.com/isn/Community/en-US/forums/1005/ShowForum.aspx
0370デフォルトの名無しさん
2007/10/25(木) 20:49:16NECは25日、世界最高レベルの計算能力を持つスーパーコンピューター「SX−9」を開発し、
発売を始めたと発表した。1秒160億回の計算能力を持ち、最大限の512台を連結して運用し
た場合、1秒839兆回の計算が可能なシステムが完成する。
新開発の高性能CPU(中央演算処理装置)を搭載した。国内外の大学や研究機関などが、
気象予測やロケットの設計、核融合のシミュレーションなどに利用することを想定している。
価格は1億5000万円。
現在の世界最速のコンピューターシステムは米IBMが開発し、秒間280兆回の計算ができる。
NECは、10年の完成を目指す世界最速スパコンの開発計画を、日立製作所や富士通と進めて
いる。
ttp://mainichi.jp/select/biz/news/20071026k0000m020076000c.html
0371デフォルトの名無しさん
2007/11/02(金) 00:54:14ttp://www.ibm.com/developerworks/power/cell/downloads.html
ttp://cell.fixstars.com/ps3linux/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
0372デフォルトの名無しさん
2007/11/02(金) 13:20:39でも低価格の普及ゲーム機を使えるってのがそもそものウリなんだから、今のXboxやwiiに苦戦してる状況じゃ厳しいんじゃないか?
0373デフォルトの名無しさん
2007/11/02(金) 23:44:01著者: japan.internet.com 編集部 プリンター用 記事を転送
NEC は1日、東北大学情報シナジー機構情報シナジーセンターから、世界最速の
ベクトル型スーパーコンピュータ「SX シリーズ モデル SX-9」16台からなる大規模
スーパーコンピュータシステムを受注したことを発表した。新システムは、最大性能
26.2テラフロップス(テラフロップス:1秒間に1兆回の浮動小数点演算能力)に達し、
SX シリーズでは国内最大規模のシステムになるという。
同センターは、全国の大学や研究機関の研究者が利用する共同施設として、常に
最高・最新鋭の計算機システムを設置し、航空宇宙、地球環境、IT、ナノテク分野など
最先端の学術研究を支援。他では実行できない大規模シミュレーションの実行環境の
整備、専門的立場からの利用者プログラムの高速化推進を積極的に行い、長年研究者
にとって使い勝手の良いシステムが構築されている。現在、センターの利用者は学内外で1,500人を超えるという。
同センターは、その前身である大型計算機センターが1986年に SX シリーズを導入して以来、
ベクトル型スーパーコンピュータを採用している。
http://japan.internet.com/busnews/20071101/3.html
0374デフォルトの名無しさん
2007/11/06(火) 14:00:01http://opentechpress.jp/enterprise/07/10/26/0340253.shtml
0375デフォルトの名無しさん
2007/11/06(火) 23:51:09阪大センターはハッカーにやられてから、セキュリティーが強化されすぎて
使いにくくなったって知り合いが言ってたなー。
数年前のことだが。
0376デフォルトの名無しさん
2007/11/23(金) 16:54:320377デフォルトの名無しさん
2007/11/23(金) 17:13:220378デフォルトの名無しさん
2007/11/29(木) 13:22:06日本ニューメリカルアルゴリズムズグループ株式会社
LAPACKサンプルプログラム集を公開開始
LAPACKの利用がより身近に!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
日本ニューメリカルアルゴリズムズグループ株式会社(東京都中央区、以下
日本NAG)は、netlibにより公開されている線形代数パッケージ「LAPACK」の
サンプルプログラム集を公開いたします。これによりLAPACKを利用するユーザ
プログラムの開発が、よりスピーディーに行えるようになります。
公開URL:http://www.nag-j.co.jp/lapack.htm
また、日本ニューメリカルアルゴリズムズグループ株式会社ではより高性能な
LAPACKを、NAGライブラリ製品(NAG Fortran SMP Library)と共に提供してい
ます。
■ LAPACKについて
LAPACKはLinear Algebra PACKageの略で、netlib(http://www.netlib.org/)
により公開されている高性能線形代数パッケージです。(日本語ではエルエー
パック、もしくはレイパックと発音されます)連立一次方程式、最少二乗問題
固有値問題、特異値問題を解くためのサブルーチンが含まれています。
■ NAG Fortran SMP Libraryについて
1500以上のサブルーチンから構成される並列科学技術、統計計算ライブラリ
です。1500のサブルーチンの中には並列化済みのLAPACKルーチンも数多く含ま
れており、LAPACKを利用するプログラムを1行も変更することなく、性能を
更に高めることが可能です。
0379デフォルトの名無しさん
2007/12/06(木) 03:09:490380デフォルトの名無しさん
2007/12/06(木) 10:03:56図書館へ行って、データ処理の本を読むんだ!
0381デフォルトの名無しさん
2007/12/06(木) 19:03:500382デフォルトの名無しさん
2007/12/07(金) 22:27:07いますぐ俺の口座に3000円振り込むんだ!
0383デフォルトの名無しさん
2007/12/09(日) 12:57:370384デフォルトの名無しさん
2007/12/12(水) 20:46:38途中で止まってしまいます。
Runtime error from program:c:\users\○○○○\documents\fortran\traje_0point.exe
Unknown floating point exception 91a1
Floating point co-processor fault at address 00401ef8
00401ad0 GOENTR [+0428]
00401000 main [+059c]
eax=00000b77 ebx=00000096 ecx=00000000
edx=0365fc38 esi=0365fcdc edi=0365fcd8
ebp=0365fc94 esp=0365fbd8 IOPL=0
ds=0023 es=0023 fs=003b
gs=0000 cs=001b ss=0023
flgs=00010206 [NC EP NZ SN DN NV]
00401ef8 fsqrt
00401efa fmulp st(1)
00401efc fmul [0044a2c0]
誰かこのエラーの意味ならびに解決策をご教授していただけないでしょうか?
ちなみに○○○○のところは私の名前が入ってるので、伏せておきました。
0385デフォルトの名無しさん
2007/12/12(水) 22:23:51コプロの機械語の命令に対応物が無いのだから、コンパイル時に対象機種以外の命令が入るような
最適化をしたのではないかと思われる。
Pen4SSE2を無印ペンチアムで動かすとか、AMD用SSE命令をIntelで動かすとか。
そうだとすれば、最適化を落とすか、対象機種を明示的に指定するか、全機種対象にオプションを変えればいい。
0386デフォルトの名無しさん
2007/12/13(木) 01:46:25ちょうどfsqrtのところ(00401ef8)で例外が起きているので
GOENTRの中でSQRT()に負の数を渡す等の不正な計算を
しているように見えるが。
0387デフォルトの名無しさん
2007/12/13(木) 16:42:460388デフォルトの名無しさん
2007/12/13(木) 23:13:020389デフォルトの名無しさん
2007/12/14(金) 18:44:44自己解決しました。
ありがとうございました。
0390デフォルトの名無しさん
2007/12/15(土) 00:00:18今後、他の方の問題解決に役立つこともありますので
出来ればコンパイラの種類や解決方法を公開できる範囲で良いので
書き込んでもらえると有難いです。
0391デフォルトの名無しさん
2007/12/22(土) 10:35:080392デフォルトの名無しさん
2007/12/23(日) 10:22:03end
0393デフォルトの名無しさん
2007/12/25(火) 23:51:380394デフォルトの名無しさん
2007/12/26(水) 21:28:28-traceback オプションででちゃんとソース名と行番号まで表示されるぞ。
0395デフォルトの名無しさん
2007/12/26(水) 21:50:420396デフォルトの名無しさん
2007/12/26(水) 23:18:42頼む。やってみてくれ。
漏れの環境だと、Windows+VisualStudioのビルドオプションでtracebackをつけているのだが、
9.1だとTracebackを吐くが、Ver10.0やVer.10.1だと普通の実行時エラーしか出ない。
ツール+オプションでコンパイラだけ変えているはずなので、オプション指定は共通だと思うのだが・・
0397デフォルトの名無しさん
2007/12/27(木) 01:48:12・VS上で[デバッグ] -> [デバッグ開始] (F5) で実行
VSのデバッガ上でブレイクがかかる(「呼び出し履歴」にスタックトレースを表示)
・VS上で[デバッグ] -> [デバッグなしで開始] (Ctrl + F5) で実行
トレースバック情報を表示せずに終了
・別途コマンドプロンプトを開いて実行
トレースバック情報を表示して終了
となった。
0398デフォルトの名無しさん
2007/12/28(金) 01:15:49�dクス
確認・把握した。
漏れは近年デバッグ実行をまったく使っていなかったのと、エラーの出る奴は
コマンドラインから実行したことがなかったので気づかなかったw
多分、デバッグなし実行でもトレースバックは呼び出し履歴に強制リダイレクトされているが、
(error出力かなんかで)
この場合呼び出し履歴を見るメニュー項目が無いというバグなのだろうw 空想だがw
0399デフォルトの名無しさん
2007/12/29(土) 19:18:050400デフォルトの名無しさん
2007/12/30(日) 11:51:04いや、昔は使っていたけど、なんというか、Fortran向きでない感じがして。
巨大配列のはみだしとかの検出に向いてないせいかな?
0401デフォルトの名無しさん
2008/02/21(木) 23:04:140402デフォルトの名無しさん
2008/02/21(木) 23:57:48IBMのコンパイラが一番進んでるって聞いたんだけど。
どうなのかね?
NAGも最近おとなしいし。
0403デフォルトの名無しさん
2008/03/16(日) 17:47:06小規模のものは、MATLABで、不完全三角分解前処理+BiCGSTABとかGMRESで解いてきました。
しかし方程式の大きさが1万を超えるあたりから、MATLABの組み込みソルバーのメモリ効率が悪くて
Fortranに戻ってきた次第です。
今、とりあえずMKLを入れてみて、その中でおすすめ(?)ぽかったPARDISOを使ったコードを組んでみて
サイズ5万くらいだとそれなりの速さで解いてくれることがわかりました。MKLのマニュアルには、普通の
疎行列用反復ソルバもあると書いてありますが、サイズが10万とか超えるようになると、PARDISOのような
疎行列直接法より、反復法の方が良いのでしょうか。
ほかのソルバライブラリでは、並列用PETScを試しています。ただ、解いている問題の係数行列が良くないのか
PETScだと収束しないことがあって、PARDISOやMKLを使おうかと思っています。
並列計算に移行するちょっと前くらいの大きさの疎行列連立方程式を解くのにおすすめのライブラリあったら
教えてください。
0404デフォルトの名無しさん
2008/03/16(日) 18:23:17LAPACK か ATLAS ではダメ?そんな大規模な計算をやった事が
無いので、使い物になるかどうかは分かりません。
Linux ならパッケージでインストールできるはず。
ウチの Debian には aptitude で入れた。
0405403
2008/03/16(日) 18:44:46レスサンクスです。
LAPACKとATLASも使ってます!MKLもLAPACKとかLAPACK95を使います。素晴らしい
ライブラリだと思います。
漏れがやりたいのは、疎行列連立方程式なので、LAPACKとかATLASをベースにして
そのラッパーが欲しいという感じです。LAPACKがすでにBLAS/ATLASのラッパーなわけ
ですが。。。
0406デフォルトの名無しさん
2008/03/16(日) 19:57:43一般論からすれば、反復法か直説法かの選択は行列の内容によるんでね?
たちの悪い行列でなければ、反復法の方が有利だと思うけど。
直説法なら確実に有限回で終了することが分かっているが、反復法は直交性が数値誤差で腐るから
数学的にはおかしいが、現実には有限回で終わらなかったりするし。
行列が、ほんとにスカスカの疎か、singularに近いか、固有値が縮退しまくっているかとか、
その辺は使用者しか分からんから、なんともいえないような。
中身の分からん奴に機械的に使わせるから安全第一で行きたいとか、運用面にも依存するし。
0407405
2008/03/16(日) 21:00:50仰るとおりっす。
とりあえず、自分一人で使う(研究)ので、ブラックボックス的で安全なものでなくとも
高速で、導入やコーディングが楽なのが希望です。
行列の状態は悪いです。4x4のブロックに分かれてる感じで、離散化を細かくやると
主対角が卓越して、対角ブロックのみに不完全分解系の前処理掛けると、
それなりに収束しますが、係数行列のサイズが増大するというジレンマです。
疎行列性は、5万x5万で、非零要素が0.1%切ってるくらいです。
ご指摘のように、問題依存性が高いので、なかなかご意見いただくのは難しいかなとは
おもっております。
とりあえず、みなさん、10万x10万くらいの疎行列連立方程式(差分法や有限要素法
なら頻出だと思います)を解くときって、どんな言語で、どんな実装してるんですかね。。。
反復法ソルバもSaadのtemplateの擬似コードから自分で書いてるのか、とりあえず
いろいろソルバライブラリ試してるのか。。。たぶん、疎行列の格納形式から考える必要が
あると思うので、そのあたり、Fortran使いの皆さんがどうやってるのか知りたいです。
0408デフォルトの名無しさん
2008/04/05(土) 16:41:03触れられていた。最近のインテルコンパイラは少し賢くなって、この程度の単純な場合なら
後者で無駄なテンポラリへのコピーをしないようになったようだ。
とはいえ、まだ問題ありと。
ttp://softwareblogs.intel.com/2008/03/31/doctor-it-hurts-when-i-do-this/
0409デフォルトの名無しさん
2008/05/17(土) 02:00:17PCにFORTRANをインストールしてfortranでプログラミングやろうかと
思っています。学生時代にFORTRAN 77を使った経験がある程度。
たしかMS FORTRAN ぱわーすてーしょんつうのも使ったことがあります。
専門家の多そうなこのスレで恐縮なのですが、現行のwinXPが入ってるPCで
動かすとよさげなFORTRANコンパイラは何がいいでしょうか・・。
計算内容は簡単なモンテカルロ法です。
0410デフォルトの名無しさん
2008/05/17(土) 10:28:08http://www.nminoru.jp/~nminoru/programming/x86-fortran.html
見れ。無料でとりあえず試すならcygwin+g77 かminGW+g77でしょう。
コストパフォーマンスならインテルコンパイラか。
どっちにせよ今EXCEL VBAで組めているのなら、今からわざわざFortranなんぞやらずに、
コンパイラ買う金で速いCPU買ったほうがマシだと思うけどね。
0411デフォルトの名無しさん
2008/05/17(土) 22:05:46>>コンパイラ買う金で速いCPU買ったほうがマシだと思うけどね。
レスありがとうです。
VBAって異常に遅いなと思っていたのですが、CPU速くすれば
FORTRANに追いつける程度なのか・・・。
そこらへんがよくわかってないので。
0412デフォルトの名無しさん
2008/05/17(土) 22:13:50VBAよりはだいぶ速いしタダだよ
0413デフォルトの名無しさん
2008/05/17(土) 22:41:52SilverFrostのFTN95とかフリーコンパイラも転がっていることだし、
77でよければWatcomとか昔なつかしいのもあるし、g77のWin用もあるし、
Fortranで素直にやらせてやれw
0414デフォルトの名無しさん
2008/05/19(月) 22:54:50速くなると思っておいていいのですか・・・
0415デフォルトの名無しさん
2008/05/19(月) 23:35:44その速いCPUで動かせばFortranはもっと速くwwww
マジレスするとパラメータサーベイとかなら今の4コアとか使えばかなり効率はあがる。
さすがにBASICがFORTRANを超えることは無理。
自分のプログラミングスキルと作るコードの複雑さから、コーディングやデバッグの
労力を見積もって自分で判断すべし。別にfortranとかVBAに限らんけどな。
VBAはクソ遅いと聞くが使ったことがないのでなんともだが、
Free BASIC VS intel Fortran ではFORTRANが速いといっても高々数倍程度〜コードによってはBASICが勝っている。
http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=ifc&lang2=fbasic
さすがにIntel Fortranはgnu fortranやJava, Mono Ruby なんかには楽々勝利。
>>414
だいだいYES。と言いたいがモンテカルロ法だけでは「乱数を使った確率的解法」ぐらいしか
わからんからなんとも。ランダムウォークのシミュレーションなんかだとCPU周波数に
比例してくれるようなコーディングができる場合が多い。
0416デフォルトの名無しさん
2008/05/22(木) 09:28:10salfordのf77を使っているのですがgoto文のループ内で配列を毎回初期化してたら
ループが途中で終わってしまうのですがどうしたら良いでしょうか?
何でか分からないのですが、初期化しないと繰り返してくれます。あと、以下のプログラムの文
で初期化がi,j共に31の繰り返しだと少し長く繰り返します。
goto文の中にはガウスの消去法のサブルーチンがあります。
100 continue
do i=1,32
do j=1,32
kakunou(i,j)=0
enddo
enddo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
中略(以下このkakunou(32,32)に計算値を代入してます)
途中でガウスの消去法のサブルーチンを呼び出してます
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
goto 100
すいませんが、どなたか教えてください。
0417デフォルトの名無しさん
2008/05/22(木) 11:44:17正直質問の意味がよく分からん。
コンパイラのバグでなければ、ありえない症状なので
ここに書いてない部分がおかしいとしか言いようが無い。
f77の範囲ならg77とか他のコンパイラもあるのでそれで試してみるとか、
salfordのf95で試してみるとかして見るのも一つの案。
0418初心者
2008/05/23(金) 15:40:54Compaq Visual fortran 6.1を使用しているものですが,
練習で以下のプログラムを書いたのですが,cpmpileを押し,
「.F」に変換しても「1errors」が出てしまいます.
なぜ出るのか教えていただけないでしょうか?
初歩中の初歩で申し訳ないです.
INTEGER WIDTH,HEIGHT,AREA
READ(5,*) WIDTH,HEIGHT
AREA=WIDTH*HEIGHT
WRITE(6,*) WIDTH,HEIGHT,AREA
STOP
END
0419デフォルトの名無しさん
2008/05/23(金) 23:58:39エラーでないぞw
エラーメッセージをコピーしてみせてくれ。
0420初心者
2008/05/26(月) 12:58:26早速の返信ありがとうございます.
エラーは以下のように出ます
--------------------Configuration: Text1 - Win32 Debug--------------------
Compiling Fortran...
C:\Documents and Settings\Admin\デスクトップ\Text1.F
f90: Severe: Invalid argument
... file is 'C:\Documents and Settings\Admin\デスクトップ\Text1.F'
Error executing df.exe.
Text1.obj - 1 error(s), 0 warning(s)
自分も以前OSが2000を使用していたときは何のエラーも出なかったのですが,
XPに変えてからエラーが出るようになったように感じます.
お手数をかけて申し訳ないです.
よろしくお願いします.
0421デフォルトの名無しさん
2008/05/26(月) 17:55:54マイドキュメントに移動させな
■ このスレッドは過去ログ倉庫に格納されています