Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
package energy
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 29 Mar 2016 20:53:12 +0000 (22:53 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 29 Mar 2016 20:53:12 +0000 (22:53 +0200)
  + first test: consumption
  + should match the C version but functions are not part of the
    bindings (yet?)

.gitignore
examples/java/CMakeLists.txt
examples/java/energy/CMakeLists.txt [deleted file]
examples/java/energy/consumption/EnergyConsumer.java [moved from examples/java/energy/EnergyConsumer.java with 67% similarity]
examples/java/energy/consumption/Main.java [moved from examples/java/energy/Energy.java with 76% similarity]
examples/java/energy/consumption/energy_consumption.tesh [moved from examples/java/energy/energy.tesh with 62% similarity]
tools/cmake/DefinePackages.cmake

index 7e48eed..0ea4058 100644 (file)
@@ -978,7 +978,7 @@ examples/java/cloud/java_cloud_compiled
 examples/java/cloud/energy/java_cloud_energy_compiled
 examples/java/cloud/migration/java_cloud_migration_compiled
 examples/java/commTime/java_commTime_compiled
-examples/java/energy/java_energy_compiled
+examples/java/energy/consumption/java_energy_consumption_compiled
 examples/java/io/java_io_compiled
 examples/java/process/kill/java_process_kill_compiled
 examples/java/process/migration/java_process_migration_compiled
index 37fca90..bb2eade 100644 (file)
@@ -1,35 +1,37 @@
-set(dht_chord_sources         ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Main.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/ChordTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Common.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/FindSuccessorAnswerTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/FindSuccessorTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/GetPredecessorAnswerTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/GetPredecessorTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Node.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/NotifyTask.java)
-set(dht_kademlia_sources      ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Main.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Answer.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Bucket.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Common.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Contact.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/FindNodeAnswerTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/FindNodeTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/KademliaTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Node.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/PingAnswerTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/PingTask.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/RoutingTable.java)
-set(process_kill_sources      ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Main.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Killer.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Victim.java)
-set(process_migration_sources ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Main.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Emigrant.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Policeman.java)
-set(process_suspend_sources   ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/Main.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/DreamMaster.java
-                              ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/LazyGuy.java)
+set(dht_chord_sources          ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/ChordTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Common.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/FindSuccessorAnswerTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/FindSuccessorTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/GetPredecessorAnswerTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/GetPredecessorTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/Node.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/NotifyTask.java)
+set(dht_kademlia_sources       ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Answer.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Bucket.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Common.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Contact.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/FindNodeAnswerTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/FindNodeTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/KademliaTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/Node.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/PingAnswerTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/PingTask.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/RoutingTable.java)
+set(energy_consumption_sources ${CMAKE_CURRENT_SOURCE_DIR}/energy/consumption/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/energy/consumption/EnergyConsumer.java)
+set(process_kill_sources       ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Killer.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/kill/Victim.java)
+set(process_migration_sources  ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Emigrant.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/migration/Policeman.java)
+set(process_suspend_sources    ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/Main.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/DreamMaster.java
+                               ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend/LazyGuy.java)
 
-foreach (example dht_chord dht_kademlia process_kill process_migration process_suspend)
+foreach (example dht_chord dht_kademlia energy_consumption process_kill process_migration process_suspend)
   string (REPLACE "_" "/" example_dir ${example})
   if(enable_java)
 
@@ -53,7 +55,7 @@ set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/chord.x
                                    ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/kademlia.xml   PARENT_SCOPE)
 
 if(enable_java)
-  foreach (example dht_chord dht_kademlia process_kill process_migration process_suspend)
+  foreach (example dht_chord dht_kademlia energy_consumption process_kill process_migration process_suspend)
     string (REPLACE "_" "/" example_dir ${example})
     ADD_TESH(java-${example}  --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/${example_dir}/${example}.tesh)
   endforeach()
diff --git a/examples/java/energy/CMakeLists.txt b/examples/java/energy/CMakeLists.txt
deleted file mode 100644 (file)
index a31ded4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-set(example java_energy)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Energy.java  ${CMAKE_CURRENT_SOURCE_DIR}/EnergyConsumer.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-energy --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/energy/energy.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                               PARENT_SCOPE)
@@ -4,7 +4,7 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-package energy;
+package energy.consumption;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
@@ -12,16 +12,18 @@ import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
-import org.simgrid.msg.TimeoutException;
+import org.simgrid.msg.HostNotFoundException;
 
 public class EnergyConsumer extends Process {
-  public EnergyConsumer(Host host, String name, String[] args) {
-    super(host,name,args);
+  public EnergyConsumer(String hostname, String name) throws HostNotFoundException{
+    super(hostname,name);
   }
 
-  @Override
   public void main(String[] args) throws MsgException {
-     Msg.info("Currently consumed energy: "+getHost().getConsumedEnergy());
+     Msg.info("Energetic profile: " + getHost().getProperty("watt_per_state"));
+     Msg.info("Initial peak speed= " + getHost().getSpeed() + " flop/s; Energy dissipated = "
+              + getHost().getConsumedEnergy() + " J");
+
      this.waitFor(10);
      Msg.info("Currently consumed energy after sleeping 10 sec: "+getHost().getConsumedEnergy());
      new Task(null, 1E9, 0).execute();
similarity index 76%
rename from examples/java/energy/Energy.java
rename to examples/java/energy/consumption/Main.java
index 5d6884d..1297b9a 100644 (file)
@@ -4,13 +4,13 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-package energy;
+package energy.consumption;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
 
-public class Energy {
+public class Main {
   public static final double task_comp_size = 10;
   public static final double task_comm_size = 10;
   public static final int hostNB = 2 ; 
@@ -26,14 +26,10 @@ public class Energy {
     }
     /* Construct the platform */
     Msg.createEnvironment(args[0]);
-    Host[] hosts = Host.all();
-    if (hosts.length < 1) {
-      Msg.info("I need at least one host in the platform file, but " + args[0] + " has no host at all");
-      System.exit(42);
-    }
     /* Instanciate a process */
-    new EnergyConsumer(hosts[0],"energyConsumer",null).start();
+    new EnergyConsumer("MyHost1","energyConsumer").start();
     /* Execute the simulation */
     Msg.run();
+    Msg.info("Total simulation time: "+  Msg.getClock());
   }
 }
similarity index 62%
rename from examples/java/energy/energy.tesh
rename to examples/java/energy/consumption/energy_consumption.tesh
index 9bd1cd5..3814825 100644 (file)
@@ -2,12 +2,14 @@
 
 ! timeout 15
 
-$ java -classpath ${classpath:=.} energy/Energy ${srcdir:=.}/../platforms/energy_platform.xml
+$ java -classpath ${classpath:=.} energy/consumption/Main ${srcdir:=.}/../platforms/energy_platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads.
-> [MyHost1:energyConsumer:(1) 0.000000] [jmsg/INFO] Currently consumed energy: 0.0
+> [MyHost1:energyConsumer:(1) 0.000000] [jmsg/INFO] Energetic profile: 100.0:200.0, 93.0:170.0, 90.0:150.0
+> [MyHost1:energyConsumer:(1) 0.000000] [jmsg/INFO] Initial peak speed= 1.0E8 flop/s; Energy dissipated = 0.0 J
 > [MyHost1:energyConsumer:(1) 10.000000] [jmsg/INFO] Currently consumed energy after sleeping 10 sec: 1000.0
 > [MyHost1:energyConsumer:(1) 20.000000] [jmsg/INFO] Currently consumed energy after executing 1E9 flops: 3000.0
 > [20.000000] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
+> [20.000000] [jmsg/INFO] Total simulation time: 20.0
 > [20.000000] [surf_energy/INFO] Total energy of host MyHost1: 3000.000000 Joules
 > [20.000000] [surf_energy/INFO] Total energy of host MyHost2: 2000.000000 Joules
 > [20.000000] [surf_energy/INFO] Total energy of host MyHost3: 2000.000000 Joules
index 0f569a8..f74d65d 100644 (file)
@@ -930,7 +930,6 @@ set(CMAKEFILES_TXT
   examples/java/cloud/energy/CMakeLists.txt
   examples/java/cloud/migration/CMakeLists.txt
   examples/java/commTime/CMakeLists.txt
-  examples/java/energy/CMakeLists.txt
   examples/java/io/CMakeLists.txt
   examples/java/masterworker/CMakeLists.txt
   examples/java/mutualExclusion/CMakeLists.txt