本家様 https://wiki.dynamo.biozentrum.unibas.ch/w/index.php/Main_Page

MATLABが必要です.
ですが、ダウンロードしたファイルに MATLAB のRuntime版(コンパイル済みのMATLABファイルを実行できる)が入ってますので
それを使えばMATLAB(フル機能版)は不要です.

ここではダウンロードしたファイルに付属の MATLAB Runtime版でDynamoを動かす.

アプリ取得

https://wiki.dynamo.biozentrum.unibas.ch/w/index.php/DownloadsからLinux向けのtarファイルを取得します。

ファイル名: dynamo11514.tar (4.6GB)

下拵え

開発環境と openmpi-devel を組み込んでおきます

[root@em ~]# yum groupinstall "Development Tools"
[root@em ~]# yum install openmpi-devel

インストール

まずは展開します. 展開したら 4.8 GB 消費してました

[root@em ~]# mkdir -p /apps/Dynamo/
[root@em ~]# cd /apps/Dynamo
[root@em Dynamo]# tar xvf ../src/dynamo11514.tar
 
[root@em Dynamo]# ls -CF
C/                                     dynamo_activate_mac.sh*              examples/
cuda/                                  dynamo_activate_mac.sh~*             licenses/
ddemos/                                dynamo_activate_mac_shipped_MCR.sh*  matlab/
doc/                                   dynamo_activate_windows.bat*         MCRLinux/
dynamo_activate_linux.sh*              dynamo_compile_mpi.sh*               mex/
dynamo_activate_linux_shipped_MCR.sh*  dynamo_setup_cluster.sh*             mpi/
dynamo_activate.m*                     dynamo_setup_linux.sh*               README_dynamo_installation.txt*
dynamo_activate.m~*                    dynamo_setup_mac.sh*
 
[root@em Dynamo]#

次に OpenMP(OMP)プログラムをコンパイルします. いわゆる threads アプリです.

[root@em Dynamo]# source dynamo_activate_linux_shipped_MCR.sh
 :
「ls: cannot access /apps/Dynamo/mpi/dynamo_iteration_assemble_omp: No such file or directory」
と表記されるが無視して構わない.
 :
[root@em Dynamo]# ls -l mpi/*omp
-rwxr-xr-x 1 root 13449  8488 10月 19 03:56 mpi/dynamo_ccmatrix_assemble_omp
-rwxr-xr-x 1 root 13449 13112 10月 19 03:56 mpi/dynamo_ccmatrix_compute_omp
-rwxr-xr-x 1 root 13449  8488 10月 19 03:56 mpi/dynamo_iteration_assemble_omp
-rwxr-xr-x 1 root 13449  8488 10月 19 03:56 mpi/dynamo_iteration_check_omp
-rwxr-xr-x 1 root 13449 14808 10月 19 03:56 mpi/dynamo_iteration_compute_omp
-rwxr-xr-x 1 root 13449  8488 10月 19 03:56 mpi/dynamo_iteration_setup_omp
 
[root@em Dynamo]#

そして mpi プログラムをコンパイルします. 事前に mpi 実行/コンパイル環境をロードします
ドキュメントには「mpicc」が指定されているが「mpic++」でコンパイルされる.

[root@em Dynamo]# module load mpi
 
[root@em Dynamo]# source mpi/dynamo_compile_mpi.sh mpic++
 
Using selected compiler mpic++
trying to compile MPI wrappers for Dynamo standalone executables
/usr/lib64/openmpi/bin/mpic++
ok, mpic++ found, proceeding to compile MPI-wrappers....
 
     ./mpi/dynamo_iteration_setup_mpi.cc compiled
     ./mpi/dynamo_iteration_compute_mpi.cc compiled
     ./mpi/dynamo_iteration_assemble_mpi.cc compiled
     ./mpi/dynamo_iteration_check_mpi.cc compiled
     ./mpi/dynamo_ccmatrix_compute_mpi.cc compiled
     ./mpi/dynamo_ccmatrix_assemble_mpi.cc compiled
     ./mpi/dynamo_iteration_compute_mpi_gpu.cc compiled
Warnings are in principle ok
------------------------------------------------
MPI compilation SUCCESSFUL
------------------------------------------------
 
[root@em Dynamo]#
[root@em Dynamo]# ls -l mpi/*_mpi
-rwxr-xr-x 1 root 13449 106432 10月 19 04:07 mpi/dynamo_ccmatrix_assemble_mpi
-rwxr-xr-x 1 root 13449 106696 10月 19 04:07 mpi/dynamo_ccmatrix_compute_mpi
-rwxr-xr-x 1 root 13449 106432 10月 19 04:07 mpi/dynamo_iteration_assemble_mpi
-rwxr-xr-x 1 root 13449 106424 10月 19 04:07 mpi/dynamo_iteration_check_mpi
-rwxr-xr-x 1 root 13449 107664 10月 19 04:07 mpi/dynamo_iteration_compute_mpi
-rwxr-xr-x 1 root 13449 106424 10月 19 04:07 mpi/dynamo_iteration_setup_mpi
 
[root@em Dynamo]#

最後に cuda アプリケーションをコンパイル
一応既にcuda-8.0で作られたバイナリーが提供されているが、ここでは cuda-11.0 でコンパイルします.

[root@em Dynamo]# ls -l cuda/bin/
合計 284
-rwxrwxrwx 1 4121 13449 290288  1月 30  2020 dynamo_compute_iteration_spp
 
[root@em Dynamo]# ldd cuda/bin/dynamo_compute_iteration_spp
        linux-vdso.so.1 =>  (0x00007ffc2df89000)
        libcudart.so.8.0 => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudart.so.8.0 (0x00007feb5a3e2000)
        libcufft.so.8.0 => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcufft.so.8.0 (0x00007feb51593000)
        libcublas.so.8.0 => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcublas.so.8.0 (0x00007feb4eafb000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feb4e8df000)
        libstdc++.so.6 => /apps/Dynamo/MCRLinux/sys/os/glnxa64/libstdc++.so.6 (0x00007feb4e55e000)
        libm.so.6 => /lib64/libm.so.6 (0x00007feb4e25c000)
        libgcc_s.so.1 => /apps/Dynamo/MCRLinux/sys/os/glnxa64/libgcc_s.so.1 (0x00007feb4e045000)
        libc.so.6 => /lib64/libc.so.6 (0x00007feb4dc77000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007feb4da73000)
        librt.so.1 => /lib64/librt.so.1 (0x00007feb4d86b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007feb5a648000)
 
[root@em Dynamo]# mv cuda/bin/dynamo_compute_iteration_spp cuda/bin/dynamo_compute_iteration_spp.old
 
[root@em Dynamo]# cd cuda
 
[root@em cuda]# export PATH=/usr/local/cuda-11.0/bin:$PATH
 
[root@em cuda]# which nvcc
/usr/local/cuda-11.0/bin/nvcc
 
[root@em cuda]# source config.sh
[root@em cuda]# make all

以上で完了となる

起動

環境設定を行います
「source /apps/Dynamo/dynamo_activate_linux_shipped_MCR.sh silent」と末尾に「silent」を入れると
メッセージの表示が抑えられる.

[illya@em ~]$ source /apps/Dynamo/dynamo_activate_linux_shipped_MCR.sh silent
MCR for linux has been  found in location: /apps/Dynamo/MCRLinux
Activating Dynamo as standalone
 
[illya@em ~]$ dynamo
 :
 :
Dynamo > 
Dynamo > dcm

すると下記画面が立ち上がる.
2020y05m20d_220716590.png

あるいは

[illya@em ~]$ source /apps/Dynamo/dynamo_activate_linux_shipped_MCR.sh silent
MCR for linux has been  found in location: /apps/Dynamo/MCRLinux
Activating Dynamo as standalone
 
[illya@em ~]$ dynamo x

これで下記画面が表示されます.

2020y05m20d_220531540.png

https://wiki.dynamo.biozentrum.unibas.ch/w/index.php/Standalone

MATLABで動かすには Dynamo/MATLAB

modulefiles

「source /apps/Dynamo/dynamo_activate_linux_shipped_MCR.sh」が面倒なのでmodulefilesを作ってみた

[illya@em ~]$ cat /etc/modulefiles/Dynamo
#%Module1.0
puts         stdout               "source /apps/local/bin/dynamo-mkdir;"
set          dynamo               /apps/Dynamo
setenv       DYNAMO_FOLDER        $dynamo
setenv       MCR_CACHE_ROOT       /tmp/mcr_cache_root_$env(USER)
prepend-path LD_LIBRARY_PATH      $dynamo/MCRLinux/runtime/glnxa64:$dynamo/MCRLinux/bin/glnxa64:$dynamo/MCRLinux/sys/os/glnxa64
prepend-path PATH                 $dynamo/matlab/bin:$dynamo/matlab/src:$dynamo/cuda/bin:$dynamo/mpi:$dynamo/examples:$dynamo/doc
 
[illya@em ~]$

あと「/apps/local/bin/dynamo-mkdir」を用意します

#!/bin/bash
if [ ! -d /tmp/mcr_cache_root_$USER ]; then
   /bin/mkdir /tmp/mcr_cache_root_$USER
fi

この「/apps/local/bin/dynamo-mkdir」には実行権(+x)を設けます[chmod +x /apps/local/bin/dynamo-mkdir]

上記をロードすれば(module load Dynamo)、「source /apps/Dynamo/dynamo_activate_linux_shipped_MCR.sh」の代わりになります.

メモ

「/apps/Dynamo/dynamo_compile_mpi.sh」と「/apps/Dynamo/mpi/dynamo_compile_mpi.sh」は同じファイル

環境変数MCR_CACHE_ROOTを ssd/nvme なデバイスに指定すると早くなるそうな.

[illya@em ~]$ mkdir /scratch/dynamo
[illya@em ~]$ export MCR_CACHE_ROOT=/scratch/dynamo

version確認は、「dynamo_version」で得られる

Dynamo >  dynamo_version
Passing order to Matlab engine:
dynamo_version
 Dynamo version: v-1.1.478
 
ans =
 
    'v-1.1.478'
 
Dynamo >

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-10-19 (月) 15:46:41 (198d)