「Fortran」の版間の差分
ナビゲーションに移動
検索に移動
imported>News4vip (→並列処理) |
imported>News4vip |
||
41行目: | 41行目: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | == 主な実装 == | ||
+ | ざっくり | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | ! 製品名 | ||
+ | ! 対応[[OS]] | ||
+ | ! [[ライセンス]] | ||
+ | ! style="width:30em" | 概要 | ||
+ | |- | ||
+ | | [[Oracle Solaris Studio]] | ||
+ | | [[Solaris]], [[Linux]] | ||
+ | | [[フリーソフト]] | ||
+ | | [[NetBeans]]をベースに[[C言語]]と[[C++]]と[[FORTRAN]]の[[コンパイラ]]や[[デバッガー]]、[[パフォーマンスアナライザー]]を搭載したもの。 | ||
+ | |- | ||
+ | | [[PGFORTRAN]] | ||
+ | | [[Windows]], [[Linux]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | [[Visual Studio]]の[[アドオン]]も付いてくる。 | ||
+ | |- | ||
+ | | [[PathScale Compiler Suite]] | ||
+ | | [[Linux]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | | ||
+ | |- | ||
+ | | [[Absoft Pro Fortran]] | ||
+ | | [[Windows]], [[POSIX]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | | ||
+ | |- | ||
+ | | [[G95]] | ||
+ | | [[Windows]], [[POSIX]] | ||
+ | | [[GPL]] | ||
+ | | | ||
+ | |- | ||
+ | | [[GFortran]] | ||
+ | | [[Windows]], [[POSIX]] | ||
+ | | [[GPL v3]] | ||
+ | | | ||
+ | |- | ||
+ | | [[Intel Fortran Compiler]] | ||
+ | | [[Windows]], [[Linux]], [[Mac OS X]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | [[Visual Studio]][[やEclipse]]、[[XCode]]の[[アドオン]]あり | ||
+ | |- | ||
+ | | [[Lahey Fortran]] | ||
+ | | [[Linux]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | | ||
+ | |- | ||
+ | | [[Open64]] | ||
+ | | [[Windows]], [[POSIX]] | ||
+ | | [[GPL]] | ||
+ | | | ||
+ | |- | ||
+ | | [[FNT95]] | ||
+ | | [[Windows]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | | ||
+ | |- | ||
+ | | [[NAG Fortran]] | ||
+ | | [[Windows]], [[POSIX]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | | ||
+ | |- | ||
+ | | [[VS Fortran]] | ||
+ | | [[z/OS]], [[z/VM]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | [[IBM]]製の元祖Fortranの[[メインフレーム]]版である。最近では[[Eclipse]]ベースの[[IDE]]が付いてる。 | ||
+ | |- | ||
+ | | [[Force]] | ||
+ | | [[Windows]] | ||
+ | | [[フリーソフト]] | ||
+ | | [[プログラミング言語]]の[[Forth]]と名前が似てるので注意。 | ||
+ | |- | ||
+ | | [[XL Fortran]] | ||
+ | | [[Linux]] ([[POWER]]と[[Cell]]限定), [[AIX]], [[BlueGene]] | ||
+ | | [[プロプライエタリ]] | ||
+ | | [[IBM]]製の元祖Fortranの[[スーパーコンピューター]]版である。最近では[[Eclipse]]ベースの[[IDE]]が付いてる。 | ||
+ | |} | ||
== 関連項目 == | == 関連項目 == |
2013年10月11日 (金) 10:05時点における版
FORTRAN(読み:ふぉーとらん)とは、ジョン・バッカスとIBMの愉快な仲間たちが開発したプログラミング言語である。
概要
IBMとFORTRANには何も面白いところはない。青いネクタイを装着せずにFORTRANを書くのはシンタックスエラーとなる。
並列処理
FORTRANは基本的な演算や条件分岐などは何の特徴もない平凡なプログラミング言語であるが、配列の演算は以下のように範囲指定で一気に計算が行えるという特徴がある。この記述だけで自動的に賢いコンパイラは並列処理としてくれる。このためCPUのコア数だのスレッド数だのと言った細かいことを意識しなくてもよいので、もう規模が大きすぎて人力では把握しきれないスーパーコンピューターなどの世界では人気が高いという。
program array
! 配列を宣言する。
integer a(10), b(20), c(30)
! 並列処理
! 配列を初期化する。
! 添字なしで配列に代入すると全部に入る。
a = 0 ! 配列全部に0を代入する。
b = 1 ! 配列全部に1を代入する。
c = 2 ! 配列全部に2を代入する。
! 並列処理
! 配列bの添字11から20までと、配列cの21から30までを足して、配列aの1から10に格納する。
! fortranの添字は1から始まる。C言語から来た人は注意。
a(1 : 10) = b(11 : 20) + c(21 : 30)
! 配列の中身を表示する。
print *, a
end program array
上記の演算部分をC#で書くと以下のような感じである。
Parallel.For( 0, 10, i => a[i] = b[i + 10] + c[i + 20] );
C言語やJavaで並列処理を考慮せず書くと以下のような感じである。
for (i = 0; i < 10; i++)
{
a[i] = b[i + 10] + c[i + 20];
}
主な実装
ざっくり
製品名 | 対応OS | ライセンス | 概要 |
---|---|---|---|
Oracle Solaris Studio | Solaris, Linux | フリーソフト | NetBeansをベースにC言語とC++とFORTRANのコンパイラやデバッガー、パフォーマンスアナライザーを搭載したもの。 |
PGFORTRAN | Windows, Linux | プロプライエタリ | Visual Studioのアドオンも付いてくる。 |
PathScale Compiler Suite | Linux | プロプライエタリ | |
Absoft Pro Fortran | Windows, POSIX | プロプライエタリ | |
G95 | Windows, POSIX | GPL | |
GFortran | Windows, POSIX | GPL v3 | |
Intel Fortran Compiler | Windows, Linux, Mac OS X | プロプライエタリ | Visual StudioやEclipse、XCodeのアドオンあり |
Lahey Fortran | Linux | プロプライエタリ | |
Open64 | Windows, POSIX | GPL | |
FNT95 | Windows | プロプライエタリ | |
NAG Fortran | Windows, POSIX | プロプライエタリ | |
VS Fortran | z/OS, z/VM | プロプライエタリ | IBM製の元祖Fortranのメインフレーム版である。最近ではEclipseベースのIDEが付いてる。 |
Force | Windows | フリーソフト | プログラミング言語のForthと名前が似てるので注意。 |
XL Fortran | Linux (POWERとCell限定), AIX, BlueGene | プロプライエタリ | IBM製の元祖Fortranのスーパーコンピューター版である。最近ではEclipseベースのIDEが付いてる。 |