Removing assert statement that caused strategies only to work with 1d chare arrays.
[charm.git] / src / ck-com / ComlibStats.C
1 /**
2    @addtogroup CharmComlib
3    @{
4    @file
5 */
6
7 #include "ComlibStats.h"
8 #include "ComlibManager.h"
9
10 ComlibGlobalStats::ComlibGlobalStats() {
11     statsArr = new ComlibLocalStats[CkNumPes()];
12 }
13
14 void ComlibGlobalStats::updateStats(ComlibLocalStats &stats, int p) {
15     statsArr[p] = stats;
16 }
17
18 void ComlibGlobalStats::getAverageStats(int sid, double &avMsgSize, 
19                                         double &avNumMessages, 
20                                         double &avDegree,
21                                         double &npes) {
22
23     double bytes = 0, messages = 0, degree = 0;
24     npes = avNumMessages = avMsgSize = avDegree = 0.0;
25
26     for(int count = 0; count < CkNumPes(); count ++) {
27         if(statsArr[count].cdata[sid].isRecorded()) {
28             npes ++;
29             //count send and received
30             bytes += statsArr[count].cdata[sid].getTotalBytes();
31             //count send and received
32             messages += statsArr[count].cdata[sid].getTotalMessages();
33             degree += statsArr[count].cdata[sid].getDegree();
34         }
35     }
36
37     if(npes > 0.0 && messages > 0.0) {
38         avNumMessages = messages/npes;
39         avMsgSize = bytes/ (npes * avNumMessages);
40         avDegree =  degree/npes;
41     }
42 }
43
44
45 /*@}*/