:D 获取中...

1 Installation

1.1 Installation of Matlab

mdkir /tmp/matlab  matlab
su root
mount R2015b_glnxa64.iso /tmp/matlab 
cp -r /tmp/matlab/* matlab/
unmount /tmp/matlab
cd matlab
mkdir -p  /usr/local/matlab/mylic
cp ../crack/Matlab_R2015b_glnxa64.lic  /usr/local/matlab/mylic/
cp installer_input.txt input.ini

#### vi input.ini
destinationFolder=/usr/local/matlab
fileInstallationKey=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
agreeToLicense=yes
outputFile=/tmp/matlab.log
mode=silent
activationPropertiesFile=/usr/local/matlab/mylic/active.ini
licensePath= /usr/local/matlab/mylic/Matlab_R2015b_glnxa64.lic
####

#### vi  /usr/local/matlab/mylic/active.ini
isSilent=true
activateCommand=activateOffline
licenseFile=/usr/local/matlab/mylic/Matlab_R2015b_glnxa64.lic
####

cd ..
matlab/install -inputFile matlab/input.ini
cd crack
cp lib*  /usr/local/matlab/bin/glnxa64/
/usr/local/matlab/bin/activate_matlab.sh -isSilent -propertiesFile /usr/local/matlab/mylic/active.ini

## On Tycloud (sugon CPU)
Add `HygonGenuine Family  * Model  * mkl.so mklcompat.so` to bin/glnxa64/lapack.spec and bin/glnxa64/blas.spec

## Set Environment Variable
    export MATLABROOT=/usr/local/matlab
    export PATH=$MATLABROOT/bin:$PATH
    export LD_LIBRARY_PATH=$MATLABROOT/runtime/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MATLABROOT/bin/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MATLABROOT/sys/os/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MATLABROOT/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MATLABROOT/sys/java/jre/glnxa64/jre/lib/amd64/server:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MATLABROOT/sys/java/jre/glnxa64/jre/lib/amd64:$LD_LIBRARY_PATH
    export XAPPLERSDIR=$MATLABROOT/X11/app-defaults

1.2 Install NanoDcal

### load Environment Variable for matlab
### Load openmpi 
. ~muyw/.soft/envs/env_ompi ompi.g7

mdir /home/muyw/.share 
cd /home/muyw/.share
unzip Nanodcal2021A.zip
cd Nanodcal2021A/Nanodcal
matlab -nodisplay
mex -setup
nanodcal -install

#### Set Environment Variable
export NDHOME=/home/muyw/.share/Nanodcal2021A
export MATLABPATH=$NDHOME/Nanodcal:$NDHOME/Nanodcal/classes/toplevel:$MATLABPATH

#### Example
mpirun -np 16 matlab -nodisplay -r "nanodcal -parallel -doexit scf.input"

## package NanoDcal
cd /home/muyw/.share 
mkdir mcr mcr.src
cd mcr.src
unzip /****/MatlabR2015B/toolbox/compiler/deploy/glnxa64/MCRInstaller.zip 
./install -mode silent -agreeToLicense yes -destinationFolder /usr/local/matlab/MCR
cd /home/muyw/.share/Nanodcal2021A
matlab -nodisplay
mcc -m nanodcal -a Nanodcal/classes -a Nanodcal/nanodcalversion.txt -a Nanodcal/generaldata

### Set Environment Variable for matlab MCR 
    export MCRHOME=/usr/local/matlab/MCR/v90
    export LD_LIBRARY_PATH=$MCRHOME/runtime/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MCRHOME/bin/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MCRHOME/sys/os/glnxa64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$MCRHOME/sys/opengl/lib/glnxa64:$LD_LIBRARY_PATH
    
### Set Environment Variable
    export NDHOME=/root/soft/NanoDcal
    export PATH=$NDHOME:$PATH
    
### Example
export OMP_NUM_THREADS=4
mpirun -np 4 nanodcal -l ${NDHOME}/Nanodcal/license -parallel -doexit scf.input
chmod a+rx /home/muyw/.share
chmod a+rx /home/muyw/.share/Nanodcal2021A/nanodcal

1.2.1 NFS for Nanodcal License

### Server Node 
su root
yum install -y nfs-utils rpcbind
systemctl enable rpcbind 
systemctl enable nfs-server 
systemctl start rpcbind 
systemctl start nfs-server 

## vi /etc/sysconfig/nfs
RQUOTAD_PORT=996
LOCKD_TCPPORT=33993
LOCKD_UDPPORT=33993
MOUNTD_PORT=976
STATED_PORT=40004

systemctl restart rpcbind 
systemctl restart nfs
## 111 for rpcbind, 2049 for nfs, 
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --permanent --add-port=996/tcp
firewall-cmd --permanent --add-port=996/udp
firewall-cmd --permanent --add-port=33993/tcp
firewall-cmd --permanent --add-port=33993/udp
firewall-cmd --permanent --add-port=976/tcp
firewall-cmd --permanent --add-port=976/udp
firewall-cmd --permanent --add-port=40004/tcp
firewall-cmd --permanent --add-port=40004/
#firewall-cmd --permanent --remove-port=40001/tcp

firewall-cmd --reload
firewall-cmd --list-all

## vi /etc/exports 
/home/muyw/.share/ 192.168.8.201/24(ro,no_root_squash,no_all_squash,sync)

systemctl restart nfs-server 
showmount -e 192.168.8.201
### Client Node 
yum install nfs-utils
sudo -u muyw mkdir /home/muyw/.share/
sudo mount -t nfs 192.168.8.201:/home/muyw/.share /home/muyw/.share/
Add to rc.local: 
mount -t nfs 192.168.8.201:/home/muyw/.share /home/muyw/.share/

## NFS down 
### at  server
sudo systemctl status nfs-server 
sudo systemctl restart nfs-server 
sudo showmount -e 192.168.8.201
### at client 
sudo mount -l 
sudo umount  -f /home/muyw/.share/
sudo mount -t nfs 192.168.8.201:/home/muyw/.share /home/muyw/.share/

1.3 Octave Installation

# Download latest Octave from <https://www.gnu.org/software/octave/>
tar -xvf octave-6.4.0.tar.gz
# Add gnuplot to PATH

./configure --prefix=/home/muyw/.soft/octave LDFLAGS="-L/home/ywmu/backup/Src/comlib/gcc7" --with-blas="lopenblas"

## if blas and lapack not found in configure: 
sudo echo /home/ywmu/backup/Src/comlib/gcc7 > /etc/ld.so.conf.d/openblas.conf
sudo ldconfig

make 
make install 
  • if compiled with gcc7, Environment Variables for GCC7 and libopenblas.so.0 may be needed.

2 PseudoPotential Benchmark

2.0.1 Graphene (2 atoms)

image-20231012170115089
Energy (Ha) Task Time
TM NCPP (old) -309.750219872 00:01:54
TM NCPP (2023) -309.750219872 00:01:16
ONCV NCPP (Pseudo Dojo 2023) -326.086935641 00:01:13

2.1 C468

nd_device_tmp_0001_(1)
IV_nanodcal_bench
Task Time
TM NCPP (old) 04:22:05a
TM NCPP (2023) 03:17:46
ONCV NCPP (Pseudo Dojo 2023) 03:18:06

a: Slow Convergence for the first step.