User Tools

Site Tools


数値計算ライブラリ:gcc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
数値計算ライブラリ:gcc [2020/03/09 13:37]
koudai
数値計算ライブラリ:gcc [2021/06/27 22:04] (current)
Line 2: Line 2:
  
   * GCCは Gnu Compiler Collection の略で、基本的なプログラミング言語のコンパイラを提供します   * GCCは Gnu Compiler Collection の略で、基本的なプログラミング言語のコンパイラを提供します
 +  * aptでよい(gccのバージョンを気にしない)のであれば、次のコマンドで手に入ります<code> 
 +$ sudo apt install build-essential gfortran 
 +</code>
 ====== インストール ====== ====== インストール ======
  
 ===== 検証環境 ===== ===== 検証環境 =====
  
-  * Ubuntu 18.04 LTS+  * Ubuntu 20.04 LTS
  
 ===== 準備 ===== ===== 準備 =====
Line 14: Line 16:
 入っていない場合は以下のようにして入手します。 入っていない場合は以下のようにして入手します。
 <code> <code>
-$ sudo apt install make build-essential gfortran+$ sudo apt install make
 </code> </code>
  
Line 21: Line 23:
 以下のサイトからダウンロードできます。 以下のサイトからダウンロードできます。
  
-  * [[https://www.open-mpi.org/|Open MPI: Open Source High Performance Computing]] +  * https://gcc.gnu.org/mirrors.html
- +
-記事執筆時点での最新版は4.0.2です。+
  
 +例えば日本のミラーサイトからバージョン10.2.0をダウンロードする場合は次のようにします
 +<code>
 +$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
 +</code>
  
 ===== インストール ===== ===== インストール =====
Line 30: Line 34:
 ダウンロードしたファイルはホーム・ディレクトリにおいてください。 これを展開します。 ダウンロードしたファイルはホーム・ディレクトリにおいてください。 これを展開します。
 <code> <code>
-$ tar xzvf openmpi-4.0.2.tar.gz +$ tar xzvf gcc-10.2.0.tar.gz 
-$ cd openmpi-4.0.2+$ cd gcc-10.2.0
 </code> </code>
  
-インストール前に、イストル先とコンパイラを指定します+必要なモジュールをダウします
 <code> <code>
-$ ./configure --prefix=/usr/local/openmpi CC=gcc CXX=g++ FC=gfortran+$ ./contrib/download_prerequisites
 </code> </code>
-管理者権限持っいない場合は prefix=/home/username/openmpi などとすればよいでしょう。 してコンパイルします+ 
 +ビルド用のディレクトリ作成しこに入ります
 <code> <code>
-make all +mkdir build 
-sudo make install+cd build
 </code> </code>
  
-===== 環境設定 ===== +ンストールの設定ます
- +
-~/.bashrcを開いて、ファイルの最後に次の文付け加えます。 +
-<file> +
-MPIROOT=/usr/local/openmpi +
-PATH=$MPIROOT/bin:$PATH +
-LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH +
-MANPATH=$MPIROOT/share/man:$MANPATH +
-export MPIROOT PATH LD_LIBRARY_PATH MANPATH +
-</file> +
-編集が終わったら+
 <code> <code>
-source ~/.bashrc+../configure --prefix=/usr/local/gcc-10.2.0 --enable-languages=c,c++,fortran --disable-bootstrap --disable-multilib
 </code> </code>
-で再度読み込みます。+  * --prefix ... インストール先を指定。環境に合わせて適宜変更してください。 
 +  * --enable-languages ... ビルドするプログラミング言語を選びます 
 +  * --disable-bootstrap ... 通常は3回ビルドを行って検証しますが、それを1回に省略します 
 +  * --disable-multilib ... 64ビット版のプログラムの作成します。OSが64ビット版のときはこれを付けないとエラーが出ます(32ビット用のライブラリが存在しないため)。 
 +    * 詳しい説明や別のオプションについては右のページを参考にしてください https://gcc.gnu.org/install/configure.html 
 + 
 +makeとインストールを行います。 
 +makeには非常に時間がかかります(数時間くらい)
 <code> <code>
-mpif90 -v +make 
-mpicc -v+sudo make install
 </code> </code>
-などで、インストールが成功したか確認できます。 
  
 +.bashrcを開いて、ファイルの最後に以下を付け足してパスを通します<code>$ vim ~/.bashrc</code>
 +<file - .bashrc>
 +(略)
 +export PATH=/usr/local/gcc-10.2.0/bin:$PATH
 +export LD_LIBRARY_PATH=/usr/local/gcc-10.2.0/lib64:$LD_LIBRARY_PATH
 +export LIBRARY_PATH=/usr/local/gcc-10.2.0/lib64:$LIBRARY_PATH
 +</file>
  
-===== コンパイルと実行 ===== +.bashrcを読み込んコンパイラが動くか確認しま
- +
-コンパイルは、 +
-  *Fortranの場合<code> +
-$ mpif90 -o test test.f90 +
-</code> +
-  * C++の場合<code> +
-$ mpicc -o test test.cc +
-</code> +
-できます。 +
-コンパイルオプションの付け方はgfortranやgcc, g++のときと同じです。 MPIで実行る場合は+
 <code> <code>
-mpirun -n 2 test+source ~/.bashrc 
 +$ gcc -
 +$ g++ -v 
 +$ gfortran -v
 </code> </code>
-ここで-nで指定してるのはプロセスの数(並列数)です。 
- 
- 
-==== 注意 ==== 
- 
-  * OpenMPIの並列数は、最大でも物理コア数までにします。 
-  * IntelのCPUだとハイパースレッディングにより論理コアが物理コアの2倍に見えますが、並列数を論理コア数にして計算すると実行速度が著しく低下することがあります。 
-  * 最近のOpenMPIは並列数を物理コア数よりも大きくするとエラーが出るようになりました。 
- 
- 
-====== 参考資料 ====== 
- 
-  * [[http://e-kwsm.hatenablog.com/entry/2015/01/03/140425]] 
- 
  
 ====== 参考 ====== ====== 参考 ======
Line 99: Line 86:
   * https://qiita.com/cometscome_phys/items/dcdd4252754514d7c7a7   * https://qiita.com/cometscome_phys/items/dcdd4252754514d7c7a7
   * https://www.server-memo.net/memo/gcc-install.html   * https://www.server-memo.net/memo/gcc-install.html
 +  * http://tech.ckme.co.jp/gcc.shtml
  
   * https://gcc.gnu.org/install/configure.html   * https://gcc.gnu.org/install/configure.html
数値計算ライブラリ/gcc.1583728653.txt.gz · Last modified: 2021/06/27 21:57 (external edit)