File indexing completed on 2018-03-02 18:36:07 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
048ce7bdb7 Chri*0001 #include "CPP_EEOPTIONS.h"
0002
4c563c2ee9 Chri*0003
0004
0005
0006
048ce7bdb7 Chri*0007 SUBROUTINE COMM_STATS
0008 IMPLICIT NONE
0009
4c563c2ee9 Chri*0010
0011
2b4c849245 Ed H*0012
4c563c2ee9 Chri*0013
0014
0015
0016
048ce7bdb7 Chri*0017
0018 #include "SIZE.h"
0019 #include "EEPARAMS.h"
0020 #include "EESUPPORT.h"
0021 #include "EXCH.h"
0022 #include "BAR2.h"
0023
4c563c2ee9 Chri*0024
048ce7bdb7 Chri*0025
4c563c2ee9 Chri*0026
0027
048ce7bdb7 Chri*0028 INTEGER bi, bj, I
0029 CHARACTER*(MAX_LEN_MBUF) msgBuf
4c563c2ee9 Chri*0030
048ce7bdb7 Chri*0031
0032
0033 WRITE(msgBuf,'(A)')
0034 & '// ======================================================'
0035 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0036 & SQUEEZE_RIGHT , 1)
0037 WRITE(msgBuf,'(A)') '// Tile <-> Tile communication statistics'
0038 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0039 & SQUEEZE_RIGHT , 1)
0040 WRITE(msgBuf,'(A)')
0041 & '// ======================================================'
0042 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0043 & SQUEEZE_RIGHT , 1)
0044
0045 IF ( exchCollectStatistics ) THEN
0046 DO bj=1,nSy
0047 DO bi=1,nSx
0048 WRITE(msgBuf,'(A,A,I6.6)')
0049 & '//',' o Tile number: ',tileNo(bi,bj)
0050 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0051 & SQUEEZE_RIGHT , 1)
0052
0053 WRITE(msgBuf,'(A,A,I15)')
0054 & '//',' No. X exchanges =',exchRecvXExchCount(1,bi,bj)
0055 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0056 & SQUEEZE_RIGHT , 1)
0057 WRITE(msgBuf,'(A,A,I15)')
0058 & '//',' Max. X spins =',exchRecvXSpinMax (1,bi,bj)
0059 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0060 & SQUEEZE_RIGHT , 1)
0061 WRITE(msgBuf,'(A,A,I15)')
0062 & '//',' Min. X spins =',exchRecvXSpinMin (1,bi,bj)
0063 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0064 & SQUEEZE_RIGHT , 1)
0065 WRITE(msgBuf,'(A,A,I15)')
0066 & '//',' Total. X spins =',exchRecvXSpinCount(1,bi,bj)
0067 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0068 & SQUEEZE_RIGHT , 1)
0069 IF ( FLOAT(exchRecvXExchCount(1,bi,bj)) .NE. 0. ) THEN
0070 WRITE(msgBuf,'(A,A,1PE15.2)')
0071 & '//',' Avg. X spins =',
46dc4f419b Chri*0072 & FLOAT(exchRecvXSpinCount(1,bi,bj))/
0073 & FLOAT(exchRecvXExchCount(1,bi,bj))
048ce7bdb7 Chri*0074 ELSE
0075 WRITE(msgBuf,'(A,A,1PE15.2)')
0076 & '//',' Avg. X spins =',
0077 & 0.
0078 ENDIF
0079 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0080 & SQUEEZE_RIGHT , 1)
0081
0082 WRITE(msgBuf,'(A,A,I15)')
0083 & '//',' No. Y exchanges =',exchRecvYExchCount(1,bi,bj)
0084 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0085 & SQUEEZE_RIGHT , 1)
0086 WRITE(msgBuf,'(A,A,I15)')
0087 & '//',' Max. Y spins =',exchRecvYSpinMax (1,bi,bj)
0088 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0089 & SQUEEZE_RIGHT , 1)
0090 WRITE(msgBuf,'(A,A,I15)')
0091 & '//',' Min. Y spins =',exchRecvYSpinMin (1,bi,bj)
0092 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0093 & SQUEEZE_RIGHT , 1)
0094 WRITE(msgBuf,'(A,A,I15)')
0095 & '//',' Total. Y spins =',exchRecvYSpinCount(1,bi,bj)
0096 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0097 & SQUEEZE_RIGHT , 1)
0098 IF ( FLOAT(exchRecvYExchCount(1,bi,bj)) .NE. 0. ) THEN
0099 WRITE(msgBuf,'(A,A,1PE15.2)')
0100 & '//',' Avg. Y spins =',
46dc4f419b Chri*0101 & FLOAT(exchRecvYSpinCount(1,bi,bj))/
0102 & FLOAT(exchRecvYExchCount(1,bi,bj))
048ce7bdb7 Chri*0103 ELSE
0104 WRITE(msgBuf,'(A,A,1PE15.2)')
0105 & '//',' Avg. Y spins =',
0106 & 0.
0107 ENDIF
0108 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0109 & SQUEEZE_RIGHT , 1)
0110
0111 ENDDO
0112 ENDDO
0113 ENDIF
0114
0115 IF ( bar2CollectStatistics ) THEN
0116 DO I=1,nThreads
0117 WRITE(msgBuf,'(A,A,I6.6)')
0118 & '//',' o Thread number: ',I
0119 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0120 & SQUEEZE_RIGHT , 1)
0121 WRITE(msgBuf,'(A,A,I15)')
0122 & '//',' No. barriers =',BAR2_barrierCount(1,I)
0123 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0124 & SQUEEZE_RIGHT , 1)
0125 WRITE(msgBuf,'(A,A,I15)')
0126 & '//',' Max. barrier spins =',BAR2_spinsMax(1,I)
0127 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0128 & SQUEEZE_RIGHT , 1)
0129 WRITE(msgBuf,'(A,A,I15)')
0130 & '//',' Min. barrier spins =',BAR2_spinsMin(1,I)
0131 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0132 & SQUEEZE_RIGHT , 1)
0133 WRITE(msgBuf,'(A,A,I15)')
0134 & '//',' Total barrier spins =',BAR2_spinsCount(1,I)
0135 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0136 & SQUEEZE_RIGHT , 1)
0137 IF ( FLOAT(BAR2_spinsCount(1,I)) .NE. 0. ) THEN
0138 WRITE(msgBuf,'(A,A,1PE15.2)')
0139 & '//',' Avg. barrier spins =',
0140 & FLOAT(BAR2_spinsCount(1,I))/FLOAT(BAR2_barrierCount(1,I))
0141 ELSE
0142 WRITE(msgBuf,'(A,A,1PE15.2)')
0143 & '//',' Avg. barrier spins =',
0144 & 0.
0145 ENDIF
0146 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0147 & SQUEEZE_RIGHT , 1)
0148 ENDDO
0149 ENDIF
0150
0151
0152 RETURN
0153 END
0154