- /* Send a bunch of work to every one */
- XBT_INFO("Send a first batch of work to every one");
- work_batch(slaves_count);
+ XBT_INFO("Launch %d VMs", workers_count);
+ for (i=0; i< workers_count; i++) {
+ char *vm_name = bprintf("VM%02d", i);
+ char *pr_name = bprintf("WRK%02d", i);
+ char *mbox = bprintf("MBOX:WRK%02d", i);
+
+ char **wrk_argv = xbt_new(char*, 3);
+ wrk_argv[0] = pr_name;
+ wrk_argv[1] = mbox;
+ wrk_argv[2] = NULL;
+
+ XBT_INFO("create %s", vm_name);
+ msg_vm_t vm = MSG_vm_create_core(pms[i], vm_name);
+
+ s_ws_params_t params;
+ memset(¶ms, 0, sizeof(params));
+ params.ramsize = 1L * 1024 * 1024 * 1024; // 1Gbytes
+ MSG_host_set_params(vm, ¶ms);
+
+ MSG_vm_start(vm);
+ xbt_dynar_push(vms, &vm);
+
+ XBT_INFO("put %s on %s", pr_name, vm_name);
+ MSG_process_create_with_arguments(pr_name, worker_fun, NULL, vm, 2, wrk_argv);
+ }