### 並列版 DCPAM ビルドログ ### 2019/06/09 吉田哲治 作成 ### DCPAM を nozomi にインストール際のログ ### zlib, hdf5, netcdf-c, netcdf-fortran, gtool5, ispack, spml, dcpam の順にインストールしている ### wget をどこからしたかは少しあいまい ### 最終的には以下の環境変数でビルド完了したが, gtool5 以前でもこれで出来るのかは分からない(出来ると思っている) ### % FLAGS に入れるべきものは入れた方がよい? 環境変数の設定 自分は以下を .bashrc の最後に書き足した * sudo を使っても読み込まれる場所に入れておくとよい? * CC と CXX の -fPIC は FLAGS に入れるのが自然かもしれない export CC="mpicc -fPIC" export CXX="mpicxx -fPIC" export FC="mpif90 " export F77="mpif90 " export F90="mpif90 " export CFLAGS="-fast " export CXXFLAGS="-fast " export FFLAGS="-fast -fPIC" export FCFLAGS="-fast " export F77FLAGS="-fast " export F90FLAGS="-fast " export CPPFLAGS="-D=pgiFortran" $ sudo -Es で管理者になった場合, PATH は引き継がれない そのため, ビルドした mpich2 と pgifortran のPATH を追加するため --- zlib --- $ wget https://www.zlib.net/zlib-1.2.11.tar.gz $ tar zxvf zlib-1.2.11.tar.gz $ mv zlib-1.2.11 zlib-1.2.11-mpi $ cd zlib-1.2.11-mpi $ ./configure --prefix=/work00/lib-mpi/zlib-1.2.11-mpi $ make $ make check $ sudo make check install --- hdf5 --- $ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/src/hdf5-1.10.5.tar.gz $ ./configure --prefix=/work00/lib-mpi/hdf5-1.10.5-mpi --with-zlib=/work00/lib-mpi/zlib-1.2.11-mpi --enable-fortran --enable-parallel 1>conflog 2>error_conflog $ make 1>makelog 2>error_makelog $ make check 1>make_check_log 2>error_make_check_log $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install # make check-install --- netcdf-c --- $ wget https://github.com/Unidata/netcdf-c/archive/v4.6.3.tar.gz $ tar zvxf v4.6.3.tar.gz $ mv netcdf-c-4.6.3 netcdf-c-4.6.3-mpi $ cd netcdf-c-4.6.3-mpi $ export LD_LIBRARY_PATH="/work00/lib-mpi/zlib-1.2.11-mpi/lib:/work00/lib-mpi/hdf5-1.10.5-mpi/lib" $ export LDFLAGS="-L/work00/lib-mpi/zlib-1.2.11-mpi/lib -L/work00/lib-mpi/hdf5-1.10.5-mpi/lib" $ export CPPFLAGS="$CPPFLAGS -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include" $ ./configure --prefix=/work00/lib-mpi/netcdf-c-4.6.3-mpi --enable-parallel-tests --disable-dap 1>conflog 2>error_conflog $ vi h5_test/run_par_tests.sh nc_test4/run_par_test.sh nozomi では `mpiexec -n 1 $(file.sh)` は動かないので並列数が 1 or 多いテストをコメントアウト $ make check 1>make_check_log 2>error_make_check_log $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install --- netcdf-fortran --- $ wget https://github.com/Unidata/netcdf-fortran/archive/v4.4.5.tar.gz $ tar zxvf v4.4.5.tar.gz $ mv netcdf-fortran-4.4.5 netcdf-fortran-4.4.5-mpi $ cd /work00/downloads/netcdf-fortran-4.4.5-mpi/ $ export CPPFLAGS="$CPPFLAGS -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include -I/work00/lib-mpi/netcdf-c-4.6.3-mpi/include" $ export LDFLAGS="-L/work00/lib-mpi/zlib-1.2.11-mpi/lib -L/work00/lib-mpi/hdf5-1.10.5-mpi/lib -L/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib" $ export LD_LIBRARY_PATH="/work00/lib-mpi/zlib-1.2.11-mpi/lib:/work00/lib-mpi/hdf5-1.10.5-mpi/lib:/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib" $ ./configure --prefix=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi --enable-parallel-tests --with-pic 1>conf_log 2>error_conf_log $ vi nf_test/ftst_rengrps.F implicit none program となっているので program のインデントを implicit none と同じインデントに修正 $ make check 1>make_check_log 2>error_make_check_log $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install --- gtool5 --- $ tar zxvf gtool5_current.tgz $ mv gtool5-20160613 gtool5-20160613-mpi $ cd gtool5-20160613-mpi/ 環境変数の設定 * 文頭と同じ export CC="mpicc -fPIC" export CXX="mpicxx -fPIC" export FC="mpif90 " export F77="mpif90 " export F90="mpif90 " export CFLAGS="-fast " export CXXFLAGS="-fast " export FFLAGS="-fast -fPIC" export FCFLAGS="-fast " export F77FLAGS="-fast " export F90FLAGS="-fast " export CPPFLAGS="-D=pgiFortran" $ export LD_LIBRARY_PATH="/work00/lib-mpi/zlib-1.2.11-mpi/lib:/work00/lib-mpi/hdf5-1.10.5-mpi/lib:/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib:/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib" $ export SYSFFLAGS="$CPPFLAGS -I/work00/lib-mpi/zlib-1.2.11-mpi/include -I/work00/lib-mpi/hdf5-1.10.5-mpi/include -I/work00/lib-mpi/netcdf-c-4.6.3-mpi/include -I/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/include" $ ./configure --prefix=/work00/lib-mpi/gtool5-20160613-mpi --enable-mpi --with-netcdf=/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib/libnetcdf.a --with-netcdff=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib/libnetcdff.a --with-netcdf-include=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/include/netcdf.inc --with-mpiexec=mpiexec 1>config_log 2>error_config_log $ make 1>make_log 2>error_make_log $ make test $ make test-mpi $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install --- ispack --- $ wget http://www.gfd-dennou.org/library/ispack/ispack-1.0.4.tar.gz $ tar zxvf ispack-1.0.4.tar.gz $ mv ispack-1.0.4 ispack-1.0.4-mpi $ cd ispack-2.1.3-mpi/ # mkdir /work00/lib-mpi/ispack-1.0.4-mpi $ vi Mkinclude DESTDIR = /work00/lib-mpi/ispack-1.0.4-mpi FC = mpif90 FFLAGS = -O3 -fast -fPIC MPIFC = mpif90 MPIFFLAGS = -O3 -fast -fPIC CC = mpicc CFLAGS = -O3 -fast -fPIC SSE = avx $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install --- spml --- 完了したが, make test は l_module のところでこける $ wget http://www.gfd-dennou.org/library/spmodel/spml_current.tar.gz $ tar zxvf spml_current.tar.gz $ mv spml-0.8.0 spml-0.8.0-mpi $ cd spml-0.8.0-mpi/ $ export LD_LIBRARY_PATH="/work00/lib-mpi/zlib-1.2.11-mpi/lib:/work00/lib-mpi/hdf5-1.10.5-mpi/lib:/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib:/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib:/work00/lib-mpi/gtool5-20160613-mpi/lib:/work00/lib-mpi/ispack-1.0.4-mpi:/work00/lib-mpi/spml-0.8.0-mpi/lib" $ ./configure --with-netcdf=/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib/libnetcdf.a --with-netcdff=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib/libnetcdff.a --with-netcdf-include=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/include/netcdf.inc --with-gtool5=/work00/lib-mpi/gtool5-20160613-mpi/lib/libgtool5-mpi.a --with-ispack=/work00/lib-mpi/ispack-1.0.4-mpi/libisp.a --with-mpifc=/work00/mpich2/bin/mpif90 --with-mpiexec=/work00/mpich2/bin/mpiexec --prefix=/work00/lib-mpi/spml-0.8.0-mpi --with-pic 1>conf_log 2>error_conf_log $ make test 1>make_test_log 2>error_make_test_log $ sudo -Es # export PATH=/work00/pgi/linux86-64/2018/bin:/work00/mpich2/bin:$PATH # make install --- DCPAM --- $ wget http://www.gfd-dennou.org/library/dcpam/dcpam5/dcpam5-20180304-2.tgz $ tar zxvf dcpam5-20180304-2.tgz $ mv dcpam5-20180304-2 dcpam5-20180304-2-mpi $ cd dcpam5-20180304-2-mpi/ $ ./configure --with-netcdf=/work00/lib-mpi/netcdf-c-4.6.3-mpi/lib/libnetcdf.a --with-netcdff=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/lib/libnetcdff.a --with-netcdf-include=/work00/lib-mpi/netcdf-fortran-4.4.5-mpi/include/netcdf.inc --with-gtool5=/work00/lib-mpi/gtool5-20160613-mpi/lib/libgtool5-mpi.a --with-ispack=/work00/lib-mpi/ispack-1.0.4-mpi/libisp.a --with-spml=/work00/lib-mpi/spml-0.8.0-mpi/lib/libspml-omp.a --with-mpiexec=/work00/mpich2/bin/mpiexec --enable-mpi $ make インストール完了