広告

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*Sandia National Laboratories が開発した大規模集積回路向けの回路シミュレータ [#n4365e0b]
[[Xyce:https://xyce.sandia.gov/]]は[[Sandia National Laboratories:http://www.sandia.gov/]] が開発したオープンソースの大規模集積回路向けの回路シミュレータ

MPIを用いた並列計算に対応している。

**インストール。[[Building Guide:https://xyce.sandia.gov/documentation/BuildingGuide.html]]を参照 [#jb66a71c]
少し面倒。バージョン6.3で説明
-まず[[ダウンロード:https://xyce.sandia.gov/downloads/]]。ユーザー登録(無償)が必要--Xyce-6.3.tar.gzと[[テスト:https://xyce.sandia.gov/documentation/RunningTheTests.html]]用のXyce_Regression-6.3.tar.gzを取ってくる
-必要なパッケージをインストール。多少バージョンが違うかも
--gcc
--g++
--gfortran
--make
--cmake
--bison
--flex
--libfftw3-3-dev
--libsuitesparse-dev
--libblas-dev
--liblapack-dev
--libtool
-並列計算するならMPI関係もインストール
--libopenmpi-dev
--libparmetis-dev
-Sandia National Laboratories が開発した数値計算パッケージ「[[Trilinos:https://trilinos.org/]]」もインストール
--[[Building Guide:https://xyce.sandia.gov/documentation/BuildingGuide.html]]にはVersion 11.14.2を使えと書いてあったけど[[11.14.3:https://trilinos.org/download/previous-releases/download-11-14/]]しかないのでこれをインストール。
--メールアドレスを登録する必要がある。
-[[Trilinos:https://trilinos.org/]]のコンパイル
--ソースを展開したディレクトリに適当なディレクトリ(例えばbuild)を作製
--作ったディレクトリ(例えばbuild)に移動
--この後は並列計算(Parallel)か違う(Serial)かで変わってくる。以下は並列計算の場合。
---[[Building Guide:https://xyce.sandia.gov/documentation/BuildingGuide.html]]にビルド用のスクリプト例が載っているのでそれを自分の環境に合わせて編集する。特にSRCDIRとARCHDIRを変える。
 #!/bin/bash
 SRCDIR=$HOME/Trilinos11.14/trilinos-11.14.2-Source
 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_ShyLU=ON \
 -DTrilinos_ENABLE_Isorropia=ON \
 -DTrilinos_ENABLE_AztecOO=ON \
 -DTrilinos_ENABLE_Belos=ON \
 -DTrilinos_ENABLE_Teuchos=ON \
 -DTeuchos_ENABLE_COMPLEX=ON \
 -DTrilinos_ENABLE_Amesos=ON \
 -DAmesos_ENABLE_KLU=ON \
 -DAmesos_ENABLE_UMFPACK=ON \
 -DTrilinos_ENABLE_Sacado=ON \
 -DTrilinos_ENABLE_Kokkos=OFF \
 -DTrilinos_ENABLE_Zoltan=ON \
 -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \
 -DTPL_ENABLE_AMD=ON \
 -DAMD_LIBRARY_DIRS="/usr/lib" \
 -DTPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \
 -DTPL_ENABLE_UMFPACK=ON \
 -DUMFPACK_LIBRARY_DIRS="/usr/lib" \
 -DTPL_UMFPACK_INCLUDE_DIRS="/usr/include/suitesparse" \
 -DTPL_ENABLE_BLAS=ON \
 -DTPL_ENABLE_LAPACK=ON \
 -DTPL_ENABLE_ParMETIS=ON \
 -DParMETIS_LIBRARY_DIRS="$ARCHDIR/lib" \
 -DParMETIS_INCLUDE_DIRS="$ARCHDIR/include" \
 -DTPL_ENABLE_MPI=ON \
 $SRCDIR
--上で作ったスクリプトを作ったディレクトリ(例えばbuild)で実行
--コンパイルとインストール
 make
 sudo make install
-[[Xyce:https://xyce.sandia.gov/]]のコンパイル
--[[Trilinos:https://trilinos.org/]]と同様にソースを展開したディレクトリに適当なディレクトリ(例えばbuild)を作製しそこに移動
--そこでビルド用の設定スクリプトを作製。以下は並列計算用。「/path/to/Xyce/configure」の部分を編集する(多分「../configure」)。ARCHDIRはTrilinosと合わせる
 #!/bin/bash
 /path/to/Xyce/configure \
 CXXFLAGS="-O3" \
 ARCHDIR="$HOME/XyceLibs/Parallel" \
 CPPFLAGS="-I/usr/include/suitesparse" \
 --enable-mpi \
 CXX=mpiCC \
 CC=mpicc \
 F77=mpif77
--上で作ったスクリプトを実行
--「make」を実行してコンパイル
-インストールの前に[[コンパイル後のテスト:https://xyce.sandia.gov/documentation/RunningTheTests.html]]
--Xyce_Regression-6.3.tar.gzを&color(Red){ソースを展開したところとは違うところに展開};。例ではホームディレクトリに展開している。
-テストプログラムを実行。以下はコマンド例。パス等に注意
 $HOME/Xyce_Regression-6.3/TestScripts/run_xyce_regression \
 --output=`pwd`/Xyce_Test --xyce_test="$HOME/Xyce_Regression-6.3" \
 --taglist="+parallel+nightly?noverbose-klu-verbose-fft" \
 --resultfile=`pwd`/parallel_results \
 "mpirun -np 2 `pwd`/src/Xyce"
-うまく動いたら、Xyceをコンパイルしたディレクトリに戻ってインストール
 sudo make install
*テストしてみた結果 [#lbee74a3]
上の一番下の使うCPU数の設定「-np 2」をいろいろ変えてみてXyce Regressionテストを実行してみた。
**CPU 2個(上の例のまま) [#i8ad1b11]
All Test runs complete - All Tests PASSED
Total testing time:  26.4m (wall),  1160s (user),    94s (system)
**CPU 10個(mpirun -np 10) [#r83c006c]
 All Test runs complete - Warning 7 Tests FAILED
                                 4 Tests EXITED WITH ERROR
 Total testing time:  36.1m (wall),  8716s (user),  2393s (system)
あれ遅いし、エラーが出ている
**CPU 1個(mpirun -np 1) [#x4d42ace]
 All Test runs complete - Warning 0 Tests FAILED
                                 1 Tests EXITED WITH ERROR
 Total testing time:   9.3m (wall),   461s (user),    57s (system)
CPU 2個より速いがエラーが出ている。何かおかしいのかもしれない。


広告

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS