Code beautification with uncrustify
[alexxy/gromacs.git] / src / gromacs / gmxlib / thread_mpi / profile.c
index be5920012b68be7c9ff0f4ecaaeb5282046fdeb2..a7de36be2c10a5d059f5c8bc19b519ca8574880f 100644 (file)
@@ -1,39 +1,39 @@
 /*
-This source code file is part of thread_mpi.  
-Written by Sander Pronk, Erik Lindahl, and possibly others. 
+   This source code file is part of thread_mpi.
+   Written by Sander Pronk, Erik Lindahl, and possibly others.
 
-Copyright (c) 2009, Sander Pronk, Erik Lindahl.
-All rights reserved.
+   Copyright (c) 2009, Sander Pronk, Erik Lindahl.
+   All rights reserved.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-1) Redistributions of source code must retain the above copyright
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+   1) Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
-2) Redistributions in binary form must reproduce the above copyright
+   2) Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
-3) Neither the name of the copyright holders nor the
+   3) Neither the name of the copyright holders nor the
    names of its contributors may be used to endorse or promote products
    derived from this software without specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED BY US ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL WE BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-If you want to redistribute modifications, please consider that
-scientific software is very special. Version control is crucial -
-bugs must be traceable. We will be happy to consider code for
-inclusion in the official distribution, but derived work should not
-be called official thread_mpi. Details are found in the README & COPYING
-files.
-*/
+   THIS SOFTWARE IS PROVIDED BY US ''AS IS'' AND ANY
+   EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+   DISCLAIMED. IN NO EVENT SHALL WE BE LIABLE FOR ANY
+   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   If you want to redistribute modifications, please consider that
+   scientific software is very special. Version control is crucial -
+   bugs must be traceable. We will be happy to consider code for
+   inclusion in the official distribution, but derived work should not
+   be called official thread_mpi. Details are found in the README & COPYING
+   files.
+ */
 
 
 /* the profiling functions */
@@ -54,7 +54,7 @@ files.
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#if ! (defined( _WIN32 ) || defined( _WIN64 ) )
+#if !(defined( _WIN32 ) || defined( _WIN64 ) )
 #include <sys/time.h>
 #else
 /* windows doesn't do standard C */
@@ -68,11 +68,11 @@ files.
 #include <stdarg.h>
 #endif
 
-int tMPI_Profile_started=0;
+int tMPI_Profile_started = 0;
 
 
 /* this must match the tmpi_functions enum: */
-const char *tmpi_function_names[] = 
+const char *tmpi_function_names[] =
 {
     "Send",
     "Recv",
@@ -104,7 +104,7 @@ const char *tmpi_function_names[] =
 
 
 /* this must match the tmpi_wait_functions enum: */
-const char *tmpi_waitfn_names[] = 
+const char *tmpi_waitfn_names[] =
 {
     "P2p",
     "P2p signal",
@@ -125,29 +125,29 @@ void tMPI_Profile_init(struct tmpi_profile *prof)
     int i;
 
     /* reset counters */
-    for(i=0;i<TMPIFN_Nfunctions;i++)
+    for (i = 0; i < TMPIFN_Nfunctions; i++)
     {
-        prof->mpifn_calls[i]=0;
+        prof->mpifn_calls[i] = 0;
     }
 #ifdef TMPI_CYCLE_COUNT
-    for(i=0;i<TMPIFN_Nfunctions;i++)
+    for (i = 0; i < TMPIFN_Nfunctions; i++)
     {
-        prof->mpifn_cycles[i]=0;
+        prof->mpifn_cycles[i] = 0;
     }
-    for(i=0;i<TMPIWAIT_N;i++)
+    for (i = 0; i < TMPIWAIT_N; i++)
     {
-        prof->wait_cycles[i]=0;
+        prof->wait_cycles[i] = 0;
     }
-    prof->global_start=tmpi_cycles_read();
-    prof->global_stop=0;
-    prof->wait_start=0;
+    prof->global_start = tmpi_cycles_read();
+    prof->global_stop  = 0;
+    prof->wait_start   = 0;
 #endif
 
-    prof->buffered_p2p_xfers=0;
-    prof->buffered_coll_xfers=0;
-    prof->total_p2p_xfers=0;
-    prof->total_coll_xfers=0;
-    tMPI_Profile_started=1;
+    prof->buffered_p2p_xfers  = 0;
+    prof->buffered_coll_xfers = 0;
+    prof->total_p2p_xfers     = 0;
+    prof->total_coll_xfers    = 0;
+    tMPI_Profile_started      = 1;
 }
 
 
@@ -162,42 +162,44 @@ void tMPI_Profile_destroy(struct tmpi_profile *prof)
 void tMPI_Profile_stop(struct tmpi_profile *prof)
 {
 #ifdef TMPI_CYCLE_COUNT
-    prof->global_stop=tmpi_cycles_read();
+    prof->global_stop = tmpi_cycles_read();
 #endif
-    tMPI_Profile_started=0;
+    tMPI_Profile_started = 0;
 }
 
 /* output functions */
 void tMPI_Profiles_summarize(int Nthreads, struct tmpi_thread *threads)
 {
-    int i,j,len=0;
+    int i, j, len = 0;
 
     printf("\nTMPI PROFILE:\n");
     printf("%11s", " ");
-    len+=11;
-    for(j=0;j<Nthreads;j++)
+    len += 11;
+    for (j = 0; j < Nthreads; j++)
     {
         char thrn[128];
         snprintf(thrn, sizeof(thrn), "Thread %d", j);
         printf(" %10s", thrn);
-        len+=11;
+        len += 11;
     }
     printf(" %10s\n", "Total");
-    len+=11;
+    len += 11;
 
     /* print line */
-    for(i=0;i<len;i++)
+    for (i = 0; i < len; i++)
+    {
         printf("-");
+    }
     printf("\n");
 
-    for(i=0;i<TMPIFN_Nfunctions;i++)
+    for (i = 0; i < TMPIFN_Nfunctions; i++)
     {
-        long unsigned int total=0;
+        long unsigned int total = 0;
 
         printf("%11s", tmpi_function_names[i]);
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            long unsigned int count=threads[j].profile.mpifn_calls[i];
+            long unsigned int count = threads[j].profile.mpifn_calls[i];
 
             total += count;
             printf(" %10ld", (long)count);
@@ -207,31 +209,31 @@ void tMPI_Profiles_summarize(int Nthreads, struct tmpi_thread *threads)
 
     printf("\nFraction of buffered transfers:\n");
     {
-        long unsigned int tot_buf=0;
-        long unsigned int tot_count=0;
+        long unsigned int tot_buf   = 0;
+        long unsigned int tot_count = 0;
         printf("%11s", "P2p");
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            long unsigned int buf=threads[j].profile.buffered_p2p_xfers;
-            long unsigned int count=threads[j].profile.total_p2p_xfers;
+            long unsigned int buf   = threads[j].profile.buffered_p2p_xfers;
+            long unsigned int count = threads[j].profile.total_p2p_xfers;
 
-            tot_buf+=buf;
-            tot_count+=count;
+            tot_buf   += buf;
+            tot_count += count;
 
             printf(" %10.5f", (double)buf/(double)count);
         }
         printf(" %10.5f\n", (double)tot_buf/(double)tot_count);
 
-        tot_buf=0;
-        tot_count=0;
+        tot_buf   = 0;
+        tot_count = 0;
         printf("%11s", "Collective");
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            long unsigned int buf=threads[j].profile.buffered_coll_xfers;
-            long unsigned int count=threads[j].profile.total_coll_xfers;
+            long unsigned int buf   = threads[j].profile.buffered_coll_xfers;
+            long unsigned int count = threads[j].profile.total_coll_xfers;
 
-            tot_buf+=buf;
-            tot_count+=count;
+            tot_buf   += buf;
+            tot_count += count;
 
             printf(" %10.5f", (double)buf/(double)count);
         }
@@ -241,62 +243,66 @@ void tMPI_Profiles_summarize(int Nthreads, struct tmpi_thread *threads)
 
 #ifdef TMPI_CYCLE_COUNT
     printf("\nCall times as fraction of total run time:\n");
-    for(j=0;j<Nthreads;j++)
-        threads[j].profile.totals=0.;
-    for(i=0;i<TMPIFN_Nfunctions;i++)
+    for (j = 0; j < Nthreads; j++)
+    {
+        threads[j].profile.totals = 0.;
+    }
+    for (i = 0; i < TMPIFN_Nfunctions; i++)
     {
-        double tot_time=0.;
-        double tot_diff=0.;
+        double tot_time = 0.;
+        double tot_diff = 0.;
 
         printf("%11s", tmpi_function_names[i]);
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            double time=(double)(threads[j].profile.global_stop - 
-                                 threads[j].profile.global_start );
-            double diff=((double)threads[j].profile.mpifn_cycles[i]);
-            tot_time += time;
-            tot_diff += diff;
+            double time = (double)(threads[j].profile.global_stop -
+                                   threads[j].profile.global_start );
+            double diff = ((double)threads[j].profile.mpifn_cycles[i]);
+            tot_time                  += time;
+            tot_diff                  += diff;
             threads[j].profile.totals += diff;
             printf(" %10.5f", diff/time);
         }
         printf(" %10.5f\n", tot_diff/tot_time);
     }
     {
-        double tot_time=0.;
-        double tot_diff=0.;
+        double tot_time = 0.;
+        double tot_diff = 0.;
 
         printf("%11s", "Total");
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            double time=(double)(threads[j].profile.global_stop - 
-                                 threads[j].profile.global_start );
-            double diff=threads[j].profile.totals;
+            double time = (double)(threads[j].profile.global_stop -
+                                   threads[j].profile.global_start );
+            double diff = threads[j].profile.totals;
 
             tot_time += time;
             tot_diff += diff;
             printf(" %10.5f", diff/time );
-        } 
+        }
         printf(" %10.5f\n", tot_diff/tot_time);
     }
 
 
     printf("\nWait times as fraction of total run time:\n");
-    for(j=0;j<Nthreads;j++)
-        threads[j].profile.totals=0.;
+    for (j = 0; j < Nthreads; j++)
+    {
+        threads[j].profile.totals = 0.;
+    }
 
-    for(i=0;i<TMPIWAIT_N;i++)
+    for (i = 0; i < TMPIWAIT_N; i++)
     {
-        double tot_time=0.;
-        double tot_diff=0.;
+        double tot_time = 0.;
+        double tot_diff = 0.;
 
         printf("%11s", tmpi_waitfn_names[i]);
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            double time=(double)(threads[j].profile.global_stop - 
-                                 threads[j].profile.global_start );
-            double diff=((double)threads[j].profile.wait_cycles[i]);
-            tot_time += time;
-            tot_diff += diff;
+            double time = (double)(threads[j].profile.global_stop -
+                                   threads[j].profile.global_start );
+            double diff = ((double)threads[j].profile.wait_cycles[i]);
+            tot_time                  += time;
+            tot_diff                  += diff;
             threads[j].profile.totals += diff;
             printf(" %10.5f", diff/time);
         }
@@ -304,32 +310,34 @@ void tMPI_Profiles_summarize(int Nthreads, struct tmpi_thread *threads)
     }
 
     {
-        double tot_time=0.;
-        double tot_diff=0.;
+        double tot_time = 0.;
+        double tot_diff = 0.;
 
         printf("%11s", "Total");
-        for(j=0;j<Nthreads;j++)
+        for (j = 0; j < Nthreads; j++)
         {
-            double time=(double)(threads[j].profile.global_stop - 
-                                 threads[j].profile.global_start );
-            double diff=threads[j].profile.totals;
+            double time = (double)(threads[j].profile.global_stop -
+                                   threads[j].profile.global_start );
+            double diff = threads[j].profile.totals;
 
             tot_time += time;
             tot_diff += diff;
             printf(" %10.5f", diff/time );
-        } 
+        }
         printf(" %10.5f\n", tot_diff/tot_time);
     }
 #endif
     /* print line */
-    for(i=0;i<len;i++)
+    for (i = 0; i < len; i++)
+    {
         printf("-");
+    }
     printf("\n");
 
     /* here we make use of the fact that this is how we calculate tMPI_Wtime */
     {
-        double wt=tMPI_Wtime();
-        double wtck=tMPI_Wtick();
+        double wt   = tMPI_Wtime();
+        double wtck = tMPI_Wtick();
         printf("\nTotal run time: %g +/- %g s.\n", wt, wtck);
     }