0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Xyceをwsl2:Ubuntuにインストールしてみたメモ

Last updated at Posted at 2025-12-13

始めに

ngspiceが遅いといわれ、代わりにXyceというのがmpiとか使って並列化されていて速いと聞き、興味本位でインストールしてみました。バイナリがRhel用しかないので、コンパイルが必要で、公式ドキュメントにまとまっているのですが、少々面倒だったので、メモを作成しました。

環境

  • WSL2 : Ubuntu ( 20.04と24.04で試行 )

ビルド手順

https://xyce.sandia.gov/documentation-tutorials/building-guide/で手順を進めます。

(1) Download sources
https://xyce.sandia.gov/downloads/source-code/#
Xyce-.tar.gzファイルをダウンロードし、wslに転送、解凍。

https://github.com/trilinos/Trilinos/releases/tag/trilinos-release-12-12-1/
tar.gzファイルをダウンロードし、wslに転送、解凍。Trilinos12.12/を作成し、解凍したディレクトリごと移動します。

tar zxvf Xyce-7.10.0.tar.gz
tar zxvf Trilinos-trilinos-release-12-12-1.tar.gz 
mkdir Trilinos12.12
mv Trilinos-trilinos-release-12-12-1 Trilinos12.12

(2) Apt
必要ライブラリをインストールします。

sudo apt update
sudo apt upgrade

sudo apt install \
gcc \
g++ \
gfortran \
make \
cmake \
bison \
flex \
libfl-dev \
libfftw3-dev \
libsuitesparse-dev \
libblas-dev \
liblapack-dev \
libtool

(3) Trilinosのビルドとインストール
Trilinos-trilinos-release-12-12-1に移動します。そこでビルドディレクトリを2つ作ります

cd Trilinos12.12/Trilinos-trilinos-release-12-12-1/
mkdir build_serial
mkdir build_parallel

(3-1) Serial版Trilinosのビルド
まずはserialのビルド。ビルドディレクトリ build_serialに入り、下のテキストでreconfigureを作成し、実行可能にして実行します。

cd build_serial
vi reconfigure # 下のファイルをコピペしてセーブ
chmod +x reconfigure
./recounfigure
#!/bin/sh
SRCDIR=$HOME/Trilinos12.12/Trilinos-trilinos-release-12-12-1
ARCHDIR=$HOME/XyceLibs/Serial
FLAGS="-O3 -fPIC"
cmake \
-G "Unix Makefiles" \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_Fortran_COMPILER=gfortran \
-DCMAKE_CXX_FLAGS="$FLAGS" \
-DCMAKE_C_FLAGS="$FLAGS" \
-DCMAKE_Fortran_FLAGS="$FLAGS" \
-DCMAKE_INSTALL_PREFIX=$ARCHDIR \
-DCMAKE_MAKE_PROGRAM="make" \
-DTrilinos_ENABLE_NOX=ON \
  -DNOX_ENABLE_LOCA=ON \
-DTrilinos_ENABLE_EpetraExt=ON \
  -DEpetraExt_BUILD_BTF=ON \
  -DEpetraExt_BUILD_EXPERIMENTAL=ON \
  -DEpetraExt_BUILD_GRAPH_REORDERINGS=ON \
-DTrilinos_ENABLE_TrilinosCouplings=ON \
-DTrilinos_ENABLE_Ifpack=ON \
-DTrilinos_ENABLE_AztecOO=ON \
-DTrilinos_ENABLE_Belos=ON \
-DTrilinos_ENABLE_Teuchos=ON \
-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON \
-DTrilinos_ENABLE_Amesos=ON \
  -DAmesos_ENABLE_KLU=ON \
-DTrilinos_ENABLE_Amesos2=ON \
 -DAmesos2_ENABLE_KLU2=ON \
 -DAmesos2_ENABLE_Basker=ON \
-DTrilinos_ENABLE_Sacado=ON \
-DTrilinos_ENABLE_Stokhos=ON \
-DTrilinos_ENABLE_Kokkos=ON \
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \
-DTrilinos_ENABLE_CXX11=ON \
-DTPL_ENABLE_AMD=ON \
-DAMD_LIBRARY_DIRS="/usr/lib" \
-DTPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \
-DTPL_ENABLE_BLAS=ON \
-DTPL_ENABLE_LAPACK=ON \
$SRCDIR

あとはmakeとmake install。

make
make install

これでserial版ビルド終了。

(3-2) Parallel版Trilinosのビルド
Parallel版のビルド。ビルドディレクトリ build_parallelに入り、下のテキストでreconfigureを作成し、実行可能にして実行します。スクリプト以外serialと同一です。

cd build_parallel
vi reconfigure # 下のファイルをコピペしてセーブ
chmod +x reconfigure
./recounfigure
#!/bin/sh
SRCDIR=$HOME/Trilinos12.12/Trilinos-trilinos-release-12-12-1
ARCHDIR=$HOME/XyceLibs/Parallel
FLAGS="-O3 -fPIC"
cmake \
-G "Unix Makefiles" \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpic++ \
-DCMAKE_Fortran_COMPILER=mpif77 \
-DCMAKE_CXX_FLAGS="$FLAGS" \
-DCMAKE_C_FLAGS="$FLAGS" \
-DCMAKE_Fortran_FLAGS="$FLAGS" \
-DCMAKE_INSTALL_PREFIX=$ARCHDIR \
-DCMAKE_MAKE_PROGRAM="make" \
-DTrilinos_ENABLE_NOX=ON \
  -DNOX_ENABLE_LOCA=ON \
-DTrilinos_ENABLE_EpetraExt=ON \
  -DEpetraExt_BUILD_BTF=ON \
  -DEpetraExt_BUILD_EXPERIMENTAL=ON \
  -DEpetraExt_BUILD_GRAPH_REORDERINGS=ON \
-DTrilinos_ENABLE_TrilinosCouplings=ON \
-DTrilinos_ENABLE_Ifpack=ON \
-DTrilinos_ENABLE_Isorropia=ON \
-DTrilinos_ENABLE_AztecOO=ON \
-DTrilinos_ENABLE_Belos=ON \
-DTrilinos_ENABLE_Teuchos=ON \
-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON \
-DTrilinos_ENABLE_Amesos=ON \
 -DAmesos_ENABLE_KLU=ON \
-DTrilinos_ENABLE_Amesos2=ON \
 -DAmesos2_ENABLE_KLU2=ON \
 -DAmesos2_ENABLE_Basker=ON \
-DTrilinos_ENABLE_Sacado=ON \
-DTrilinos_ENABLE_Stokhos=ON \
-DTrilinos_ENABLE_Kokkos=ON \
-DTrilinos_ENABLE_Zoltan=ON \
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \
-DTrilinos_ENABLE_CXX11=ON \
-DTPL_ENABLE_AMD=ON \
-DAMD_LIBRARY_DIRS="/usr/lib" \
-DTPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \
-DTPL_ENABLE_BLAS=ON \
-DTPL_ENABLE_LAPACK=ON \
-DTPL_ENABLE_MPI=ON \
$SRCDIR

あとはmakeとmake install。

make
make install

これでparallel版ビルド終了。ここでホームディレクトリにXyceLibs/ デイレク鳥ができています。

(4) Xyceのビルドとインストール
Xyceのディレクトリに入ってbootstrapを実行します。configureの実行ファイルが作成されます。ビルドディレクトリを2つ作成します。

cd Xyce-7.10
./bootstrap
mkdir build_serial
mkdir build_parallel

(4-1) serial版のビルド
ビルドディレクトリに入りconfigureをします。

cd build_serial

../configure \
CXXFLAGS="-O3" \
ARCHDIR="$HOME/XyceLibs/Serial" \
CPPFLAGS="-I/usr/include/suitesparse" \
--enable-stokhos \
--enable-amesos2 \
--prefix=$HOME/XyceInstall/Serial

後はmakeとmake install

make
make install

(4-2) parallel版のビルド
ビルドディレクトリに入り、configureをします。

cd build_parallel

../configure \
CXXFLAGS="-O3" \
ARCHDIR="$HOME/XyceLibs/Parallel" \
CPPFLAGS="-I/usr/include/suitesparse" \
--enable-mpi \
CXX=mpicxx \
CC=mpicc \
F77=mpif77 \
--enable-stokhos \
--enable-amesos2 \
--prefix=$HOME/XyceInstall/Parallel

後はmakeとmake install

make
make install

これでビルドとインストールは終了です。
ホームにXyceInstallができているので、
SerialかParallelどちらか使う方にパスを通してください。
以下のどちらかを.bashrcに記載してください。

export PATH=$PATH:/home/youre_homename/XyceInstall/Serial/bin
export PATH=$PATH:/home/youre_homename/XyceInstall/Parallel/bin

テストしてみる

Xyce_regressionというのがあったので、流してみました。
https://github.com/Xyce/Xyce_Regression
基本How_To_Run_The_Tests.mdに書かれていることを実行します。

git clone https://github.com/Xyce/Xyce_Regression

Regression内に入り、実行ディレクトリを作り、その中で実行します。

(1) serial版の実行

cd Xyce_Regression
mkdir XyceTesting_serial
cd XyceTesting_serial
cmake -DCMAKE_PREFIX_PATH=/home/youre_homename/XyceInstall/Serial/bin ..
ctest -L nightly -j 8

-j 8の部分は環境に合わせて調整してください。

(2) parallel版の実行

cd Xyce_Regression
mkdir XyceTesting_parallel
cd XyceTesting_parallel
cmake -DCMAKE_PREFIX_PATH=/home/youre_homename/XyceInstall/Parallel/bin ..
ctest -L nightly -j 8

-j 8の部分は環境に合わせて調整してください。

なんかいくつかのテストでエラーがぼろぼろ出ます。
結構パスしているので、大丈夫と思いますが。。。

終わりに

一応Xyceのコンパイルまでやりました。テストについてはエラーが出るのが正しいのかどうか確認が必要となっています。わかったらまた更新します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?