Co-array_Fortranとは? わかりやすく解説

Co-array Fortran

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/11 14:31 UTC 版)

ナビゲーションに移動 検索に移動
Coarray Fortran
パラダイム 並列メッセージパッシング手続き型構造化命令型オブジェクト指向
設計者 Robert Numrich and John Reid
開発者 PL22.3 Fortran Committee
最新リリース Fortran 2008 (ISO/IEC 1539-1:2010)
型付け 強い静的型付け
主な処理系 Cray, GFortran, G95
影響を受けた言語 Fortran
プラットフォーム クロスプラットフォーム
ウェブサイト Co-array Fortran web site
テンプレートを表示

Co-array Fortranは、Fortran 95/2003を並列化を目的として拡張した言語である。以前はF--としても知られ、Robert NumrichとJohn Reidによって開発された。

Co-array Fortranで記述されたプログラムではすべてのスレッドが非同期的に実行されるように扱われる。それぞれのスレッドはイメージと呼ばれる自身のデータオブジェクトを持つ。また、Fortran 95での配列の構文が角括弧と添字を用いてイメージを指定できるように拡張されている。

ISOは2005年5月に次のFortranの標準規格(Fortran 2008)に対してCo-array Fortranを採用することを決定した。

LinuxアーキテクチャにおいてオープンソースのコンパイラでFortran 2008のCo-array Fortranに対応したのはG95が最初である。その他にもCrayなどいくつかの商用コンパイラは以前からCo-array Fortranをサポートしている。

program Hello_World
  implicit none
  integer :: i  ! Local variable
  character(len=20) :: name[*] ! scalar coarray
  ! 注意: "name[<index>]" はリモートのイメージ上の変数への
  ! アクセスであるのに対し "name" はローカル変数である

  ! イメージ1上のユーザーから名前の入力を受ける
  if (this_image() == 1) then
    write(*,'(a)',advance='no') 'Enter your name: '
    read(*,'(a)') name

    ! 他のイメージに名前の内容を分配する。
    do i = 2, num_images()
      name[i] = name
    end do
  end if

  sync all ! 確実に同期をとるために[[バリア]]を設ける

  ! すべてノードで名前を表示する
  write(*,'(3a,i0)') 'Hello ',trim(name),' from image ', this_image()
end program Hello_world

関連項目

外部リンク





固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Co-array_Fortran」の関連用語

Co-array_Fortranのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Co-array_Fortranのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCo-array Fortran (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS