X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c57842fe897f53b46f0be3da87f7c996674be7d6..cf108868b4eeed4d0d9d343bc68557d7814e18c0:/examples/java/cloud/Master.java diff --git a/examples/java/cloud/Master.java b/examples/java/cloud/Master.java index 2cb86b5613..c1e13731d6 100644 --- a/examples/java/cloud/Master.java +++ b/examples/java/cloud/Master.java @@ -8,89 +8,87 @@ package cloud; import java.util.ArrayList; -import org.simgrid.msg.Host; import org.simgrid.msg.Msg; -import org.simgrid.msg.MsgException; -import org.simgrid.msg.Process; -import org.simgrid.msg.Task; import org.simgrid.msg.VM; +import org.simgrid.msg.Host; +import org.simgrid.msg.Task; +import org.simgrid.msg.Process; +import org.simgrid.msg.MsgException; public class Master extends Process { - private Host[] hosts; - - public Master(Host host, String name, Host[] hosts) { - super(host,name,null); - this.hosts = hosts; - } - public void main(String[] args) throws MsgException { - int slavesCount = Cloud.hostNB; - - ArrayList vms = new ArrayList(); - - // Create one VM per host and bind a process inside each one. - for (int i = 0; i < slavesCount; i++) { - Msg.info("create VM0"+i); - VM vm = new VM(hosts[i+1],"VM0"+i); - vm.start(); - vms.add(vm); - Slave slave = new Slave(vm,i); - Msg.info("Put Worker "+slave.msgName()+ " on "+vm.getName()); - slave.start(); - - } - Msg.info("Launched " + vms.size() + " VMs"); - - Msg.info("Send a first batch of work to everyone"); - workBatch(slavesCount); - - Msg.info("Suspend all VMs"); - for (int i = 0; i < vms.size(); i++) { - Msg.info("Suspend "+vms.get(i).getName()); - vms.get(i).suspend(); - } - - Msg.info("Wait a while"); - waitFor(2); - - Msg.info("Resume all VMs."); - for (int i = 0; i < vms.size(); i++) { - vms.get(i).resume(); - } - - Msg.info("Sleep long enough for everyone to be done with previous batch of work"); - waitFor(1000 - Msg.getClock()); - -/* Msg.info("Add one more process per VM."); - for (int i = 0; i < vms.size(); i++) { - VM vm = vms.get(i); - Slave slave = new Slave(vm,i + vms.size()); - slave.start(); - } - - workBatch(slavesCount * 2); + private Host[] hosts; + + public Master(Host host, String name, Host[] hosts) { + super(host,name,null); + this.hosts = hosts; + } + + public void main(String[] args) throws MsgException { + int slavesCount = Cloud.hostNB; + ArrayList vms = new ArrayList(); + + // Create one VM per host and bind a process inside each one. + for (int i = 0; i < slavesCount; i++) { + Msg.info("create VM0"+i); + VM vm = new VM(hosts[i+1],"VM0"+i); + vm.start(); + vms.add(vm); + Slave slave = new Slave(vm,i); + Msg.info("Put Worker "+slave.getName()+ " on "+vm.getName()); + slave.start(); + } + + Msg.info("Launched " + vms.size() + " VMs"); + + Msg.info("Send a first batch of work to everyone"); + workBatch(slavesCount); + + Msg.info("Suspend all VMs"); + for (int i = 0; i < vms.size(); i++) { + Msg.info("Suspend "+vms.get(i).getName()); + vms.get(i).suspend(); + } + + Msg.info("Wait a while"); + waitFor(2); + + Msg.info("Resume all VMs."); + for (int i = 0; i < vms.size(); i++) { + vms.get(i).resume(); + } + + Msg.info("Sleep long enough for everyone to be done with previous batch of work"); + waitFor(1000 - Msg.getClock()); + +/* Msg.info("Add one more process per VM."); + for (int i = 0; i < vms.size(); i++) { + VM vm = vms.get(i); + Slave slave = new Slave(vm,i + vms.size()); + slave.start(); + } + + workBatch(slavesCount * 2); */ - Msg.info("Migrate everyone to "+hosts[3].getName()); - for (int i = 0; i < vms.size(); i++) { - Msg.info("Migrate "+vms.get(i).getName()+"from"+hosts[i+1].getName()+"to "+hosts[3].getName()); - vms.get(i).migrate(hosts[3]); - } - - - Msg.info("Let's shut down the simulation and kill everyone."); - - for (int i = 0; i < vms.size(); i++) { - vms.get(i).shutdown(); - vms.get(i).destroy(); - } - Msg.info("Master done."); - } - - public void workBatch(int slavesCount) throws MsgException { - for (int i = 0; i < slavesCount; i++) { - Task task = new Task("Task0" + i, Cloud.task_comp_size, Cloud.task_comm_size); - Msg.info("Sending to WRK0" + i); - task.send("MBOX:WRK0" + i); - } - } + Msg.info("Migrate everyone to "+hosts[3].getName()); + for (int i = 0; i < vms.size(); i++) { + Msg.info("Migrate "+vms.get(i).getName()+"from"+hosts[i+1].getName()+"to "+hosts[3].getName()); + vms.get(i).migrate(hosts[3]); + } + + Msg.info("Let's shut down the simulation and kill everyone."); + + for (int i = 0; i < vms.size(); i++) { + vms.get(i).shutdown(); + } + Msg.info("Master done."); + } + + public void workBatch(int slavesCount) throws MsgException { + for (int i = 0; i < slavesCount; i++) { + Task task = new Task("Task0" + i, Cloud.task_comp_size, Cloud.task_comm_size); + Msg.info("Sending to WRK0" + i); + task.send("MBOX:WRK0" + i); + } + } }