import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import at.ac.tuwien.lsdc.JobGenerator;
+import at.ac.tuwien.lsdc.SchedSimulator;
import at.ac.tuwien.lsdc.sched.SchedulerB;
import at.ac.tuwien.lsdc.types.Application;
private static final Logger LOG = LoggerFactory.getLogger(SchedulerB.class);
private int numPartners;
- public final static int fak = 100;
- public final static int th = 30;
public Federation(int numPartners) {
this.numPartners = numPartners;
* Try to outsource app.
*
* @param app
- * Application to outsource.
+ * Application to outsource.
* @return true, if application can be outsourced.
*/
public boolean askToOutsource(Application app) {
LOG.info("askToOutsource():" + app);
- for (int i = 0; i < numPartners; i++) {
- if (Math.random() * fak < th)
- return true;
- }
+ if ((Math.random() * 100) < (10 * numPartners))
+ return true;
return false;
}
+ /**
+ * Try to insource app.
+ *
+ * @return application to be insourced.
+ */
+ @SuppressWarnings("unused")
+ public Application askToInsource() {
+ LOG.info("askToOutsource()");
+ int size;
+ int ram;
+ int cpu;
+ int duration;
+
+ if ((Math.random() * 100) < (10 * numPartners) && false)
+ switch (SchedSimulator.getScenario()) {
+ case A :
+ size = JobGenerator.randomInt(20, 100);
+ ram = JobGenerator.randomInt(30, 50);
+ cpu = JobGenerator.randomInt(50, 100);
+ duration = JobGenerator.randomInt(1, 50);
+ return new Application(0, size, ram, cpu, duration);
+ case B :
+ size = JobGenerator.randomInt(150, 500);
+ ram = JobGenerator.randomInt(100, 700);
+ cpu = JobGenerator.randomInt(100, 400);
+ duration = JobGenerator.randomInt(1, 50);
+ return new Application(0, size, ram, cpu, duration);
+ default :
+ size = JobGenerator.randomInt(20, 500);
+ ram = JobGenerator.randomInt(30, 700);
+ cpu = JobGenerator.randomInt(50, 400);
+ duration = JobGenerator.randomInt(1, 50);
+ return new Application(0, size, ram, cpu, duration);
+ }
+ return null;
+ }
}