「Fortran」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 13行目: | 13行目: | ||
=== 並列処理 === | === 並列処理 === | ||
FORTRANは基本的な演算や[[条件分岐]]などは何の特徴もない平凡な[[プログラミング言語]]であるが、[[配列]]の演算は以下のように範囲指定で一気に計算が行えるという特徴がある。この記述だけで賢い[[コンパイラ]]は自動的に[[並列処理]]としてくれる。このため[[プログラマー]]は[[CPU]]のコア数だのスレッド数だのと言った細かいことを意識しなくてもよく、もう規模が大きすぎて人力ではそれらを把握しきれない[[スーパーコンピューター]]などの世界では人気が高いという。 | FORTRANは基本的な演算や[[条件分岐]]などは何の特徴もない平凡な[[プログラミング言語]]であるが、[[配列]]の演算は以下のように範囲指定で一気に計算が行えるという特徴がある。この記述だけで賢い[[コンパイラ]]は自動的に[[並列処理]]としてくれる。このため[[プログラマー]]は[[CPU]]のコア数だのスレッド数だのと言った細かいことを意識しなくてもよく、もう規模が大きすぎて人力ではそれらを把握しきれない[[スーパーコンピューター]]などの世界では人気が高いという。 | ||
< | <syntaxhighlight lang="fortran"> | ||
program array | program array | ||
! C言語のように変数の型宣言を強制させる。 | ! C言語のように変数の型宣言を強制させる。 | ||
| 39行目: | 39行目: | ||
end program array | end program array | ||
</ | </syntaxhighlight> | ||
上記の演算部分を[[C Sharp|C#]]で書くと以下のような感じである。 | 上記の演算部分を[[C Sharp|C#]]で書くと以下のような感じである。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
Parallel.For( 0, 10, i => a[i] = b[i + 10] + c[i + 20] ); | Parallel.For( 0, 10, i => a[i] = b[i + 10] + c[i + 20] ); | ||
</ | </syntaxhighlight> | ||
[[C言語]]や[[Java]]で[[並列処理]]を考慮せず書くと以下のような感じである。 | [[C言語]]や[[Java]]で[[並列処理]]を考慮せず書くと以下のような感じである。 | ||
< | <syntaxhighlight lang="java"> | ||
for (i = 0; i < 10; i++) | for (i = 0; i < 10; i++) | ||
{ | { | ||
a[i] = b[i + 10] + c[i + 20]; | a[i] = b[i + 10] + c[i + 20]; | ||
} | } | ||
</ | </syntaxhighlight> | ||
== 主な仕様 == | == 主な仕様 == | ||