From 7b2ada64c54a71cc16c1b30048669b0707985c6d Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Tue, 29 Mar 2016 22:53:12 +0200 Subject: [PATCH] package energy + first test: consumption + should match the C version but functions are not part of the bindings (yet?) --- .gitignore | 2 +- examples/java/CMakeLists.txt | 66 ++++++++++--------- examples/java/energy/CMakeLists.txt | 18 ----- .../{ => consumption}/EnergyConsumer.java | 14 ++-- .../{Energy.java => consumption/Main.java} | 12 ++-- .../energy_consumption.tesh} | 6 +- tools/cmake/DefinePackages.cmake | 1 - 7 files changed, 51 insertions(+), 68 deletions(-) delete mode 100644 examples/java/energy/CMakeLists.txt rename examples/java/energy/{ => consumption}/EnergyConsumer.java (67%) rename examples/java/energy/{Energy.java => consumption/Main.java} (76%) rename examples/java/energy/{energy.tesh => consumption/energy_consumption.tesh} (62%) diff --git a/.gitignore b/.gitignore index 7e48eeda3c..0ea4058466 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index 37fca90c57..bb2eade108 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -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 index a31ded4a2a..0000000000 --- a/examples/java/energy/CMakeLists.txt +++ /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) diff --git a/examples/java/energy/EnergyConsumer.java b/examples/java/energy/consumption/EnergyConsumer.java similarity index 67% rename from examples/java/energy/EnergyConsumer.java rename to examples/java/energy/consumption/EnergyConsumer.java index bf3be525b0..0795c597e8 100644 --- a/examples/java/energy/EnergyConsumer.java +++ b/examples/java/energy/consumption/EnergyConsumer.java @@ -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(); diff --git a/examples/java/energy/Energy.java b/examples/java/energy/consumption/Main.java similarity index 76% rename from examples/java/energy/Energy.java rename to examples/java/energy/consumption/Main.java index 5d6884d706..1297b9afa8 100644 --- a/examples/java/energy/Energy.java +++ b/examples/java/energy/consumption/Main.java @@ -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()); } } diff --git a/examples/java/energy/energy.tesh b/examples/java/energy/consumption/energy_consumption.tesh similarity index 62% rename from examples/java/energy/energy.tesh rename to examples/java/energy/consumption/energy_consumption.tesh index 9bd1cd59fa..38148251fb 100644 --- a/examples/java/energy/energy.tesh +++ b/examples/java/energy/consumption/energy_consumption.tesh @@ -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 diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 0f569a89b4..f74d65dd80 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -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 -- 2.20.1