21 #include "sion_error_handler.h" 26 #define DFUNCTION "_sion_create_and_init_collstat" 32 if (collstat == NULL) {
33 _sion_errorprint(SION_NOT_SUCCESS,_SION_ERROR_RETURN,
"cannot allocate collstat structure of size %lu (sion_collstat), aborting ...\n",
38 collstat->req_collsize=sion_filedesc->
collsize;
39 collstat->firstsize=0;
41 collstat->avg_size_per_sender=0;
42 collstat->max_size_per_sender=0;
43 collstat->min_size_per_sender=1e10;
45 collstat->num_collectors=0;
46 collstat->avg_sender_per_collector=0;
47 collstat->max_sender_per_collector=0;
48 collstat->min_sender_per_collector=10000000;
49 collstat->avg_size_per_collector=0;
50 collstat->max_size_per_collector=0;
51 collstat->min_size_per_collector=1e10;
56 for (t = 0; t < sion_filedesc->
ntasks; t++) {
61 if(sion_filedesc->
ntasks>0) collstat->avg_size_per_sender = (double) collstat->gsize / (
double) sion_filedesc->
ntasks;
63 DPRINTFP((2, DFUNCTION, _SION_DEFAULT_RANK,
"gsize=%ld\n", (
long) collstat->gsize));
70 #define DFUNCTION "_sion_update_collstat" 72 int rc = SION_SUCCESS;
74 sion_int64 currentsize;
78 for (t = 0; t < sion_filedesc->
ntasks; t++) {
90 collstat->num_collectors++;
91 collstat->avg_size_per_collector+=currentsize;
92 if(currentsize>collstat->max_size_per_collector) collstat->max_size_per_collector=currentsize;
93 if(currentsize<collstat->min_size_per_collector) collstat->min_size_per_collector=currentsize;
99 if(collstat->num_collectors>0) collstat->avg_size_per_collector/=collstat->num_collectors;
106 #define DFUNCTION "_sion_print_collstat" 108 int rc = SION_SUCCESS;
111 fprintf(stderr,
"collective statistics: req_collsize=%11d\n", collstat->req_collsize);
112 fprintf(stderr,
"collective statistics: req_num_collectors=%11d\n", collstat->req_num_collectors);
113 fprintf(stderr,
"collective statistics: num_collectors=%11d\n", collstat->num_collectors);
114 fprintf(stderr,
"collective statistics: avg_sender_per_collector=%14.2f\n", collstat->avg_sender_per_collector);
115 fprintf(stderr,
"collective statistics: min_sender_per_collector=%11d\n", collstat->min_sender_per_collector);
116 fprintf(stderr,
"collective statistics: max_sender_per_collector=%11d\n", collstat->max_sender_per_collector);
118 fprintf(stderr,
"collective statistics: avg_size_per_collector=%14.2f bytes\n", collstat->avg_size_per_collector);
119 fprintf(stderr,
"collective statistics: min_size_per_collector=%11lld bytes\n", collstat->min_size_per_collector);
120 fprintf(stderr,
"collective statistics: max_size_per_collector=%11lld bytes\n", collstat->max_size_per_collector);
122 fprintf(stderr,
"collective statistics: avg_size_per_sender=%14.2f bytes\n", collstat->avg_size_per_sender);
123 fprintf(stderr,
"collective statistics: min_size_per_sender=%11lld bytes\n", collstat->min_size_per_sender);
124 fprintf(stderr,
"collective statistics: max_size_per_sender=%11lld bytes\n", collstat->max_size_per_sender);
127 for (t = 0; t < sion_filedesc->
ntasks; t++) {
131 fprintf(stderr,
"collective statistics: startpointers[%2d]=%10lld (%10.4fMB) chunksizes[%2d]=%8lld COLLECTOR collsize=%3d\n",
137 fprintf(stderr,
"collective statistics: startpointers[%2d]=%10lld (%10.4fMB) chunksizes[%2d]=%8lld SENDER to %3d\n",
149 #define DFUNCTION "_sion_debugprint_collstat" 151 int rc = SION_SUCCESS;
155 DPRINTFP((2, DFUNCTION, _SION_DEFAULT_RANK,
" enter\n"));
157 for (t = 0; t < sion_filedesc->
ntasks; t++) {
160 DPRINTFP((2048, DFUNCTION, _SION_DEFAULT_RANK,
" startpointers[%2d]=%10lld (%10.4fMB) chunksizes[%2d]=%8lld COLLECTOR collsize=%3d\n",
166 DPRINTFP((2048, DFUNCTION, _SION_DEFAULT_RANK,
" startpointers[%2d]=%10lld (%10.4fMB) chunksizes[%2d]=%8lld SENDER to %3d\n",
173 DPRINTFP((2, DFUNCTION, _SION_DEFAULT_RANK,
" leave\n",t));
178 #define DFUNCTION "_sion_dprint_collstat" 180 int rc = SION_SUCCESS;
Sion File Descriptor Structure.
sion_int32 * all_coll_collector
sion_int64 * all_startpointers
sion_int64 * all_chunksizes
sion_int32 * all_coll_collsize