Merge branch 'new-test-server' into 'development'

New test server

See merge request damask/DAMASK!291
This commit is contained in:
Francisco Jose Gallardo Basile 2020-12-01 11:55:42 +01:00
commit 3f1af182df
8 changed files with 43 additions and 35 deletions

View File

@ -48,30 +48,29 @@ variables:
# Names of module files to load # Names of module files to load
# =============================================================================================== # ===============================================================================================
# ++++++++++++ Compiler +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++ Compiler +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IntelCompiler17_8: "Compiler/Intel/17.8 Libraries/IMKL/2017" IntelCompiler19_1: "Compiler/Intel/19.1.2 Libraries/IMKL/2020"
IntelCompiler18_4: "Compiler/Intel/18.4 Libraries/IMKL/2018" GNUCompiler10: "Compiler/GNU/10"
GNUCompiler8_2: "Compiler/GNU/8.2"
# ------------ Defaults ---------------------------------------------- # ------------ Defaults ----------------------------------------------
IntelCompiler: "$IntelCompiler18_4" IntelCompiler: "$IntelCompiler19_1"
GNUCompiler: "$GNUCompiler8_2" GNUCompiler: "$GNUCompiler10"
# ++++++++++++ MPI ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++ MPI ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IMPI2018Intel18_4: "MPI/Intel/18.4/IntelMPI/2018" IMPI2020Intel19_1: "MPI/Intel/19.1.2/IntelMPI/2019"
MPICH3_3GNU8_2: "MPI/GNU/8.2/MPICH/3.3" OMPI4_0GNU10: "MPI/GNU/10/OpenMPI/4.0.5"
# ------------ Defaults ---------------------------------------------- # ------------ Defaults ----------------------------------------------
MPICH_Intel: "$IMPI2018Intel18_4" MPI_Intel: "$IMPI2020Intel19_1"
MPICH_GNU: "$MPICH3_3GNU8_2" MPI_GNU: "$OMPI4_0GNU10"
# ++++++++++++ PETSc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++ PETSc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PETSc3_10_3IMPI2018Intel18_4: "Libraries/PETSc/3.10.3/Intel-18.4-IntelMPI-2018" PETSc3_14_0IMPI2020Intel19_1: "Libraries/PETSc/3.14.0/Intel-19.1.2-IntelMPI-2019"
PETSc3_10_3MPICH3_3GNU8_2: "Libraries/PETSc/3.10.3/GNU-8.2-MPICH-3.3" PETSc3_14_0OMPI4_0GNU10: "Libraries/PETSc/3.14.0/GNU-10-OpenMPI-4.0.5"
# ------------ Defaults ---------------------------------------------- # ------------ Defaults ----------------------------------------------
PETSc_MPICH_Intel: "$PETSc3_10_3IMPI2018Intel18_4" PETSc_Intel: "$PETSc3_14_0IMPI2020Intel19_1"
PETSc_MPICH_GNU: "$PETSc3_10_3MPICH3_3GNU8_2" PETSc_GNU: "$PETSc3_14_0OMPI4_0GNU10"
# ++++++++++++ commercial FEM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++ commercial FEM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MSC2019_1: "FEM/MSC/2019.1" MSC2020: "FEM/MSC/2020"
# ------------ Defaults ---------------------------------------------- # ------------ Defaults ----------------------------------------------
MSC: "$MSC2019_1" MSC: "$MSC2020"
IntelMarc: "$IntelCompiler17_8" IntelMarc: "$IntelCompiler19_1"
HDF5Marc: "HDF5/1.10.5/Intel-17.8" HDF5Marc: "HDF5/1.12.0/Intel-19.1.2"
################################################################################################### ###################################################################################################
checkout: checkout:
@ -181,7 +180,7 @@ Post_OrientationAverageMisorientation:
compile_grid_Intel: compile_grid_Intel:
stage: compile stage: compile
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- cd pytest - cd pytest
- pytest -k 'compile and grid' --basetemp=${TESTROOT}/compile_grid_Intel - pytest -k 'compile and grid' --basetemp=${TESTROOT}/compile_grid_Intel
except: except:
@ -191,7 +190,7 @@ compile_grid_Intel:
compile_mesh_Intel: compile_mesh_Intel:
stage: compile stage: compile
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- cd pytest - cd pytest
- pytest -k 'compile and mesh' --basetemp=${TESTROOT}/compile_mesh_Intel - pytest -k 'compile and mesh' --basetemp=${TESTROOT}/compile_mesh_Intel
except: except:
@ -201,7 +200,7 @@ compile_mesh_Intel:
compile_grid_GNU: compile_grid_GNU:
stage: compile stage: compile
script: script:
- module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU - module load $GNUCompiler $MPI_GNU $PETSc_GNU
- cd pytest - cd pytest
- pytest -k 'compile and grid' --basetemp=${TESTROOT}/compile_grid_GNU - pytest -k 'compile and grid' --basetemp=${TESTROOT}/compile_grid_GNU
except: except:
@ -211,7 +210,7 @@ compile_grid_GNU:
compile_mesh_GNU: compile_mesh_GNU:
stage: compile stage: compile
script: script:
- module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU - module load $GNUCompiler $MPI_GNU $PETSc_GNU
- cd pytest - cd pytest
- pytest -k 'compile and mesh' --basetemp=${TESTROOT}/compile_mesh_GNU - pytest -k 'compile and mesh' --basetemp=${TESTROOT}/compile_mesh_GNU
except: except:
@ -231,7 +230,7 @@ compile_MARC:
setup_grid: setup_grid:
stage: compile stage: compile
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- BUILD_DIR=$(mktemp -d) - BUILD_DIR=$(mktemp -d)
- cd ${BUILD_DIR} - cd ${BUILD_DIR}
- cmake -DDAMASK_SOLVER=GRID -DCMAKE_INSTALL_PREFIX=${DAMASKROOT} ${DAMASKROOT} - cmake -DDAMASK_SOLVER=GRID -DCMAKE_INSTALL_PREFIX=${DAMASKROOT} ${DAMASKROOT}
@ -243,7 +242,7 @@ setup_grid:
setup_mesh: setup_mesh:
stage: compile stage: compile
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- BUILD_DIR=$(mktemp -d) - BUILD_DIR=$(mktemp -d)
- cd ${BUILD_DIR} - cd ${BUILD_DIR}
- cmake -DDAMASK_SOLVER=MESH -DCMAKE_INSTALL_PREFIX=${DAMASKROOT} ${DAMASKROOT} - cmake -DDAMASK_SOLVER=MESH -DCMAKE_INSTALL_PREFIX=${DAMASKROOT} ${DAMASKROOT}
@ -256,7 +255,7 @@ setup_mesh:
Pytest_grid: Pytest_grid:
stage: grid stage: grid
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- cd pytest - cd pytest
- pytest -k 'not compile' --basetemp=${TESTROOT}/fortran -v - pytest -k 'not compile' --basetemp=${TESTROOT}/fortran -v
except: except:
@ -342,7 +341,7 @@ Marc_elementLib:
SpectralRuntime: SpectralRuntime:
stage: performance stage: performance
script: script:
- module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - module load $IntelCompiler $MPI_Intel $PETSc_Intel
- cd $DAMASKROOT - cd $DAMASKROOT
- make clean grid processing OPTIMIZATION=AGGRESSIVE - make clean grid processing OPTIMIZATION=AGGRESSIVE
- cd $LOCAL_HOME/performance # location of old results - cd $LOCAL_HOME/performance # location of old results

@ -1 +1 @@
Subproject commit 803cf6bd65655159cb2f9a5de81d008ab75e061c Subproject commit 73cb2f63397dfb8551fa5d8cb444eb89b2d3712a

2
env/CONFIG vendored
View File

@ -2,4 +2,4 @@
set DAMASK_NUM_THREADS = 4 set DAMASK_NUM_THREADS = 4
set MSC_ROOT = /opt/msc set MSC_ROOT = /opt/msc
set MSC_VERSION = 2019.1 set MSC_VERSION = 2020

View File

@ -7,6 +7,7 @@ import xml.etree.ElementTree as ET
import xml.dom.minidom import xml.dom.minidom
from pathlib import Path from pathlib import Path
from functools import partial from functools import partial
from collections import defaultdict
import h5py import h5py
import numpy as np import numpy as np
@ -1239,6 +1240,8 @@ class Result:
delta.text="{} {} {}".format(*(self.size/self.grid)) delta.text="{} {} {}".format(*(self.size/self.grid))
type_map = defaultdict(lambda:'Matrix', ( ((),'Scalar'), ((3,),'Vector'), ((3,3),'Tensor')) )
with h5py.File(self.fname,'r') as f: with h5py.File(self.fname,'r') as f:
attributes.append(ET.SubElement(grid, 'Attribute')) attributes.append(ET.SubElement(grid, 'Attribute'))
attributes[-1].attrib={'Name': 'u / m', attributes[-1].attrib={'Name': 'u / m',
@ -1259,14 +1262,14 @@ class Result:
shape = f[name].shape[1:] shape = f[name].shape[1:]
dtype = f[name].dtype dtype = f[name].dtype
if (shape not in [(), (3,), (3,3)]) or dtype != np.float64: continue if dtype != np.float64: continue
prec = f[name].dtype.itemsize prec = f[name].dtype.itemsize
unit = f[name].attrs['Unit'] if h5py3 else f[name].attrs['Unit'].decode() unit = f[name].attrs['Unit'] if h5py3 else f[name].attrs['Unit'].decode()
attributes.append(ET.SubElement(grid, 'Attribute')) attributes.append(ET.SubElement(grid, 'Attribute'))
attributes[-1].attrib={'Name': name.split('/',2)[2]+f' / {unit}', attributes[-1].attrib={'Name': name.split('/',2)[2]+f' / {unit}',
'Center': 'Cell', 'Center': 'Cell',
'AttributeType': {():'Scalar',(3):'Vector',(3,3):'Tensor'}[shape]} 'AttributeType': type_map[shape]}
data_items.append(ET.SubElement(attributes[-1], 'DataItem')) data_items.append(ET.SubElement(attributes[-1], 'DataItem'))
data_items[-1].attrib={'Format': 'HDF', data_items[-1].attrib={'Format': 'HDF',
'NumberType': 'Float', 'NumberType': 'Float',

View File

@ -5,6 +5,7 @@
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
module spectral_utilities module spectral_utilities
use, intrinsic :: iso_c_binding use, intrinsic :: iso_c_binding
#include <petsc/finclude/petscsys.h> #include <petsc/finclude/petscsys.h>
use PETScSys use PETScSys
@ -14,6 +15,7 @@ module spectral_utilities
use math use math
use rotations use rotations
use IO use IO
use config
use discretization_grid use discretization_grid
use discretization use discretization
use homogenization use homogenization

View File

@ -17,8 +17,8 @@ module math
#if __INTEL_COMPILER >= 1900 #if __INTEL_COMPILER >= 1900
! do not make use associated entities available to other modules ! do not make use associated entities available to other modules
private :: & private :: &
prec, & IO, &
IO config
#endif #endif
real(pReal), parameter :: PI = acos(-1.0_pReal) !< ratio of a circle's circumference to its diameter real(pReal), parameter :: PI = acos(-1.0_pReal) !< ratio of a circle's circumference to its diameter

View File

@ -12,11 +12,11 @@ module FEM_utilities
use PETScis use PETScis
use prec use prec
use FEsolving
use homogenization
use config use config
use math use math
use IO
use discretization_mesh use discretization_mesh
use homogenization
implicit none implicit none
private private

View File

@ -50,7 +50,11 @@ subroutine parallelization_init
if (threadLevel<MPI_THREAD_FUNNELED) error stop 'MPI library does not support OpenMP' if (threadLevel<MPI_THREAD_FUNNELED) error stop 'MPI library does not support OpenMP'
#endif #endif
call PetscInitializeNoArguments(petsc_err) ! first line in the code according to PETSc manual #if defined(DEBUG)
call PetscInitialize(PETSC_NULL_CHARACTER,petsc_err)
#else
call PetscInitializeNoArguments(petsc_err)
#endif
CHKERRQ(petsc_err) CHKERRQ(petsc_err)
#if defined(DEBUG) && defined(__INTEL_COMPILER) #if defined(DEBUG) && defined(__INTEL_COMPILER)