2 * Master of a basic master/slave example in Java
4 * Copyright 2006-2012 The SimGrid Team. All rights reserved.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the license (GNU LGPL) which comes with this package.
11 import org.simgrid.msg.Host;
12 import org.simgrid.msg.Msg;
13 import org.simgrid.msg.MsgException;
14 import org.simgrid.msg.Task;
15 import org.simgrid.msg.Process;;
17 class Master(host:Host, name:String, args:Array[String]) extends Process(host,name,args) {
18 def main(args:Array[String]) {
19 if (args.length < 4) {
20 Msg.info("Master needs 4 arguments")
24 val tasksCount = args(0).toInt
25 val taskComputeSize = args(1).toDouble
26 val taskCommunicateSize = args(2).toDouble
27 val slavesCount = args(3).toInt
29 Msg.info("Hello! Got " + slavesCount + " slaves and " + tasksCount + " tasks to process")
31 for (i <- 0 until tasksCount) {
32 val task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize)
33 task.send("slave_"+(i%slavesCount))
36 Msg.info("All tasks have been dispatched. Let's tell everybody the computation is over.")
38 for (i <- 0 until slavesCount) {
39 val task = new FinalizeTask()
40 task.send("slave_"+(i%slavesCount))
43 Msg.info("Goodbye now!")