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

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

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

アプリ取得

https://www.dynamo-em.org/w/index.php?title=DownloadsからLinux向けのtarファイルを取得します。

ファイル名: dynamo-v-1.1.557_MCR-24.1.0_GLNXA64_withMCR.tar (9.5 GB, 10,216,212,480 bytes )

途中で切れることがあるので、「link」欄からURLを取得して、wgetで取った方がいいかも。途中で切れたら「wget -c 」で継続すればいいので.

このtarには MATLAB のruntime(version 24.1)が入ってます.
MATLAB言語で書かれたプログラムソース(matlab/src/)が(製品版の)MATLABでバイナリーに変換され(matlab/bin)、そのバイナリーを動かすためのruntimeが入っている.

プログラムソースが入っているので(製品版の)MATLABをお持ちなら自分でコンパイル、あるいは修正も可能のようです. dynamoのライセンスはよく分かりませんけど

インストール

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

[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)
 
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  570.133.07  Fri Mar 14 13:12:07 UTC 2025
GCC version:  gcc version 11.5.0 20240719 (Red Hat 11.5.0-2) (GCC)
 
[root@rockylinux9 ~]# mkdir -p /apps/dynamo/
[root@rockylinux9 ~]# cd /apps/dynamo/
 
[root@rockylinux9 dynamo]# ls -l /Public/em/dynamo-v-1.1.557_MCR-24.1.0_GLNXA64_withMCR.tar
-rw-rw-rw-. 1 root root  10216212480 Mar 30 12:55 /Public/em/dynamo-v-1.1.557_MCR-24.1.0_GLNXA64_withMCR.tar
 
[root@rockylinux9 dynamo]# tar xf /Public/em/dynamo-v-1.1.557_MCR-24.1.0_GLNXA64_withMCR.tar
 
[root@rockylinux9 dynamo]# du -hs .
10G    .
 
[root@rockylinux dynamo]# ls -CF
C/     ddemos/  dynamo_activate_linux.sh*              dynamo_activate.m*      dynamo_setup_cluster.sh*  examples/  matlab/    mex/  README_dynamo_installation.txt*
cuda/  doc/     dynamo_activate_linux_shipped_MCR.sh*  dynamo_compile_mpi.sh*  dynamo_setup_linux.sh*    licenses/  MCRLinux/  mpi/
 
[root@rockylinux dynamo]#

これでインストールは完了.
あとはPATHとLD_LIBRARY_PATHの定義で使えるようになります.

ドキュメントではMATLABがなければ「dynamo_activate_linux_shipped_MCR.sh」を実行してMATLAB runtimeの環境を作り、またその中にある「dynamo_activate_linux.sh」で
dynamo実行の向けての環境が整備されます. あとは「dynamo」で動く流れですね.

ここではいつものように environment-modulesで連携しているので 「dynamo_activate_linux_shipped_MCR.sh」 は使わずmodule コマンドで済ませます

environment-modules

「/apps/modulefiles/dynamo」として下記を記載します

#%Module1.0
puts         stdout          "source /apps/local/bin/dynamo-mkdir;"
 
set          dynamo          /apps/dynamo
set          MCR             $dynamo/MCRLinux
setenv       DYNAMO_ROOT     $dynamo
prepend-path LD_LIBRARY_PATH $MCR/runtime/glnxa64:$MCR/bin/glnxa64:$MCR/sys/os/glnxa64
prepend-path PATH            $dynamo/matlab/bin:$dynamo/matlab/src:$dynamo/cuda/bin:$dynamo/mpi:$dynamo/examples:$dynamo/doc
setenv       MCR_CACHE_ROOT  /tmp/mcr_cache_root_$env(USER)


「/apps/local/bin/dynamo-mkdir」も用意します

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

このファイルには実行権を付けます.「chmod +x /apps/local/bin/dynamo-mkdir」

使ってみる

[saber@rockylinux9 ~]$ module use /apps/modulefiles
[saber@rockylinux9 ~]$ module load dynamo
 
[saber@rockylinux9 ~]$ dynamo
Initializing MATLAB Runtime version 24.1
"MCR libraries starting dynamo. Starting the Dynamo console can take some time. A good choice of MCR_CACHE_ROOT might speed this up."
Launching the console....
 (use "dynamo x" for a Dynamo graphics terminal  on a independent window)
 
     Dynamo console for standalone modus
     -----------------------------------
 
 
     * Commands starting with the symbol "!" will be passed to the system
     * Commands starting with the symbol "\" will be executed as Matlab expressions
     * Strings including the symbol ":" are treated as database queries
     * Graphic output: enabled
     * Type "help" for a list of console control commands
 
 
Dynamo >

[Ctrl-C]でdynamoを終了させてプロンプトに戻りますが、
引き続き dynamo のコマンドを実行します

Dynamo >  dcm
Passing to MATLAB...
Resize selection
Resize selection
Dynamo >

これでGUI画面が表示されます

2025y03m31d_003032225.png

コンパイル

mpiプログラムが存在しています. 使えるなら再コンパイルは不要かなと思いますが、
必要なら下記のようにコンパイルします

[root@rockylinux9 dynamo]# module load mpi/openmpi-x86_64
[root@rockylinux9 dynamo]# which mpirun
/usr/lib64/openmpi/bin/mpirun
[root@rockylinux9 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@rockylinux9 dynamo]#

で完成.

[root@rockylinux9 dynamo]# ls -lrt mpi/
-rwxr-xr-x. 1 root root  91144 Mar 31 00:43 dynamo_iteration_setup_mpi
-rwxr-xr-x. 1 root root 104840 Mar 31 00:43 dynamo_iteration_compute_mpi
-rwxr-xr-x. 1 root root  91144 Mar 31 00:43 dynamo_iteration_assemble_mpi
-rwxr-xr-x. 1 root root  91144 Mar 31 00:43 dynamo_iteration_check_mpi
-rwxr-xr-x. 1 root root  91408 Mar 31 00:43 dynamo_ccmatrix_compute_mpi
-rwxr-xr-x. 1 root root  91144 Mar 31 00:43 dynamo_ccmatrix_assemble_mpi
-rwxr-xr-x. 1 root root  91416 Mar 31 00:43 dynamo_iteration_compute_mpi_gpu

mpiプログラムは以上.

次にcudaプログラムも存在していて、これも適切なcudaライブラリがインストールされていればそのまま使えますが、
どうしても使えない場合はコンパイルして用意します.

ここでは /usr/local にcudaライブラリを入れていないマシンでしたので、下記のようにライブラリが不足していました.

[root@rockylinux9 dynamo]# ls -l cuda/bin/
total 420
-rwxrwxrwx. 1 1004 2004 345064 Feb 21 21:56 dynamo_compute_iteration_spp
-rwxrwxrwx. 1 1004 2004  79120 Feb 21 21:56 infoGPU
 
[root@rockylinux9 dynamo]# ldd cuda/bin/dynamo_compute_iteration_spp
        linux-vdso.so.1 (0x00007ffca35df000)
        libcudart.so.12 => not found
        libcufft.so.11 => not found
        libcublas.so.12 => not found
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f4085e00000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f4086112000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f40860f8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f4085a00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4086243000)
[root@rockylinux9 dynamo]#

なので cudaライブラリを入れます.
このマシンに搭載している nvidia ドライバは「570.133.07」なので、このバージョンよりも低いドライバを許容するcudaライブラリを入れます.
っでここでは
「cuda-repo-rhel9-12-8-local-12.8.1_570.124.06-1.x86_64」(ドラバは 570.124.06 で 570.124.06 < 570.133.07 なので採用)
このパッケージを「dnf install cuda-toolkit-12-8」として入れると

[root@rockylinux9 dynamo]# ldd cuda/bin/dynamo_compute_iteration_spp
        linux-vdso.so.1 (0x00007ffee8115000)
        libcudart.so.12 => /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so.12 (0x00007fbf7f800000)
        libcufft.so.11 => /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.11 (0x00007fbf6e600000)
        libcublas.so.12 => /usr/local/cuda/targets/x86_64-linux/lib/libcublas.so.12 (0x00007fbf67400000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fbf67000000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fbf7fb8f000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fbf7fb75000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fbf66c00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbf7fcc2000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fbf7fb6e000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbf7fb69000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fbf7fb64000)
        libcublasLt.so.12 => /usr/local/cuda/targets/x86_64-linux/lib/libcublasLt.so.12 (0x00007fbf34800000)
[root@rockylinux9 dynamo]#

とcudaライブラリがアサインされてコンパイルせずとも使えるようになりました.

っが、これもリコンパイルするなら下記のようにします.

[root@rockylinux9 dynamo]# cd cuda
[root@rockylinux9 cuda]# export PATH=/usr/local/cuda/bin:$PATH
[root@rockylinux9 cuda]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0
 
[root@rockylinux9 cuda]# 
[root@rockylinux9 cuda]# source config.sh
----------------------------------------------------------------
 
 Configuring makefile for the CUDA installation in your system
 
Looking for a CUDA installation in this environment:
  Found CUDA nvcc compiler at /usr/local/cuda/bin/nvcc
  CUDA installation assumed to be in  /usr/local/cuda
we will use /lib64 (standard procedure)
 
Substituting the CUDA location assignment:
  CUDA_ROOT=/usr/local/cuda
with the actual value:
  CUDA_ROOT=/usr/local/cuda
 
 [ok]
 
 you can now compile the CUDA utilities by :
 make all
 or :
 make motors
 if "make all" produces an error when trying to compile the Nvidia utility infoGPU
 
------------------------------------------------------------------
 
[root@rockylinux9 cuda]# make all
/usr/local/cuda/bin/nvcc   -o  bin/dynamo_compute_iteration_spp  src/dynamo_compute_iteration_spp.cu -lcudart -lcufft -lcublas -L/usr/local/cuda-12.3/lib64 -I/usr/local/cuda/include -Isrc -Isrc/classes  src/classes/gpuAngles.cpp -w
nvcc warning : Support for offline compilation for architectures prior to '<compute/sm/lto>_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
echo 'Compilation of Dynamo completed. Use make extended to include Nvidia GPU'
Compilation of Dynamo completed. Use make extended to include Nvidia GPU
[root@rockylinux9 cuda]#
[root@rockylinux9 cuda]# ls -l bin/
total 408
-rwxr-xr-x. 1 root root 334648 Mar 31 01:01 dynamo_compute_iteration_spp
-rwxrwxrwx. 1 1004 2004  79120 Feb 21 21:56 infoGPU
[root@rockylinux9 cuda]#

と完成します.

メモ

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

環境変数MCR_CACHE_ROOTを ssd/nvme なデバイスに指定すると早くなるそうな. ccp4のcacheと同じ思想かな

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

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

[illya@rockylinux ~]$ module use --append /apps/modulefiles
[illya@rockylinux ~]$ module load dynamo
 
[illya@rockylinux ~]$ dynamo
Initializing MATLAB Runtime version 9.9
"MCR libraries starting dynamo. Starting the Dynamo console can take some time. A good choice of MCR_CACHE_ROOT might speed this up."
Launching the console....
 (use "dynamo x" for a Dynamo graphics terminal  on a independent window)
 
     Dynamo console for standalone modus
     -----------------------------------
 
 
     * Commands starting with the symbol "!" will be passed to the system
     * Commands starting with the symbol "\" will be executed as Matlab expressions
     * Strings including the symbol ":" are treated as database queries
     * Graphic output: enabled
     * Type "help" for a list of console control commands
 
 
Dynamo >  dynamo_version
Passing order to Matlab engine:
dynamo_version
 Dynamo version: v-1.1.532
 
ans =
 
    'v-1.1.532'
 
Dynamo >  quit
ok, bye!
 
 
Exiting Dynamo console.
Returning control to system.
 
 
 
 Note after exiting the Dynamo console:
 
       if you experience difficulties with the text display you might need to type:
       stty echo
       in your system shell to fix them.
 
[delete:pmodelpool.Manager] Deletion of model pool manager from memory.
[illya@rockylinux ~]$

memo

AMD Ryzen CPUだとmodulefilesの末尾「prepend-path LD_PRELOAD $dynamo/MCRLinux/bin/glnxa64/glibc-2.17_shim.so」は無効にする事

#prepend-path LD_PRELOAD           $dynamo/MCRLinux/bin/glnxa64/glibc-2.17_shim.so
最新の60件
2025-05-15 2025-05-14 2025-05-13 2025-05-12 2025-05-11 2025-05-09 2025-05-08 2025-05-07 2025-05-06 2025-05-05 2025-05-04 2025-05-03 2025-04-27 2025-04-26 2025-04-25 2025-04-24 2025-04-17 2025-04-15 2025-04-13 2025-04-02 2025-04-01 2025-03-31
  • Dynamo
2025-03-29 2025-03-28 2025-03-27 2025-03-26 2025-03-23 2025-03-22 2025-03-20 2025-03-17 2025-03-16 2025-03-15 2025-03-06 2025-03-03 2025-03-01 2025-02-18 2025-02-17 2025-02-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-31 (月) 01:08:34