裝機 === BMC存取 --- 1. 載Docker 2. 去作業選一個VPN放到Wire guard 3. ``` git clone https://github.com/NTHU-LSALAB/megarac-aster-ikvm.git cd megarac-aster-ikvm sh start.sh [BMC IP] root root ``` 4. 前往 http://localhost:5800/ 5. 前往[BMC IP]->remote control->power on->狂按F12 openmpi -- ``` ./configure --prefix=/opt/openmpi/5.0.7 --with-libfabric --enable-mpi-thread-multiple make -j sudo make -j install ``` mpich -- ``` ./configure --prefix=/opt/mpich/4.3.0 --with-device=ch4:ofi --with-ofi --enable-mpi-thread-multiple make -j sudo make -j install ``` Code Saturne == gui套件 -- ``` sudo apt-get install python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtwebkit qttools5-dev sudo apt-get install pyqt5-dev pyqt5-dev-tools ``` run -- ``` code_saturne run --initialize ``` NO HT -- ``` export OMP_NUM_THREADS=1 mpirun -np 24 -host head:12,work:12 ./cs_solver mpirun -np 24 -host head:12,work:12 --bind-to core --cpu-set 0,1,2,3,4,5,6,7,8,9,10,11 ./cs_solver ``` with HT -- ``` export OMP_NUM_THREADS=2 mpirun -np 12 -host head:6,work:6 \ --bind-to hwthread --map-by socket \ ./cs_solver ``` FAMIL == dependency -- zlib -- ``` cd /mnt/hdd/downloads/ git clone https://github.com/madler/zlib.git cd zlib ./configure --prefix=/opt/zlib make -j sudo make -j install ``` libpsl -- ``` cd /mnt/hdd/downloads/ git clone https://github.com/rockdaboot/libpsl.git cd libpsl ./autogen.sh ./configure --prefix=/opt/libpsl make -j sudo make -j install ``` openssl -- ``` wget https://www.openssl.org/source/openssl-3.2.0.tar.gz tar -xzf openssl-3.2.0.tar.gz cd openssl-3.2.0 ./Configure --prefix=/opt/openssl --openssldir=/opt/openssl make -j sudo make install ``` curl -- ``` cd /mnt/hdd/downloads/ wget https://curl.se/download/curl-8.13.0.tar.gz tar -xzvf curl-8.13.0.tar.gz cd curl-8.13.0/ ./configure --prefix=/opt/curl/8.13.0 --with-openssl=/opt/openssl make -j sudo make -j install ``` hdf5 -- ``` wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz tar -zxvf hdf5-1.14.6.tar.gz cd hdf5-hdf5_1.14.6 mkdir build && cd build CC=mpiicx FC=mpiifx ../configure --prefix=/opt/hdf5 --enable-parallel --with-zlib=/opt/zlib/ --enable-fortran make -j make -j install ``` pnetcdf -- ``` wget https://parallel-netcdf.github.io/Release/pnetcdf-1.14.0.tar.gz tar -xzvf pnetcdf-1.14.0.tar.gz cd pnetcdf-1.14.0/ module load mpich CC=mpicc FC=mpifort ./configure --prefix=/opt/pnetcdf --enable-shared --enable-relax-coord-bound --with-mpi=/opt/mpich/4.3.0 make -j$(nproc) sudo make -j$(nproc) install ``` netcdf-c -- ``` sudo apt-get install libxml2-dev wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.3.tar.gz tar -xzvf v4.9.3.tar.gz cd netcdf-c-4.9.3 mkdir build && cd build CC=mpiicx CPPFLAGS='-I$/opt/hdf5/include -I/opt/pnetcdf/include -I/opt/openssl/include' LDFLAGS='-L/opt/hdf5/lib -L/opt/pnetcdf/lib -L/opt/openssl/lib64' ../configure --prefix=/opt/netcdf --enable-pnetcdf make -j make -j install ``` netcdf-fortran -- ``` wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.2.tar.gz tar -xvzf v4.6.2.tar.gz cd netcdf-fortran-4.6.2/ export LD_LIBRARY_PATH=/opt/netcdf/lib:$LD_LIBRARY_PATH mkdir build && cd build CC=mpiicx FC=mpiifx CPPFLAGS='-I/opt/netcdf/include' LDFLAGS='-L/opt/netcdf/lib' ../configure --prefix=/opt/netcdf make -j make -j install ``` nco -- ``` wget https://github.com/nco/nco/archive/5.3.3.tar.gz tar -zxvf 5.3.3.tar.gz cd nco-5.3.3/ ./autogen.sh sudo apt update sudo apt install flex sudo apt install bison sudo apt-get install libudunits2-dev mkdir build && cd build CC=mpiicx FC=mpiifx CPPFLAGS='-I/opt/netcdf/include' LDFLAGS='-L/opt/netcdf/lib' ../configure --prefix=/opt/nco make -j make -j install ``` gsl -- ``` wget https://mirror.ibcp.fr/pub/gnu/gsl/gsl-latest.tar.gz tar -xvzf gsl-latest.tar.gz cd gsl-2.8/ mkdir build && cd build CC=mpiicx FC=mpiifx ../configure --prefix=/opt/gsl make -j make -j install ``` run -- ``` ./f_create_earth -case [casename] -plat ifc -res C48 -np 24 ``` in f_run ``` mpirun --host head:12,work:12 -np $NP bash -lc "ulimit -s unlimited && \ export LD_LIBRARY_PATH=/opt/openssl/lib64:\$LD_LIBRARY_PATH && \ export LD_PRELOAD='/opt/openssl/lib64/libssl.so.3:/opt/openssl/lib64/libcrypto.so.3' && \ exec $WORKDIR/famil.x" ``` in terminal ``` ./f_run > /home/team17/FAMIL_v1/run/[casename]/work/f_run.log 2>&1 ``` profile -- in f_run ``` set timestamp = `date +%F-%H%M` set vtune_dir = /home/team17/vtune-res/vtune_result_$timestamp mpirun --host head:12,work:12 -np $NP bash -lc "ulimit -s unlimited && \ LD_LIBRARY_PATH=/opt/openssl/lib64:\$LD_LIBRARY_PATH \ LD_PRELOAD='/opt/openssl/lib64/libssl.so.3 /opt/openssl/lib64/libcrypto.so.3' \ exec vtune -collect=hotspots -trace-mpi -r=$vtune_dir -- $WORKDIR/famil.x" ``` in terminal ``` ./f_run > /home/team17/FAMIL_v1/run/profile/work/f_run.log 2>&1 ``` GROMACS == ``` wget https://ftp.gromacs.org/gromacs/gromacs-2025.1.tar.gz tar -xvzf gromacs-2025.1.tar.gz cd gromacs-2025.1 mkdir build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=$HOME/gromacs-2025.1-mpi \ -DGMX_FFT_LIBRARY=mkl \ -DGMX_CPU_ACCELERATION=ON \ -DGMX_SIMD=SSE4.1 \ -DGMX_MPI=ON \ -DGMX_OPENMP=ON \ -DCMAKE_C_COMPILER=mpiicx \ -DCMAKE_CXX_COMPILER=mpiicpx \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="-O3" \ -DCMAKE_CXX_FLAGS="-O3" make -j$(nproc) make install source /home/team17/gromacs-2025.1-mpi/bin/GMXRC ``` 82K -- tune pme ``` gmx_mpi tune_pme -s benchMEM.tpr -np 24 -ntomp 2 -r 5 -mdrun "gmx_mpi mdrun" ``` ``` mpirun -np 24 -ppn 12 --host head,work gmx_mpi mdrun -s benchMEM.tpr -npme 6 -ntomp_pme 1 gmx_mpi editconf -f confout.gro -o 82k.pdb ``` profile ``` timestamp=$(date +%F-%H%M) vtune_dir=/home/team17/vtune-res/vtune_result_$timestamp mpirun -np 24 -ppn 12 --host head,work vtune -collect=hotspots -r=$vtune_dir -- bash -c "gmx_mpi mdrun -s benchMEM.tpr" ``` 2M -- ``` mpirun -np 24 --host head:12,work:12 gmx_mpi mdrun -s benchRIB.tpr -nsteps 1000 gmx_mpi editconf -f confout.gro -o 2m.pdb ``` AlphaFold vs PDB Structural Analysis Work Flow -- 1. 到 https://www.rcsb.org/#Category-analyze 找一條蛋白質 2. 複製FASTA sequence 下載實驗結果並命名為 exp.icf 3. 貼到 https://alphafoldserver.com/ 4. 下載預測結果 並命名為pred.icf 5. ``` load exp.cif, exp load pred.cif, pred align pred, exp ```