/[MITgcm]/MITgcm/pkg/showflops/showflops_insolve.F
ViewVC logotype

Annotation of /MITgcm/pkg/showflops/showflops_insolve.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Tue Jul 31 22:33:43 2007 UTC (16 years, 10 months ago) by ce107
Branch: MAIN
CVS Tags: checkpoint59g, checkpoint59f
Changes since 1.1: +4 -4 lines
Removed extraneous defines that broke the package and increased the width
of print modifiers to cover performance exceeding 1Gflop/s.

1 ce107 1.2 2222222222C $Header: /u/gcmpack/MITgcm/pkg/showflops/showflops_insolve.F,v 1.1 2007/06/01 16:41:12 heimbach Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6    
7     CBOP
8     C !ROUTINE: SHOWFLOPS_INSOLVE
9     C !INTERFACE:
10     SUBROUTINE SHOWFLOPS_INSOLVE( myThid )
11    
12     C !DESCRIPTION: \bv
13     C *================================================================*
14     C | SUBROUTINE showflops_insolve
15     C | o Do runtime timing
16     C *================================================================*
17     C \ev
18    
19     C !USES:
20     IMPLICIT NONE
21     C == Global variables ==
22     #include "SIZE.h"
23     #include "EEPARAMS.h"
24     #include "PARAMS.h"
25     #include "SHOWFLOPS.h"
26    
27     C !INPUT/OUTPUT PARAMETERS:
28     C == Routine arguments ==
29     C note: under the multi-threaded model myiter and
30     C mytime are local variables passed around as routine
31     C arguments. Although this is fiddly it saves the need to
32     C impose additional synchronisation points when they are
33     C updated.
34     C myThid - thread number for this instance of the routine.
35     integer iloop
36     INTEGER myThid
37    
38     C !FUNCTIONS:
39     C == Functions ==
40     #ifdef ALLOW_RUNCLOCK
41     LOGICAL RUNCLOCK_CONTINUE
42     LOGICAL RC_CONT
43     #endif
44    
45     C !LOCAL VARIABLES:
46     C == Local variables ==
47    
48     CEOP
49    
50     #ifdef ALLOW_DEBUG
51     IF (debugMode) CALL DEBUG_ENTER('SHOWFLOPS_INSOLVE',myThid)
52     #endif
53    
54     #ifdef TIME_PER_TIMESTEP_SFP
55     CCE107 Time per timestep information
56     _BEGIN_MASTER( myThid )
57     CALL TIMER_GET_TIME( utnew, stnew, wtnew )
58     C Only output timing information after the 1st timestep
59     IF ( wtold .NE. 0.0D0 ) THEN
60     WRITE(msgBuf,'(A34,3F10.6)')
61     $ 'User, system and wallclock time:', utnew - utold,
62     $ stnew - stold, wtnew - wtold
63     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
64     ENDIF
65     utold = utnew
66     stold = stnew
67     wtold = wtnew
68     _END_MASTER( myThid )
69     #endif
70     #ifdef USE_PAPI_FLOPS_SFP
71     CCE107 PAPI summary performance
72     _BEGIN_MASTER( myThid )
73     #ifdef USE_FLIPS
74     call PAPIF_flips(real_time, proc_time, flpops, mflops, check)
75     #else
76     call PAPIF_flops(real_time, proc_time, flpops, mflops, check)
77     #endif
78 ce107 1.2 WRITE(msgBuf,'(A34,F12.6,A,F12.6)')
79 heimbach 1.1 $ 'Mflop/s during this timestep:', mflops, ' ', mflops
80     $ *proc_time/(real_time + 1E-36)
81     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
82     #ifdef PAPI_VERSION
83     call PAPIF_ipc(real_time, proc_time, instr, ipc, check)
84 ce107 1.2 WRITE(msgBuf,'(A34,F12.6,A,F12.6)')
85 heimbach 1.1 $ 'IPC during this timestep:', ipc, ' ', ipc*proc_time
86     $ /(real_time + 1E-36)
87     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
88     #endif
89     _END_MASTER( myThid )
90     #else
91     #ifdef USE_PCL_FLOPS_SFP
92     CCE107 PCL summary performance
93     _BEGIN_MASTER( myThid )
94     PCLstop(descr, i_result, fp_result, nevents)
95     do ipcl = 1, nevents
96 ce107 1.2 WRITE(msgBuf,'(A22,A26,F12.6)'),
97 heimbach 1.1 $ pcl_counter_name(pcl_counter_list(ipcl)),
98     $ 'during this timestep:', fp_results(ipcl)
99     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
100     enddo
101     PCLstart(descr, pcl_counter_list, nevents, flags)
102     _END_MASTER( myThid )
103     #endif
104     #endif
105    
106     #ifdef ALLOW_DEBUG
107     IF (debugMode) CALL DEBUG_LEAVE('SHOWFLOPS_INSOLVE',myThid)
108     #endif
109    
110     END
111    

  ViewVC Help
Powered by ViewVC 1.1.22