Skip to content

Commit 30ee2ca

Browse files
committed
add 2 more timers for init and finalize
1 parent db2a121 commit 30ee2ca

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/e3sm_io.c

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ static void usage (char *argv0) {
205205
/*----< main() >-------------------------------------------------------------*/
206206
int main (int argc, char **argv) {
207207
int i, err, nrecs=1, ffreq;
208-
double timing[3], max_t[3];
208+
double timing[5], max_t[5];
209209
e3sm_io_config cfg;
210210
e3sm_io_decom decom;
211211

@@ -561,8 +561,9 @@ int main (int argc, char **argv) {
561561
PRINT_MSG (1, "Input data file/folder name = %s\n", cfg.in_path);
562562
PRINT_MSG (1, "Output data file/folder name = %s\n", cfg.out_path);
563563

564+
timing[1] = MPI_Wtime() - timing[0];
564565
MPI_Barrier(MPI_COMM_WORLD);
565-
timing[1] = MPI_Wtime();
566+
timing[2] = MPI_Wtime();
566567

567568
/* read request information from decomposition file */
568569
err = read_decomp(&cfg, &decom);
@@ -581,9 +582,9 @@ int main (int argc, char **argv) {
581582
else
582583
cfg.run_case = unknown;
583584

584-
timing[1] = MPI_Wtime() - timing[1];
585+
timing[2] = MPI_Wtime() - timing[2];
585586
MPI_Barrier(MPI_COMM_WORLD);
586-
timing[2] = MPI_Wtime();
587+
timing[3] = MPI_Wtime();
587588

588589
/* set MPI-IO and PnetCDF hints */
589590
err = MPI_Info_create (&(cfg.info));
@@ -595,7 +596,9 @@ int main (int argc, char **argv) {
595596
err = e3sm_io_core (&cfg, &decom);
596597
CHECK_ERR
597598

598-
timing[2] = MPI_Wtime() - timing[2];
599+
timing[3] = MPI_Wtime() - timing[3];
600+
MPI_Barrier(MPI_COMM_WORLD);
601+
timing[4] = MPI_Wtime();
599602

600603
/* report timing breakdowns */
601604
if (cfg.rd) {
@@ -605,15 +608,6 @@ int main (int argc, char **argv) {
605608
report_timing_WR(&cfg, &decom);
606609
}
607610

608-
timing[0] = MPI_Wtime() - timing[0];
609-
MPI_Reduce(timing, max_t, 3, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
610-
if (cfg.rank == 0) {
611-
printf("read_decomp=%.2f e3sm_io_core=%.2f MPI init-to-finalize=%.2f\n",
612-
max_t[1],max_t[2],max_t[0]);
613-
printf("-----------------------------------------------------------\n");
614-
printf("\n\n");
615-
}
616-
617611
#ifdef E3SM_IO_PROFILING
618612
if (cfg.profiling) e3sm_io_print_profile(&cfg);
619613
#else
@@ -640,6 +634,16 @@ int main (int argc, char **argv) {
640634
}
641635
}
642636

637+
timing[4] = MPI_Wtime() - timing[4];
638+
timing[0] = MPI_Wtime() - timing[0];
639+
MPI_Reduce(timing, max_t, 5, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
640+
if (cfg.rank == 0) {
641+
printf("init=%.2f read_decomp=%.2f e3sm_io_core=%.2f final=%.2f end-to-end=%.2f\n",
642+
max_t[1],max_t[2],max_t[3],max_t[4],max_t[0]);
643+
printf("-----------------------------------------------------------\n");
644+
printf("\n\n");
645+
}
646+
643647
MPI_Finalize ();
644648

645649
return (err < 0) ? 1 : 0;

0 commit comments

Comments
 (0)