Heavy Watal

SHIROKANE — HGCスパコン

https://supcom.hgc.jp/

利用開始

えくせる、ハンコ、郵送。

無料プランはファイル総数1000個という縛りがキツすぎて実質使えない。

環境整備

Linuxbrew

https://github.com/Linuxbrew/brew/wiki/CentOS6

まず mpfr インストール時の make check でコケるが、 brew edit mpfr で該当箇所をコメントアウトして対処。

しかし結局 gcc のインストールがうまく行かず頓挫。 LIBRARY_PATHLD_LIBRARY_PATH をいじっても libiconv.so.2 を見つけてもらえない:

HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_BUILD_FROM_SOURCE=1 brew install gcc --without-glibc
==> Installing gcc --without-glibc
==> Downloading https://ftp.gnu.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.xz
############################################################################################################################################################ 100.0$
==> ../configure --with-isl=/yshare1/home/watal/.linuxbrew/opt/isl@0.18 --with-bugurl=https://github.com/Linuxbrew/homebrew-core/issues --prefix=/yshare1/home/wat$
==> make
Last 15 lines from /home/watal/.cache/Homebrew/Logs/gcc/02.make:
/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build/./gcc/ -dumpspecs > tmp-specs
/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build/./gcc/xgcc: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or di$ectory
make[3]: *** [specs] Error 127
make[3]: *** Waiting for unfinished jobs....
/bin/sh ../../gcc/../move-if-change tmp-attrtab.c    insn-attrtab.c
/bin/sh ../../gcc/../move-if-change tmp-dfatab.c     insn-dfatab.c
/bin/sh ../../gcc/../move-if-change tmp-latencytab.c insn-latencytab.c
echo timestamp > s-attrtab
rm gcc.pod
make[3]: Leaving directory `/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/tmp/gcc-20180614-19441-uv2cp4/gcc-5.5.0/build'
make: *** [all] Error 2

tumopp

提供されている /usr/local/package/gcc/7.3.0 を使い、 依存ライブラリをほぼすべて手動で ~/local/ にインストールする。

  1. ~/user-config.jam を作成:

    using gcc : 14 : /usr/local/package/gcc/7.3.0/bin/g++ : <compileflags>-fPIC <cxxflags>-std=c++14 ;
    
  2. 最新のBoostをソースコードからビルドしてインストールする

  3. ~/.bashrc などで以下のような環境変数を定義する:

    PATH=${HOME}/local/bin:$PATH
    GCC_PREFIX=/usr/local/package/gcc/7.3.0
    export CC=${GCC_PREFIX}/bin/gcc
    export CXX=${GCC_PREFIX}/bin/g++
    export LD_LIBRARY_PATH=${GCC_PREFIX}/lib64:$LD_LIBRARY_PATH
    

    シェルを再起動してこれを反映: exec $SHELL -l
    以下のステップで -DCMAKE_CXX_COMPILER=... を省略できる。

  4. 各種C++ライブラリをインストール:

    cmake コマンドには次のようなオプションを渡す:

    -DCMAKE_PREFIX_PATH=${HOME}/local -DCMAKE_INSTALL_PREFIX=${HOME}/local
    

    その後アップデートするときは git pull して再ビルド・再インストール。

  5. Rをソースコードからビルドしてインストール (configureオプションは /usr/local/package/r/3.5.0/lib64/R/etc/Makeconf を参考に):

    wget -O- https://cran.r-project.org/src/base/R-3/R-3.5.0.tar.gz | tar xz
    cd R-3.5.0/
    ./configure --prefix=${HOME}/local '--enable-R-shlib' '--enable-shared' '--enable-memory-profiling' '--with-tcl-config=/usr/local/lib/tclConfig.sh' '--with-tk-config=/usr/local/lib/tkConfig.sh' 'CC=/usr/local/package/gcc/7.3.0/bin/gcc' 'CXX=/usr/local/package/gcc/7.3.0/bin/g++' 'CPPFLAGS=-I/usr/local/package/gcc/7.3.0/include -I/usr/local/include' 'LDFLAGS=-L/usr/local/package/gcc/7.3.0/lib64 -L/usr/local/package/gcc/7.3.0/lib -L/usr/local/lib64 -L/usr/local/lib' 'F77=/usr/local/package/gcc/7.3.0/bin/gfortran' 'FC=/usr/local/package/gcc/7.3.0/bin/gfortran' 'JAVA_HOME=/usr/local/package/java/jdk1.8.0_162_64' 'PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig'
    make -j4
    make install
    
  6. インストールしたRを起動し、パッケージをインストール:

    install.packages("devtools")
    devtools::install_github("heavywatal/rtumopp")