configuración de instalación de wien2k
Versión: 11.083. /configure-c = icpc-cc = ICC-f77 = ifort-f90 = ifort-prefix =/home/soft/MPI/mpich-1 7-Intel
Fabricación
<. p>hacer instalar vi ~/. bashrcAgregue lo siguiente:
#############MPICH########
Ruta de exportación =/home/soft/MPI/mpich-1.2.7-Intel/bin:$PATH
##############Compilador Intel### #### #####
. /home/soft/Intel/Compiler/11.0/083/bin/Intel 64/ifortvars_Intel 64.sh
. /home/soft/Intel/Compiler/11.0/083/bin/Intel 64/ICC vars _ Intel 64 sh
#############Intel mkl##. ##########
Exportar LD _ LIBRARY _ PATH =/home/soft/Intel/mkl/10.1.2 024/lib/em64t/: $ LD _ LIBRARY _ PATH. tar zxf fftw-2.1.5 . tar . gz
cd fftw-2.1.5/
Exportar F77=ifort
Exportar CC=icc
. /configure-prefix =/home/soft/math lib/fftwv 215-mpich-enable-MPI
Realice
Realice la instalación para ingresar al directorio de usuario de instalación.
Su Meizhe
mkdir ~/WIEN2k_09
CP WIEN _ 2k . tar ~/WIEN cing k _ 09 CD ~/WIEN cing k _ 09 p >
tar xf WIEN2k_09.tar
. /expand_lapw.
/siteconfig_lapw
Es necesario modificar varios parámetros de compilación: (consulte lo siguiente)
Especificar un sistema
K Linux (compilador Intel ifort 10.1 mkl 10.0)
Especificar el compilador
Selección actual: ifort
Selección actual: icc
Especificar las opciones del compilador BLAS y LAPACK
Configuración actual:
oOpciones del compilador: -FR-MP 1-w-prec_div-pc80-pad-align-DINTEL_VML-trace back
Enlace L Indicador de preprocesador: $( FOPT)-L/home/soft/Intel/mkl/10.1.2 024/lib/em64t/-pthread-I-static
pIndicador de preprocesador '-DParallel'
Mkl. la biblioteca usa estática:
R R _ LIB (LAPACK BLAS): /home/soft/Intel/mkl/10.1.2 024/LIB/em64t/libmkl _ LAPACK a/home/soft/Intel/. mkl/10.1.2 .024/LIB/em64t/LIB guía .a/home/soft/Intel/mkl/10.65438
Configuración de la ejecución paralela
¿Arquitectura de memoria compartida? (sí/no): no
Shell remoto (ssh predeterminado) = ssh
¿Ha instalado MPI y Scalapack y planea ejecutarlos?
De grano fino paralelismo? (¡Esto sólo es útil para casos grandes)!
(s/n) n
Selección actual: mpiifort
Configuración actual:
Usar biblioteca estática
RP RP_LIB(paquete Scala PBLAS): -lmkl_Intel_lp64/home/soft/Intel/mkl/10.1.2.024/LIB/em64t/libmkl_Scala pack_lp64.a/home/soft/Intel /mkl/10.1.2 024/LIB/em64t. /libmkl _ secuencial . a/home/soft
//
RP RP _ LIB (paquete Scala PBLAS): -lmkl _ Intel _ lp64/home/soft/Intel/mkl /10.1.2 024/LIB/em64t/libmkl _ paquete Scala _ lp64 . >
FP FPOPT (Opciones de comparación): USD (FOPT)
Comando MP MPIRUN: MPIRUN -NP_NP_-machine file_HOSTS_ _ EXEC _
Parámetros de tamaño
Esta parte puede usar el valor predeterminado o puede configurarse en (más de 4 GB de memoria).
Parámetros (NMATMAX= 30000)
Parámetros (NUME= 1000)
Ingrese la parte de compilación:
Compilar/Recompilar p> p>
Compilar todos los programas (recomendado)
Los errores se producirán principalmente al compilar los cinco archivos ejecutables de la versión paralela de mpi, por lo que debe verificar si existen los siguientes archivos después de la compilación:
. /SRC_lapw0/lapw0_mpi
. /SRC_vuelta1/vuelta1_MPI
. /SRC_lapw1/lapw1c_MPI
. /SRC_lapw2/lapw2_mpi
. /src_lap w2/law2c_mpi. /userconfig_lapw
La edición debería ser: vi
Los demás regresan al auto.
Modificar. Bashar comentó la siguiente línea:
#ulimit -s unlimited
Modificar opciones paralelas
setenvwien _ mpirun " mpirun-machine file _ hosts _ -NP _ NP _ _ exec _ "Abra el servicio apache como usuario root.
Se inicia el servicio apache2
Se ejecuta bajo usuario normal.
w2web
Abra el puerto 7890 como interfaz web de wien2k para el cálculo en serie:
Tome el TiC de ejemplo que viene con el sistema como ejemplo: p>
cd TiC
mkdir TiC
Propionato de celulosa../TiC.struct.
Generar información atómica:
instgen_lapw
Ejemplo de inicialización:
init_lapw–b
Cálculo:
run_lapw
Puedes ver los resultados de salida del programa en *output. Si hay errores, puedes verificarlos en TiC.dayfile.
Realizar cálculo paralelo:
Pruebe si el entorno paralelo está configurado:
testpara_lapw
Probar estado de cálculo de muestra:
testpara1_lapw
testpara2_lapw
Dependiendo de diferentes decisiones. Archivo de máquina, realice cálculo paralelo de punto K o mpi:
Punto K:
Granularidad: 1
1: Nodo 31: 1
1: Nodo 31: 1
1: Nodo 32: 1
1: Nodo 32: 1
lapw0: nodo31: 2 nodo32: 2 p>
Ultra fino: 1
mpi:
Granularidad: 1
1: Nodo 31: 2
1: nodo32: 2
lapw0: nodo31: 2 nodo32: 2
Superfino: 1
Calcular:
run_lapw -p cat wien2k .pbs
######################################## #################################
# #
# Script para enviar el trabajo paralelo wien2k_09 al clúster Sugon.
#
# #
################################ # ########################################
# ## ################################################## ###################
# Las líneas que comienzan con #PBS son instrucciones de PBS (no comentarios).
# Los comentarios verdaderos comienzan con # (es decir, # seguido de un espacio).
########################################## # ###############################
#PBS -S /bin/bash
#PBS -N TiO2
#PBS -j oe
PBS -lNúmero de nodos=1: ppn=8
#PBS -V p>
############################################ ###############################
# -S: shell para ejecutar el trabajo
# -o: el nombre del archivo de error de la cola
# -j: fusionar la salida estándar y el error estándar en el mismo archivo
# -l: recursos necesarios por el trabajo: número de nodos y número de procesadores por nodo
# -l: Recursos requeridos por el trabajo: longitud máxima del trabajo
###### #### ############################################ ###### ###############
#########El modo paralelo es mpi/kpoint####### ###
PARALLEL=mpi//Indica paralelismo mpi o paralelismo del punto K.
echo $paralelo
################################ # ##############
NP = ` gato $ { PBS _ NODEFILE } | WC-l ` 1
NODE _ NUM = ` gato $ PBS _ NODEFILE | uniq | WC-l '
NP_PER_NODE=`expr $NP / $NODE_NUM '
username=`whoami '
exportar raíz de Viena =/home/users/mjhe/Wien 2k_09/
Ruta de exportación=$PATH:$WIENROOT:.
Wii nucing k _ RUNDIR =/scratch/$ { nombre de usuario }. ${PBS_JOBID}
exportar SCRATCH = $ { Wii nucing k _ RUNDIR }
#Crear directorio temporal
Si [! -a $Wien 2k_RUNDIR]; entonces
Se ha creado el directorio de preparación del eco $WIK_RUNDIR.
mkdir -p $WIEN2K_RUNDIR
El barco no corre con los gastos de carga
cd $PBS_O_WORKDIR
###### # ######Creando. Máquina#############
case$parallel-input
mpi)
Granularidad del eco: 1 gt;. máquina
Para i en `cat $PBS_NODEFILE |uniq '
hacer
echo 1: $I: $NP_PER_NODE gt; maquina
Completa
printf lap w0: gt; Máquina
#####lapw0 paralela con mpi# # # # # # # # #
Para I, en `cat ${PBS_NODEFILE}|uniq`
Hacer
printf $I: $NP_PER_NODE gt; Máquina
Completa
################################ p>
####Ejemplo de informes de errores de lapw0 en paralelo con mpi Utilice el siguiente error de mpi lapw0######## # # #
# printf ` cat $ { PBS _ NODEFILE } | uniq | cabeza-1 `: 1 gt; Máquina
# # # # # # # # # # # # # # # # # # # # # # # #Fin
printf/n gt; Máquina
eco extra fino: 1 gt; máquina
;
kpoint)
Granularidad del eco: 1 gt;. máquina
Para I en "cat $PBS_NODEFILE"
hacer
echo 1: $I: 1 gt. maquina
Completa
printf lap w0: gt; Máquina
#####lapw0 paralela con mpi# # # # # # # # #
Para I, en `cat ${PBS_NODEFILE}|uniq`
Hacer
printf $I: $NP_PER_NODE gt; Máquina
Completa
################################ p>
####Ejemplo de informes de errores de lapw0 en paralelo con mpi Utilice el siguiente error de mpi lapw0######## # # #
# printf ` cat $ { PBS _ NODEFILE } | uniq | cabeza-1 `: 1 gt; Máquina
# # # # # # # # # # # # # # # # # # # # # # # #Fin
printf/n gt; Máquina
eco extra fino: 1 gt;
Máquina
;;
Centro de aplicaciones de sistemas ambientales Centro de aplicaciones de sistemas ambientales
################Fin Crear ###########
#######Ejecute el ejecutable paralelo w induciendo k # # # # # # #
instgen_lapw
init_lapw -b
clean -s
echo #################La hora de inicio es `date` # #############
run_lapw -p
Eco ################# #El la hora de finalización es "fecha` ###############
rm -rf $WIEN2K_RUNDIR
######### # ##########End############
Las regiones que normalmente requieren modificación están resaltadas en negrita.
Este script puede implemente la inicialización de un ejemplo y debe realizarse bajo la premisa de *.struct CB65
Shanghai 2382: 16GB 147GB SAS
1000Gb/mpich v1.2.7
. p>Ejemplo de dióxido de titanio:
NMATMAX=30000
2 proceso k puntos, mpi paralelo lapw0, k punto paralelo lapw1, módulo lapw2
4m44s
4 procesos k puntos, mpi paralelo lapw0, k puntos paralelo lapw1, módulo lapw2
4m30s
8 procesos k puntos, mpi paralelo lapw0, k. Haga clic en módulos paralelos lapw1, lapw2
6m29s
Módulos mpi de proceso dual, mpi paralelo lapw0, lapw1, lapw2
7m53s
6m56s
Módulos mpi, mpi paralelo lapw0, lapw1, lapw2 de 8 procesos.
9m5s
Ejemplo de prueba estándar:
Ejemplo de prueba oficial:
Secuencia:
Caso de prueba p> p>
Exportar número de hilo OMP = 1
Tiempo x vuelta 1–c
Suma del tiempo del reloj de pared: 135,0 (INIT = 1,0 K puntos = 133,9)
Exportar número de subprocesos OMP = 4
Tiempo x vuelta 1–c
Suma del tiempo del reloj de pared: 62,0 (INIT = 1,0 K puntos = 61,0)
Recuento de subprocesos OMP de exportación = 8
Tiempo x vuelta 1–c
Suma de tiempo del reloj de pared: 56,2 (INIT = 1,0 K puntos = 55,2)
Paralelo:
Tiempo x vuelta 1–p
Caso de prueba
2k puntos:
test_case.output1: Muro Suma de tiempo de reloj: 62,0 (INIT = 1,0 K puntos = 61,0)
test_case .output 1_1: Suma de tiempo de reloj de pared: 138,5 (INIT = 1,0 K puntos = 137,5)
4k puntos :
test_case.output1: Suma del tiempo del reloj de pared: 62,0 (INIT = 1,0 K puntos = 61,0)
test_case.output1_1: Suma del tiempo del reloj de pared: 134,9 (INIT = 1,0 K puntos = 133,9)
Prueba de referencia mpi
2 proceso:
Salida de referencia MPI 1_1: TIME HAMILT(CPU)= 134,1, HNS = 116,4. , HORB = 0,0, DIAG = 697,5
Salida de referencia MPI 1 _ 1: Tiempo total de CPU: 950,0 (INIT = 1,9 K puntos = 948,1)
Salida de referencia MPI. 1 _ 1: Tiempo total del reloj de pared: 1138,9 (INIT = 2,2 K puntos = 1136,7)
4 proceso:
Salida de referencia MPI 1 _ 1: TIME HAMILT(CPU). = 67,8, HNS = 70,5, HORB = 0,0, DIAG = 420,6
Salida de referencia MPI 1_1: Tiempo total de CPU: 560,7 (INIT = 1,8 K puntos = 558,9)
MPI -benchmark salida 1 _ 1: suma de tiempo del reloj de pared: 643,2 (INIT = 2,2 K puntos = 640,9)
8 Proceso:
MPI-benchmark salida 1 _ 1: TIME. HAMILT (CPU) = 40,4, HNS = 44,9, HORB = 0,0, DIAG = 422,0
Salida de referencia MPI 1_1: Tiempo total de CPU: 509,3 (INIT = 1,9 K puntos = 507,4)
Salida de referencia MPI 1_1: Suma de tiempo del reloj de pared: 614,3 (INIT = 2,2 K puntos = 612,0)
16 procesos:
<p>Salida de referencia MPI 1 _ 1: TIME HAMILT(CPU) = 22,6, HNS = 32,5, HORB = 0,0, DIAG = 140,5
Salida de referencia MPI 1 _ 1: Tiempo total de CPU: 197,5 (INIT = 1,9 K puntos = 195,7)
Salida de referencia MPI 1 _ 1: suma de los tiempos del reloj de pared: 1190,0 (INIT =2,8 K puntos = 1187,2)
Usted Puede usar grep TIME *output1* para mostrar el tiempo de cálculo.