[Avida-SVN] r2534 - branches/jobScheduling/source/main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Mon Apr 14 13:16:15 PDT 2008


Author: beckma24
Date: 2008-04-14 16:16:15 -0400 (Mon, 14 Apr 2008)
New Revision: 2534

Modified:
   branches/jobScheduling/source/main/cDeme.cc
   branches/jobScheduling/source/main/cDeme.h
   branches/jobScheduling/source/main/cStats.cc
   branches/jobScheduling/source/main/cStats.h
Log:
Added org. exe. rate to flow_rate_tuple

Modified: branches/jobScheduling/source/main/cDeme.cc
===================================================================
--- branches/jobScheduling/source/main/cDeme.cc	2008-04-14 19:34:41 UTC (rev 2533)
+++ branches/jobScheduling/source/main/cDeme.cc	2008-04-14 20:16:15 UTC (rev 2534)
@@ -77,6 +77,14 @@
 }
 
 void cDeme::ProcessUpdate() {
+  energyUsage.Clear();
+  for(int i = 0; i < GetSize(); i++) {
+    cPopulationCell& cell = GetCell(i);
+    if(cell.IsOccupied()) {
+      energyUsage.Add(cell.GetOrganism()->GetPhenotype().GetEnergyUsageRatio());
+    }
+  }
+  
   if(IsEmpty()) {  // deme is not processed if no organisms are present
     total_energy_testament = 0.0;
     return;
@@ -113,8 +121,9 @@
       else
         consecutiveSuccessfulEventPeriods = 0;
       
-      (m_world->GetStats().FlowRateTuples())[(*iter).second].first.Add(GetOrgCount());
-      (m_world->GetStats().FlowRateTuples())[(*iter).second].second.Add(GetEventsKilledThisSlot());
+      (m_world->GetStats().FlowRateTuples())[(*iter).second].orgCount.Add(GetOrgCount());
+      (m_world->GetStats().FlowRateTuples())[(*iter).second].eventsKilled.Add(GetEventsKilledThisSlot());
+      (m_world->GetStats().FlowRateTuples())[(*iter).second].AvgEnergyUsageRatio.Add(energyUsage.Average());
       eventsKilledThisSlot = 0;
       break;
     }
@@ -317,8 +326,9 @@
   // setup stats.flow_rate_tuples
   cStats& stats = m_world->GetStats();
   for(int i = m_total_events_per_slot_min; i <= m_total_events_per_slot_max; i+=flow_level_increment) {
-    (stats.FlowRateTuples())[i].first.Clear();
-    (stats.FlowRateTuples())[i].second.Clear();
+    (stats.FlowRateTuples())[i].orgCount.Clear();
+    (stats.FlowRateTuples())[i].eventsKilled.Clear();
+    (stats.FlowRateTuples())[i].AvgEnergyUsageRatio.Clear();
   }
 }
 

Modified: branches/jobScheduling/source/main/cDeme.h
===================================================================
--- branches/jobScheduling/source/main/cDeme.h	2008-04-14 19:34:41 UTC (rev 2533)
+++ branches/jobScheduling/source/main/cDeme.h	2008-04-14 20:16:15 UTC (rev 2534)
@@ -32,6 +32,7 @@
 #include "tArray.h"
 #include "cResourceCount.h"
 #include "cStringList.h"
+#include "cDoubleSum.h"
 
 class cResource;
 class cWorld;
@@ -64,6 +65,7 @@
   unsigned int eventsKilled;
   unsigned int eventsKilledThisSlot;
   unsigned int consecutiveSuccessfulEventPeriods;
+  cDoubleSum energyUsage;
   
   // End of phenotypic traits
   

Modified: branches/jobScheduling/source/main/cStats.cc
===================================================================
--- branches/jobScheduling/source/main/cStats.cc	2008-04-14 19:34:41 UTC (rev 2533)
+++ branches/jobScheduling/source/main/cStats.cc	2008-04-14 20:16:15 UTC (rev 2534)
@@ -598,24 +598,27 @@
 
   df.Write(m_update,                                        "Update");
   // write each tuple
-  for(map<int, pair<cIntSum, cIntSum> >::iterator iter = flow_rate_tuples.begin(); iter != flow_rate_tuples.end(); iter++) {
+  for(map<int, flow_rate_tuple>::iterator iter = flow_rate_tuples.begin(); iter != flow_rate_tuples.end(); iter++) {
     ostringstream oss;
     oss << "flow rate " << (*iter).first;
     string flow_rate_str(oss.str());
     string flow_rate_pop_size_str(flow_rate_str+" deme pop size");
     string flow_rate_events_killed_str(flow_rate_str+" events killed");
+    string flow_rate_exe_ratio_str(flow_rate_str+" exe ratio");
     
     df.Write((*iter).first, flow_rate_str.c_str());
-    df.Write((*iter).second.first.Average(), flow_rate_pop_size_str.c_str());
-    df.Write((*iter).second.second.Average(), flow_rate_events_killed_str.c_str());
+    df.Write((*iter).second.orgCount.Average(), flow_rate_pop_size_str.c_str());
+    df.Write((*iter).second.eventsKilled.Average(), flow_rate_events_killed_str.c_str());
+    df.Write((*iter).second.AvgEnergyUsageRatio.Average(), flow_rate_exe_ratio_str.c_str());
     
   }
   df.Endl();
 
   // reset all tuples
-  for(map<int, pair<cIntSum, cIntSum> >::iterator iter = flow_rate_tuples.begin(); iter != flow_rate_tuples.end(); iter++) {
-    (*iter).second.first.Clear();
-    (*iter).second.second.Clear();
+  for(map<int, flow_rate_tuple >::iterator iter = flow_rate_tuples.begin(); iter != flow_rate_tuples.end(); iter++) {
+    (*iter).second.orgCount.Clear();
+    (*iter).second.eventsKilled.Clear();
+    (*iter).second.AvgEnergyUsageRatio.Clear();
   }
 }
 

Modified: branches/jobScheduling/source/main/cStats.h
===================================================================
--- branches/jobScheduling/source/main/cStats.h	2008-04-14 19:34:41 UTC (rev 2533)
+++ branches/jobScheduling/source/main/cStats.h	2008-04-14 20:16:15 UTC (rev 2534)
@@ -72,6 +72,12 @@
 class cDeme;
 class cGermline;
 
+struct flow_rate_tuple {
+  cIntSum orgCount;
+  cIntSum eventsKilled;
+  cDoubleSum AvgEnergyUsageRatio;
+};
+
 class cStats
 {
 #if USE_tMemTrack
@@ -283,7 +289,7 @@
   cDoubleSum EnergyTestamentAcceptedByDeme;
   
   //(event flow rate, (deme pop size, events killed))
-  std::map<int, std::pair<cIntSum, cIntSum> > flow_rate_tuples;
+  std::map<int, flow_rate_tuple > flow_rate_tuples;
 
   // Speculative Execution Stats
   int m_spec_total;
@@ -437,7 +443,7 @@
   cDoubleSum& SumEnergyTestamentAcceptedByDeme() { return EnergyTestamentAcceptedByDeme; }
 
   
-  std::map<int, std::pair<cIntSum, cIntSum> >&  FlowRateTuples() { return flow_rate_tuples; }
+  std::map<int, flow_rate_tuple >&  FlowRateTuples() { return flow_rate_tuples; }
 
 #if INSTRUCTION_COUNT
   void ZeroInst();
@@ -486,7 +492,7 @@
   const cDoubleSum& SumEnergyTestamentAcceptedByOrganisms() const { return EnergyTestamentAcceptedByOrganisms; }
   const cDoubleSum& SumEnergyTestamentAcceptedByDeme() const { return EnergyTestamentAcceptedByDeme; }
 
-  const std::map<int, std::pair<cIntSum, cIntSum> >&  FlowRateTuples() const { return flow_rate_tuples; }
+  const std::map<int, flow_rate_tuple >&  FlowRateTuples() const { return flow_rate_tuples; }
 
 
   void IncResamplings() { ++num_resamplings; }  // @AWC 06/29/06




More information about the Avida-cvs mailing list