mirror of https://gitlab.com/QEF/q-e.git
Real random numbers used now, paranoid data reset before tests
This commit is contained in:
parent
ec93bfa319
commit
971d9de467
|
@ -65,6 +65,7 @@ PROGRAM test_mp_alltoall_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
snd_{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
snd_{vname}_d = snd_{vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_alltoall(snd_{vname}_d, rcv_{vname}_d, world_comm)
|
||||
CALL mp_alltoall(snd_{vname}_h, rcv_{vname}_h, world_comm)
|
||||
aux_h = rcv_{vname}_d
|
||||
|
|
|
@ -57,6 +57,7 @@ PROGRAM test_mp_bcast_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_bcast({vname}_d, i , world_comm)
|
||||
CALL mp_bcast({vname}_h, i , world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -54,6 +54,7 @@ PROGRAM test_mp_circular_shift_left_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_circular_shift_left({vname}_d, 0, world_comm)
|
||||
CALL mp_circular_shift_left({vname}_h, 0, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -75,6 +75,7 @@ PROGRAM test_mp_gather_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_gather({vname}_d, all_{vname}_d, i , world_comm)
|
||||
CALL mp_gather({vname}_h, all_{vname}_h, i , world_comm)
|
||||
aux_h = all_{vname}_d
|
||||
|
|
|
@ -87,6 +87,7 @@ PROGRAM test_mp_gatherv_{vname}_gpu
|
|||
{vname}_d = {vname}_h
|
||||
all_{vname}_h = {typeconv} ( -1 )
|
||||
all_{vname}_d = {typeconv} ( -1 )
|
||||
aux_h = 0
|
||||
CALL mp_gather({vname}_d, all_{vname}_d, recvcount , displs, i , world_comm)
|
||||
CALL mp_gather({vname}_h, all_{vname}_h, recvcount , displs, i , world_comm)
|
||||
aux_h = all_{vname}_d
|
||||
|
|
|
@ -64,6 +64,7 @@ PROGRAM test_mp_get_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_get({vname}_d, {vname}_d, mpime, i, 0, 0, world_comm)
|
||||
CALL mp_get({vname}_h, {vname}_h, mpime, i, 0, 0, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -54,6 +54,7 @@ PROGRAM test_mp_max_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_max({vname}_d, world_comm)
|
||||
CALL mp_max({vname}_h, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -54,6 +54,7 @@ PROGRAM test_mp_min_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_min({vname}_d, world_comm)
|
||||
CALL mp_min({vname}_h, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -54,6 +54,7 @@ PROGRAM test_mp_put_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_put({vname}_d, {vname}_d, mpime, 0, i, 0, world_comm)
|
||||
CALL mp_put({vname}_h, {vname}_h, mpime, 0, i, 0, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
@ -64,6 +65,7 @@ PROGRAM test_mp_put_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_put({vname}_d, {vname}_d, mpime, i, 0, 0, world_comm)
|
||||
CALL mp_put({vname}_h, {vname}_h, mpime, i, 0, 0, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -56,6 +56,7 @@ PROGRAM test_mp_root_sum_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_root_sum({vname}_d, root_{vname}_d, i , world_comm)
|
||||
CALL mp_root_sum({vname}_h, root_{vname}_h, i , world_comm)
|
||||
IF (mpime == i) THEN
|
||||
|
|
|
@ -57,6 +57,7 @@ PROGRAM test_mp_sum_{vname}_gpu
|
|||
CALL RANDOM_NUMBER(rnd)
|
||||
{vname}_h = {typeconv} ( 10.0 * rnd )
|
||||
{vname}_d = {vname}_h
|
||||
aux_h = 0
|
||||
CALL mp_sum({vname}_d, world_comm)
|
||||
CALL mp_sum({vname}_h, world_comm)
|
||||
aux_h = {vname}_d
|
||||
|
|
|
@ -37,14 +37,28 @@ SUBROUTINE save_random_seed(test_name, mpime)
|
|||
CHARACTER(len=*), INTENT(IN) :: test_name
|
||||
INTEGER, INTENT(IN) :: mpime
|
||||
!
|
||||
INTEGER, PARAMETER :: out_unit=20
|
||||
CHARACTER(len=60) :: fname
|
||||
INTEGER :: n
|
||||
INTEGER, PARAMETER :: in_unit=20, out_unit=21
|
||||
CHARACTER(len=80) :: fname
|
||||
INTEGER :: n, istat
|
||||
INTEGER, ALLOCATABLE :: seed(:)
|
||||
!
|
||||
CALL random_seed(size = n)
|
||||
ALLOCATE(seed(n))
|
||||
CALL random_seed(get=seed)
|
||||
|
||||
! First try if the OS provides a random number generator
|
||||
OPEN(UNIT=in_unit, file="/dev/urandom", access="stream", &
|
||||
form="unformatted", action="read", status="old", iostat=istat)
|
||||
|
||||
IF (istat == 0) THEN
|
||||
READ(in_unit) seed
|
||||
CLOSE(in_unit)
|
||||
ELSE
|
||||
! Fallback to stupid algorithm. Actually we do not really need
|
||||
! high-quality random numbers
|
||||
CALL random_seed(get=seed)
|
||||
seed = seed + mpime
|
||||
CALL random_seed(put=seed)
|
||||
END IF
|
||||
!
|
||||
WRITE(fname, '("rnd_seed_",A,I4.4)') TRIM(test_name), mpime
|
||||
fname = TRIM(fname)
|
||||
|
|
Loading…
Reference in New Issue