some polishing concerning openMP initialization
number of threads is now written to *.out file
This commit is contained in:
parent
ab82dbc99c
commit
096a4803b0
|
@ -202,7 +202,8 @@ subroutine hypela2(&
|
||||||
debug_reset
|
debug_reset
|
||||||
use mesh, only: mesh_FEasCP
|
use mesh, only: mesh_FEasCP
|
||||||
use CPFEM, only: CPFEM_initAll,CPFEM_general,CPFEM_init_done
|
use CPFEM, only: CPFEM_initAll,CPFEM_general,CPFEM_init_done
|
||||||
use OMP_LIB
|
!$ use OMP_LIB ! the openMP function library
|
||||||
|
!$ use numerics, only: mpieNumThreadsInt ! number of threads set by MPIE_NUMTHREADS
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
! ** Start of generated type statements **
|
! ** Start of generated type statements **
|
||||||
|
@ -228,22 +229,17 @@ subroutine hypela2(&
|
||||||
real(pReal), dimension (3,3) :: pstress ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
real(pReal), dimension (3,3) :: pstress ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
||||||
real(pReal), dimension (3,3,3,3) :: dPdF ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
real(pReal), dimension (3,3,3,3) :: dPdF ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
||||||
|
|
||||||
integer(pInt) computationMode, i, cp_en, &
|
integer(pInt) computationMode, i, cp_en
|
||||||
defaultNumThreadsInt, & ! default value stored in environment variable OMP_NUM_THREADS
|
! OpenMP variable
|
||||||
mpieNumThreadsInt ! value stored in environment variable MPIE_NUM_THREADS
|
!$ integer(pInt) defaultNumThreadsInt ! default value set by Marc
|
||||||
|
|
||||||
|
|
||||||
|
!$ defaultNumThreadsInt = omp_get_num_threads() ! remember number of threads set by Marc
|
||||||
|
|
||||||
character(len=2) mpieNumThreadsString
|
|
||||||
|
|
||||||
|
|
||||||
defaultNumThreadsInt = omp_get_num_threads() ! remember default number of available threads defined by environment variable OMP_NUM_THREADS
|
|
||||||
call GetEnv('MPIE_NUM_THREADS',mpieNumThreadsString) ! get environment variable MPIE_NUM_THREADS...
|
|
||||||
read(mpieNumThreadsString,'(i2)') mpieNumThreadsInt ! ...convert it to integer...
|
|
||||||
if (mpieNumThreadsInt < 1) mpieNumThreadsInt = 1 ! ...ensure that its at least one...
|
|
||||||
call omp_set_num_threads(mpieNumThreadsInt) ! ...and use it as number of threads for parallel execution
|
|
||||||
|
|
||||||
|
|
||||||
if (.not. CPFEM_init_done) call CPFEM_initAll(t(1),n(1),nn)
|
if (.not. CPFEM_init_done) call CPFEM_initAll(t(1),n(1),nn)
|
||||||
|
|
||||||
|
!$ call omp_set_num_threads(mpieNumThreadsInt) ! set number of threads for parallel execution set by MPIE_NUM_THREADS
|
||||||
|
|
||||||
if (lovl == 4) then ! Marc requires stiffness in separate call
|
if (lovl == 4) then ! Marc requires stiffness in separate call
|
||||||
if ( timinc < theDelta .and. theInc == inc ) then ! first after cutback
|
if ( timinc < theDelta .and. theInc == inc ) then ! first after cutback
|
||||||
computationMode = 7 ! --> restore tangent and return it
|
computationMode = 7 ! --> restore tangent and return it
|
||||||
|
@ -335,7 +331,7 @@ subroutine hypela2(&
|
||||||
s(1:ngens) = stress(1:ngens)*invnrmMandel(1:ngens)
|
s(1:ngens) = stress(1:ngens)*invnrmMandel(1:ngens)
|
||||||
if(symmetricSolver) d(1:ngens,1:ngens) = 0.5_pReal*(d(1:ngens,1:ngens)+transpose(d(1:ngens,1:ngens)))
|
if(symmetricSolver) d(1:ngens,1:ngens) = 0.5_pReal*(d(1:ngens,1:ngens)+transpose(d(1:ngens,1:ngens)))
|
||||||
|
|
||||||
call omp_set_num_threads(defaultNumThreadsInt) ! reset number of threads to stored default value
|
!$ call omp_set_num_threads(defaultNumThreadsInt) ! reset number of threads to stored default value
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,9 @@ real(pReal) relevantStrain, & ! strain
|
||||||
|
|
||||||
!* Random seeding parameters: added <<<updated 27.08.2009>>>
|
!* Random seeding parameters: added <<<updated 27.08.2009>>>
|
||||||
integer(pInt) fixedSeed ! fixed seeding for pseudo-random number generator
|
integer(pInt) fixedSeed ! fixed seeding for pseudo-random number generator
|
||||||
|
! OpenMP variable
|
||||||
|
!$ integer(pInt) mpieNumThreadsInt ! value stored in environment variable MPIE_NUM_THREADS
|
||||||
|
|
||||||
|
|
||||||
CONTAINS
|
CONTAINS
|
||||||
|
|
||||||
|
@ -69,6 +72,7 @@ subroutine numerics_init()
|
||||||
IO_lc, &
|
IO_lc, &
|
||||||
IO_floatValue, &
|
IO_floatValue, &
|
||||||
IO_intValue
|
IO_intValue
|
||||||
|
!$ use OMP_LIB ! the openMP function library
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
@ -83,6 +87,9 @@ subroutine numerics_init()
|
||||||
character(len=64) tag
|
character(len=64) tag
|
||||||
character(len=1024) line
|
character(len=1024) line
|
||||||
|
|
||||||
|
! OpenMP variable
|
||||||
|
!$ character(len=2) mpieNumThreadsString !enironment variable MPIE_NUMTHREADS
|
||||||
|
|
||||||
write(6,*)
|
write(6,*)
|
||||||
write(6,*) '<<<+- numerics init -+>>>'
|
write(6,*) '<<<+- numerics init -+>>>'
|
||||||
write(6,*) '$Id$'
|
write(6,*) '$Id$'
|
||||||
|
@ -134,6 +141,13 @@ subroutine numerics_init()
|
||||||
!* Random seeding parameters: added <<<updated 27.08.2009>>>
|
!* Random seeding parameters: added <<<updated 27.08.2009>>>
|
||||||
fixedSeed = 0_pInt
|
fixedSeed = 0_pInt
|
||||||
|
|
||||||
|
|
||||||
|
!* determin number of threads from environment variable MPIE_NUM_THREADS
|
||||||
|
!$ call GetEnv('MPIE_NUM_THREADS',mpieNumThreadsString) ! get environment variable MPIE_NUM_THREADS...
|
||||||
|
!$ read(mpieNumThreadsString,'(i2)') mpieNumThreadsInt ! ...convert it to integer...
|
||||||
|
!$ if (mpieNumThreadsInt < 1) mpieNumThreadsInt = 1 ! ...ensure that its at least one...
|
||||||
|
!$ call omp_set_num_threads(mpieNumThreadsInt) ! ...and use it as number of threads for parallel execution
|
||||||
|
|
||||||
! try to open the config file
|
! try to open the config file
|
||||||
if(IO_open_file(fileunit,numerics_configFile)) then
|
if(IO_open_file(fileunit,numerics_configFile)) then
|
||||||
|
|
||||||
|
@ -286,13 +300,17 @@ subroutine numerics_init()
|
||||||
write(6,*)
|
write(6,*)
|
||||||
|
|
||||||
!* spectral parameters
|
!* spectral parameters
|
||||||
write(6,'(a24,x,e8.1)') 'rTol_defgradAvg: ',rTol_defgradAvg
|
write(6,'(a24,x,e8.1)') 'rTol_defgradAvg: ',rTol_defgradAvg
|
||||||
|
|
||||||
write(6,*)
|
write(6,*)
|
||||||
|
|
||||||
!* Random seeding parameters
|
!* Random seeding parameters
|
||||||
write(6,'(a24,x,i8)') 'fixed_seed: ',fixedSeed
|
write(6,'(a24,x,i8)') 'fixed_seed: ',fixedSeed
|
||||||
write(6,*)
|
write(6,*)
|
||||||
|
|
||||||
|
!* openMP parameter
|
||||||
|
!$ write(6,'(a24,x,i8)') 'number of threads: ',OMP_get_max_threads()
|
||||||
|
!$ write(6,*)
|
||||||
|
|
||||||
! sanity check
|
! sanity check
|
||||||
if (relevantStrain <= 0.0_pReal) call IO_error(260)
|
if (relevantStrain <= 0.0_pReal) call IO_error(260)
|
||||||
|
|
Loading…
Reference in New Issue