Index: src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -395,5 +395,8 @@
     // we don't want to print grid to a table
     // print times (without flops for now)
-    typedef boost::mpl::remove<MPQCDataTimeVector_t, MPQCDataFused::times_flops>::type MPQCDataTimeVector_noflops_t;
+    typedef boost::mpl::remove<
+        boost::mpl::remove<MPQCDataTimeVector_t, MPQCDataFused::times_total_flops>::type,
+        MPQCDataFused::times_gather_flops>::type
+        MPQCDataTimeVector_noflops_t;
     const std::string timesresult =
         writeTable<MPQCDataTimeMap_t, MPQCDataTimeVector_noflops_t >()(
@@ -581,5 +584,8 @@
     // we don't want to print grid to a table
     // print times (without flops for now)
-    typedef boost::mpl::remove<MPQCDataTimeVector_t, MPQCDataFused::times_flops>::type MPQCDataTimeVector_noflops_t;
+    typedef boost::mpl::remove<
+        boost::mpl::remove<MPQCDataTimeVector_t, MPQCDataFused::times_total_flops>::type,
+        MPQCDataFused::times_gather_flops>::type
+        MPQCDataTimeVector_noflops_t;
     const std::string timesresult =
         writeTable<MPQCDataTimeMap_t, MPQCDataTimeVector_noflops_t >()(
Index: src/Fragmentation/Converter/DataConverter.hpp
===================================================================
--- src/Fragmentation/Converter/DataConverter.hpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Fragmentation/Converter/DataConverter.hpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -160,7 +160,10 @@
     LOG(4, "DEBUG: Current extracted Data is " << extractedData << ".");
     MPQCDataTimeMap_t instance;
-    boost::fusion::at_key<MPQCDataFused::times_walltime>(instance) = extractedData.times.walltime;
-    boost::fusion::at_key<MPQCDataFused::times_cputime>(instance) = extractedData.times.cputime;
-    boost::fusion::at_key<MPQCDataFused::times_flops>(instance) = extractedData.times.flops;
+    boost::fusion::at_key<MPQCDataFused::times_total_walltime>(instance) = extractedData.times.total_walltime;
+    boost::fusion::at_key<MPQCDataFused::times_total_cputime>(instance) = extractedData.times.total_cputime;
+    boost::fusion::at_key<MPQCDataFused::times_total_flops>(instance) = extractedData.times.total_flops;
+    boost::fusion::at_key<MPQCDataFused::times_gather_walltime>(instance) = extractedData.times.gather_walltime;
+    boost::fusion::at_key<MPQCDataFused::times_gather_cputime>(instance) = extractedData.times.gather_cputime;
+    boost::fusion::at_key<MPQCDataFused::times_gather_flops>(instance) = extractedData.times.gather_flops;
     MPQCData_Time_fused.insert( std::make_pair(dataiter->first, instance) );
   }
Index: src/Jobs/MPQCData.cpp
===================================================================
--- src/Jobs/MPQCData.cpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Jobs/MPQCData.cpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -62,7 +62,10 @@
 
 MPQCData::times_t::times_t() :
-  walltime(0.),
-  cputime(0.),
-  flops(0.)
+  total_walltime(0.),
+  total_cputime(0.),
+  total_flops(0.),
+  gather_walltime(0.),
+  gather_cputime(0.),
+  gather_flops(0.)
 {}
 
@@ -97,5 +100,7 @@
   ost << "Energy: " << data.energies.total << "\t";
   ost << "Forces: " << data.forces << "\t";
-  ost << "Times: " << data.times.walltime << ", " << data.times.cputime << ", " << data.times.flops;
+  ost << "Times: " << data.times.total_walltime << ", "
+      << data.times.total_cputime << ", "
+      << data.times.total_flops;
   return ost;
 }
Index: src/Jobs/MPQCData.hpp
===================================================================
--- src/Jobs/MPQCData.hpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Jobs/MPQCData.hpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -93,7 +93,10 @@
     times_t();
 
-    double walltime;
-    double cputime;
-    double flops;
+    double total_walltime;
+    double total_cputime;
+    double total_flops;
+    double gather_walltime;
+    double gather_cputime;
+    double gather_flops;
   } times;
 
@@ -117,7 +120,10 @@
     ar & positions;
     ar & charges;
-    ar & times.walltime;
-    ar & times.cputime;
-    ar & times.flops;
+    ar & times.total_walltime;
+    ar & times.total_cputime;
+    ar & times.total_flops;
+    ar & times.gather_walltime;
+    ar & times.gather_cputime;
+    ar & times.gather_flops;
   }
 };
Index: src/Jobs/MPQCDataFused.hpp
===================================================================
--- src/Jobs/MPQCDataFused.hpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Jobs/MPQCDataFused.hpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -44,7 +44,10 @@
 
   // keys for times_t
-  struct times_walltime {};
-  struct times_cputime {};
-  struct times_flops {};
+  struct times_total_walltime {};
+  struct times_total_cputime {};
+  struct times_total_flops {};
+  struct times_gather_walltime {};
+  struct times_gather_cputime {};
+  struct times_gather_flops {};
 }
 
Index: src/Jobs/MPQCDataMap.hpp
===================================================================
--- src/Jobs/MPQCDataMap.hpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Jobs/MPQCDataMap.hpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -111,13 +111,19 @@
  */
 typedef boost::fusion::map<
-  boost::fusion::pair<MPQCDataFused::times_walltime, double >
-  , boost::fusion::pair<MPQCDataFused::times_cputime, double >
-  , boost::fusion::pair<MPQCDataFused::times_flops, double >
+  boost::fusion::pair<MPQCDataFused::times_total_walltime, double >
+  , boost::fusion::pair<MPQCDataFused::times_total_cputime, double >
+  , boost::fusion::pair<MPQCDataFused::times_total_flops, double >
+  , boost::fusion::pair<MPQCDataFused::times_gather_walltime, double >
+  , boost::fusion::pair<MPQCDataFused::times_gather_cputime, double >
+  , boost::fusion::pair<MPQCDataFused::times_gather_flops, double >
 > MPQCDataTimeMap_t;
 
 typedef boost::mpl::list<
-    MPQCDataFused::times_walltime,
-    MPQCDataFused::times_cputime,
-    MPQCDataFused::times_flops
+    MPQCDataFused::times_total_walltime,
+    MPQCDataFused::times_total_cputime,
+    MPQCDataFused::times_total_flops,
+    MPQCDataFused::times_gather_walltime,
+    MPQCDataFused::times_gather_cputime,
+    MPQCDataFused::times_gather_flops
 > MPQCDataTimeVector_t;
 
Index: src/Jobs/MPQCData_printKeyNames.hpp
===================================================================
--- src/Jobs/MPQCData_printKeyNames.hpp	(revision de84efb698bb8f2f44d7a4e036e23a3817d025b4)
+++ src/Jobs/MPQCData_printKeyNames.hpp	(revision 4aee30a5e04ca02651e262da12049cf46466d8d3)
@@ -41,7 +41,10 @@
 	(forces) \
 	(sampled_grid) \
-	(times_walltime) \
-	(times_cputime) \
-	(times_flops)
+	(times_total_walltime) \
+	(times_total_cputime) \
+	(times_total_flops) \
+  (times_gather_walltime) \
+  (times_gather_cputime) \
+  (times_gather_flops)
 
 /// we take note of the number of keys in tokensequence as (local) loop bounds below
