X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/da3a12f2c982a04f13b52db5b7d60ac637e71acc..9a49b76a51e77beced0dfc5f0f74f38d8cfd6c8f:/examples/java/async/Master.java?ds=inline diff --git a/examples/java/async/Master.java b/examples/java/async/Master.java index 4960b75645..19e66ea9ff 100644 --- a/examples/java/async/Master.java +++ b/examples/java/async/Master.java @@ -1,6 +1,4 @@ -/* Master of a basic master/slave example in Java */ - -/* Copyright (c) 2006-2014. The SimGrid Team. +/* Copyright (c) 2006-2014, 2016. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -9,63 +7,63 @@ package async; import java.util.ArrayList; +import org.simgrid.msg.Msg; import org.simgrid.msg.Comm; 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.Process; +import org.simgrid.msg.MsgException; public class Master extends Process { - public Master(Host host, String name, String[]args) { - super(host,name,args); - } - public void main(String[] args) throws MsgException { - if (args.length < 4) { - Msg.info("Master needs 4 arguments"); - System.exit(1); - } + public Master(Host host, String name, String[]args) { + super(host,name,args); + } + + public void main(String[] args) throws MsgException { + if (args.length < 4) { + Msg.info("Master needs 4 arguments"); + System.exit(1); + } + + int tasksCount = Integer.valueOf(args[0]).intValue(); + double taskComputeSize = Double.valueOf(args[1]).doubleValue(); + double taskCommunicateSize = Double.valueOf(args[2]).doubleValue(); + + int slavesCount = Integer.valueOf(args[3]).intValue(); - int tasksCount = Integer.valueOf(args[0]).intValue(); - double taskComputeSize = Double.valueOf(args[1]).doubleValue(); - double taskCommunicateSize = Double.valueOf(args[2]).doubleValue(); + Msg.info("Hello! Got "+ slavesCount + " slaves and "+tasksCount+" tasks to process"); + ArrayList comms = new ArrayList(); - int slavesCount = Integer.valueOf(args[3]).intValue(); + for (int i = 0; i < tasksCount; i++) { + Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); + Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\""); + Comm comm = task.isend("slave_"+(i%slavesCount)); + comms.add(comm); + } - Msg.info("Hello! Got "+ slavesCount + " slaves and "+tasksCount+" tasks to process"); - ArrayList comms = new ArrayList(); - - for (int i = 0; i < tasksCount; i++) { - Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); - Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\""); - //task.send("slave_"+(i%slavesCount)); - Comm comm = task.isend("slave_"+(i%slavesCount)); - comms.add(comm); - } - - while (comms.size() > 0) { - for (int i = 0; i < comms.size(); i++) { - try { - if (comms.get(i).test()) { - comms.remove(i); - i--; - } - } - catch (Exception e) { - e.printStackTrace(); - } - } - waitFor(1); - } - - Msg.info("All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over, and sleep 20s so that nobody gets a message from a terminated process."); + while (comms.size() > 0) { + for (int i = 0; i < comms.size(); i++) { + try { + if (comms.get(i).test()) { + comms.remove(i); + i--; + } + } + catch (Exception e) { + e.printStackTrace(); + } + } + waitFor(1); + } + Msg.info("All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over,"+ + " and sleep 20s so that nobody gets a message from a terminated process."); - for (int i = 0; i < slavesCount; i++) { - FinalizeTask task = new FinalizeTask(); - task.dsend("slave_"+(i%slavesCount)); - } - waitFor(20); + for (int i = 0; i < slavesCount; i++) { + FinalizeTask task = new FinalizeTask(); + task.dsend("slave_"+(i%slavesCount)); + } + waitFor(20); - Msg.info("Goodbye now!"); - } + Msg.info("Goodbye now!"); + } }