Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RODIER Quentin
Méso-NH code
Commits
709ba804
Commit
709ba804
authored
6 years ago
by
WAUTELET Philippe
Browse files
Options
Downloads
Patches
Plain Diff
Philippe 22/03/2019: use MNHREAL64 and MNHREAL64_MPI in mode_mnh_timing + typo corrections
parent
6175af5e
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/MNH/mode_mnh_timing.f90
+33
-34
33 additions, 34 deletions
src/MNH/mode_mnh_timing.f90
with
33 additions
and
34 deletions
src/MNH/mode_mnh_timing.f90
+
33
−
34
View file @
709ba804
...
...
@@ -2,13 +2,15 @@
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
!------------------------------------------------------------------------
MODULE
MODE_MNH_TIMING
!
! Modification :
! J.ESCOBAR 13/11/2008 : change (2) in (:) for bug in IBM-SP6 compiler
! J.Escobar 1/09/2011 : reduce 'timing' format
! J.Escobar 12/02/2013 : tribulle to slow on large BG partition , inhib it by a early return in the code
! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN
! Modifications:
! J. escobar 13/11/2008: change (2) in (:) for bug in IBM-SP6 compiler
! J. Escobar 01/09/2011: reduce 'timing' format
! J. Escobar 12/02/2013: triabulle too slow on large BG partition, inhib it by a early return in the code
! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN
! P. Wautelet 22/03/2019: use MNHREAL64 and MNHREAL64_MPI + typo corrections
!
INTEGER
::
NLUOUT_TIMING
...
...
@@ -53,7 +55,7 @@ END SUBROUTINE SECOND_MNH2
SUBROUTINE
TIMING_LEGEND
()
CALL
TIMING_SEPARATOR
(
'-'
)
WRITE
(
NLUOUT_TIMING
,
FMT
=
"( '| CPUTIM/ELAPSE
|&
WRITE
(
NLUOUT_TIMING
,
FMT
=
"( '| CPUTIM
E
/ELAPSE
D
|&
&| SUM(PROC) |MEAN(PROC)| MIN(PROC | MAX(PROC)| PERCENT %|')"
)
CALL
TIMING_SEPARATOR
(
'-'
)
END
SUBROUTINE
TIMING_LEGEND
...
...
@@ -84,33 +86,30 @@ END SUBROUTINE SECOND_MNH2
!* 0. DECLARATIONS
!
USE
MODD_MPIF
USE
MODD_VAR_ll
,
ONLY
:
MPI_PRECISION
,
NPROC
,
IP
!JUANZ
USE
MODD_VAR_ll
,
ONLY
:
NMNH_COMM_WORLD
!JUANZ
use
modd_precision
,
only
:
MNHREAL64
,
MNHREAL64_MPI
USE
MODD_VAR_ll
,
ONLY
:
IP
,
NMNH_COMM_WORLD
,
NPROC
!
IMPLICIT
NONE
!
!* 0.1 Declarations of dummy arguments :
!
REAL
*
8
,
DIMENSION
(:),
INTENT
(
IN
)
::
PRES
! (1)=CPU & (2)=ELAPSE Proccessors Timing
!
REAL
*
8
,
DIMENSION
(:),
INTENT
(
INOUT
)
::
PSUM
! (1)=SUM(CPU) & (2)=SUM(ELAPSE) Timing
!
CHARACTER
(
len
=*
),
INTENT
(
IN
),
OPTIONAL
::
HPRINT
CHARACTER
,
INTENT
(
IN
),
OPTIONAL
::
HSEP
CHARACTER
(
len
=*
),
INTENT
(
IN
),
OPTIONAL
::
HFULL
REAL
(
kind
=
MNHREAL64
),
DIMENSION
(:),
INTENT
(
IN
)
::
PRES
! (1)=CPU & (2)=ELAPSED Processes Timing
REAL
(
kind
=
MNHREAL64
),
DIMENSION
(:),
INTENT
(
INOUT
)
::
PSUM
! (1)=SUM(CPU) & (2)=SUM(ELAPSED) Timing
CHARACTER
(
len
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
HPRINT
CHARACTER
,
OPTIONAL
,
INTENT
(
IN
)
::
HSEP
CHARACTER
(
len
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
HFULL
!
!* 0.2 Declarations of local variables :
!
INTEGER
,
PARAMETER
::
NSTAT
=
5
REAL
*
8
,
DIMENSION
(
2
,
NSTAT
)
::
ZSTAT
! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Purcent(1)
INTEGER
::
INFO
,
IROOT
,
JP
CHARACTER
(
len
=
30
)
::
VIDE
=
""
CHARACTER
(
len
=
30
)
::
FILE
=
""
CHARACTER
(
len
=
30
)
::
FILE
=
""
INTEGER
::
IC
REAL
*
8
,
DIMENSION
(
2
,
NPROC
)
::
ZSTAT_ALL
REAL
(
kind
=
MNHREAL64
),
DIMENSION
(
2
,
NSTAT
)
::
ZSTAT
! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Percent(1)
REAL
(
kind
=
MNHREAL64
),
DIMENSION
(
2
,
NPROC
)
::
ZSTAT_ALL
INTEGER
,
DIMENSION
(
NPROC
)
::
IND
INTEGER
::
ILU
!
...
...
@@ -120,15 +119,15 @@ END SUBROUTINE SECOND_MNH2
! ------------------------------
INFO
=
-1
! 1.1 Sum(Proc)
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
1
),
2
,
M
PI_
REAL
8
,
&
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
1
),
2
,
M
NH
REAL
64_MPI
,
&
MPI_SUM
,
NMNH_COMM_WORLD
,
INFO
)
! 1.2 Sum/Proc
ZSTAT
(:,
2
)
=
ZSTAT
(:,
1
)
/
NPROC
! 1.3 Min(Proc)
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
3
),
2
,
M
PI_
REAL
8
,
&
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
3
),
2
,
M
NH
REAL
64_MPI
,
&
MPI_MIN
,
NMNH_COMM_WORLD
,
INFO
)
! 1.4 Max(Proc)
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
4
),
2
,
M
PI_
REAL
8
,
&
CALL
MPI_ALLREDUCE
(
PRES
,
ZSTAT
(:,
4
),
2
,
M
NH
REAL
64_MPI
,
&
MPI_MAX
,
NMNH_COMM_WORLD
,
INFO
)
...
...
@@ -138,8 +137,8 @@ INFO = -1
!
ELSEIF
(
ZSTAT
(
1
,
1
)
>
0.0
)
THEN
! use Psum , for print stat & p
ou
rcent
! P
u
rcent
! use Psum , for print stat & p
e
rcent
! P
e
rcent
WHERE
(
PSUM
/
=
0.0
)
ZSTAT
(:,
5
)
=
100.0
*
ZSTAT
(:,
1
)
/
PSUM
(:)
ELSEWHERE
...
...
@@ -148,14 +147,14 @@ INFO = -1
! print stat
!
IF
(
PRESENT
(
HSEP
))
CALL
TIMING_SEPARATOR
(
HSEP
)
WRITE
(
NLUOUT_TIMING
,
FMT
=
"('|',A
30
,'| CPUTIM ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')"
)
HPRINT
//
VIDE
,
ZSTAT
(
1
,:)
WRITE
(
NLUOUT_TIMING
,
FMT
=
"('|',A
30
,'| ELAPSE ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')"
)
HPRINT
//
VIDE
,
ZSTAT
(
2
,:)
WRITE
(
NLUOUT_TIMING
,
FMT
=
"('|',A
29
,'| CPUTIM
E
||',F15.3,'|',4(F10.3,'|'),F7.3,'|')"
)
HPRINT
//
VIDE
,
ZSTAT
(
1
,:)
WRITE
(
NLUOUT_TIMING
,
FMT
=
"('|',A
29
,'| ELAPSE
D
||',F15.3,'|',4(F10.3,'|'),F7.3,'|')"
)
HPRINT
//
VIDE
,
ZSTAT
(
2
,:)
IF
(
PRESENT
(
HFULL
))
THEN
! gather all data
!CALL TIMING_SEPARATOR(HSEP)
IROOT
=
0
CALL
MPI_GATHER
(
PRES
(:),
2
,
M
PI_
REAL
8
,
ZSTAT_ALL
(:,
1
),
2
,
M
PI_
REAL
8
,&
CALL
MPI_GATHER
(
PRES
(:),
2
,
M
NH
REAL
64_MPI
,
ZSTAT_ALL
(:,
1
),
2
,
M
NH
REAL
64_MPI
,&
IROOT
,
NMNH_COMM_WORLD
,
INFO
)
IF
(
IP
.EQ.
1
)
THEN
FILE
=
trim
(
adjustl
(
HPRINT
))
...
...
@@ -188,17 +187,17 @@ INFO = -1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine
triabulle
(
vec
,
ind
)
implicit
none
real
*
8
,
intent
(
inout
)
::
vec
(:)
integer
,
intent
(
out
)
::
ind
(:)
use
modd_precision
,
only
:
MNHREAL64
implicit
none
integer
::
n
real
(
kind
=
MNHREAL64
),
dimension
(:),
intent
(
inout
)
::
vec
integer
,
dimension
(:),
intent
(
out
)
::
ind
logical
::
a
integer
::
i
integer
::
mem
integer
::
n
n
=
size
(
vec
)
a
=
.true.
...
...
@@ -207,7 +206,7 @@ do i=1,n
enddo
return
!JUAN TO SLOW ON BG !!!
!JUAN TO
O
SLOW ON BG !!!
do
while
(
a
)
a
=
.false.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment