HOME > システム > FX10 > FX10 利用の手引き > 第7章 コンパイラ

第7章 コンパイラ

7.1 概要

 FX10 スーパーコンピュータシステムには、富士通社製コンパイラ (Fortran 77/90、C、C++) とGCC、g95 を用意しています。ログインノードと計算ノード・インタラクティブノードでは、ハードウェアアーキテクチャが異なる (バイナリ互換がない) ため、プログラムを実行する計算機にあわせてコンパイルする必要があります。それぞれの言語について、ログインノードではクロスコンパイル環境 (コマンド) を用意しています。なお、本章で記載している内容の詳細については、利用支援ポータルで公開している「利用手引書」や、各種コンパイラのマニュアルをご覧ください。

表 1.エンディアンの違い
エンディアン 備考
ログインノード リトルエンディアン クロスコンパイル環境を提供
インタラクティブノード ビッグエンディアン
計算ノード ビッグエンディアン

▲ 第7章 コンパイラ TOPへ

7.2 コンパイルコマンド

 FX10 スーパーコンピュータシステムでコンパイルするコマンドは以下の表の通りです (表 2)。ログインノードで計算ノード・インタラクティブノード実行ができるバイナリを生成する場合には、クロスコンパイラを使用します。また、バッチジョブやインタラクティブジョブ中でコンパイルする場合にはオウンコンパイラを使用します。


表 2.コンパイルコマンド一覧
言語 クロスコンパイラ
(ログインノードで使用)
オウンコンパイラ
(計算・インタラクティブノードで使用)
Fortran 77/90 frtpx frt
MPI mpifrtpx mpifrt
C fccpx fcc
MPI mpifccpx mpifcc
C++ FCCpx FCC
MPI mpiFCCpx mpiFCC
XPFortran xpfrtpx xpfrt

▲ 第7章 コンパイラ TOPへ

7.3 富士通社製 Fortran 77/90 コンパイラ

 FX10 スーパーコンピュータシステムで使用できる富士通社製 Fortran 77/90 コンパイラの仕様は以下の通りです (表 3)。また、自動並列化、OpenMP・MPI 実行する場合などは、以下のオプションを指定してください (表 4)。なお、コンパイル時に使用できる最適化オプションなどの詳細については、利用支援ポータルで公開している「利用手引書」や、各種コンパイラのマニュアルをご覧ください。


               表 3. 言語仕様 (Fortran 77/90 言語)

表 3.言語仕様 (Fortran 77/90 言語)


               表 4. Fortran コンパイルコマンド

表 4.Fortran コンパイルコマンド
▲ 第7章 コンパイラ TOPへ

7.4 富士通社製 C/C++ コンパイラ

 FX10 スーパーコンピュータシステムで使用できる富士通社製 C、C++ コンパイラの仕様は以下の通りです (表 5)。また、自動並列化、OpenMP・MPI 実行する場合などは、以下のオプションを指定してください (表 6、表 7)。なお、コンパイル時に使用できる最適化オプションなどの詳細については、利用支援ポータルで公開している「利用手引書」や、各種コンパイラのマニュアルをご覧ください。



               表 5.言語仕様 (C、C++ 言語)

表 5. 言語仕様 (C、C++ 言語)


               表 6. C コンパイルコマンド

表 6. C コンパイルコマンド


               表 7. C++ コンパイルコマンド

表 7. C++ コンパイルコマンド
▲ 第7章 コンパイラ TOPへ

7.5 富士通社製 XPFortran

 FX10 スーパーコンピュータシステムでは、富士通社が開発したデータ並列型言語である XPFortran が利用できます。XPFortran では、Fortran ソースプログラムに翻訳指示行を挿入することによりプロセス並列化を可能とする並列化Fortran 言語です。詳細については、利用支援ポータルで公開している「利用手引書」、「XPFortran使用手引書」をご覧ください。


XPFortran が有する並列処理を行うためのおもな機能

  • グローバル空間とローカル空間
    • 物理的には各ノードのメモリを利用しながら、論理的には一つのメモリ空間に見えるグローバル空間を提供
    • 各プロセスにはローカル空間も存在し、ローカル空間に割り当てられているデータは高速にアクセス可能
  • 同期・排他制御
    • 文の並びやDO ループの繰り返しなどの分割処理終了時に自動でバリア同期可能
    • 共通の資源を複数プロセスからアクセスする場合の排他制御文
  • プロセス間データ転送
    • グローバル空間上の変数にアクセスした際に自動でプロセス間データ転送を実施
  • マルチスレッド実行との併用
    • 自動並列/OpenMP によるマルチスレッド並列化とXPFortran によるマルチプロセス並列化によるハイブリッド実行可能
▲ 第7章 コンパイラ TOPへ

7.6 GNU Compiler Collection

 FX10 スーパーコンピュータシステムでは、富士通社製コンパイラ以外に、GNU コンパイラが利用できます。ただし、FX10 スーパーコンピュータシステム向けに拡張されていないため、実行性能が富士通社製コンパイラを使用した場合とでは大きく異なることがありますので、ご注意ください (基本的には、富士通社製コンパイラをご使用ください)。

▲ 第7章 コンパイラ TOPへ