Opened 9 years ago

Closed 9 years ago

#682 closed defect (Fixed)

Profile Report

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.7
Component: Nonlinear Version: 3.7
Keywords: Cc:

Description (last modified by arango)

The routines wclock_on and wclock_off (timers.F) fail to report the profile timings in distributed-memory applications (MPI). This has been broken for awhile since the OpenMP directives were re-worked (see src:ticket:552). In that update the numthreads was modified in MPI to have the number of distributed nodes:

      CALL mpi_comm_size (OCN_COMM_WORLD, numthreads, MyError)

This affected the logic in wclock_on and wclock_off in MPI applications, which needs numthreads = 1. To correct this problem, both routines were modified to have:

!
!  Set number of subdivisions, same as for global reductions.
!
#ifdef MPI
      NSUB=1
#else
      NSUB=numthreads
#endif

then, we use NSUB instead of numthreads in the conditional statement in wclock_on:

       IF (thread_count.eq.NSUB) thread_count=0

and in wclock_off:

        IF (thread_count.eq.NSUB) THEN
          thread_count=0
          ...
        END IF

I also improved the time profile report in nested grid applications.

Many thanks to Kate Hedstrom for reminding me about this problem.

Change History (1)

comment:1 by arango, 9 years ago

Description: modified (diff)
Reporter: changed from kate to arango
Resolution: Fixed
Status: newclosed
Summary: profile reportProfile Report
Type: bugdefect
Note: See TracTickets for help on using tickets.