return 0;
}
-/* FIXME: */
#define DOUBLE_MAX 1e11
static void test_dynamic_change(void)
{
msg_host_t pm0 = MSG_host_by_name("Fafard");
- msg_host_t vm0 = MSG_vm_create_core(pm0, "VM0");
- msg_host_t vm1 = MSG_vm_create_core(pm0, "VM1");
+ msg_vm_t vm0 = MSG_vm_create_core(pm0, "VM0");
+ msg_vm_t vm1 = MSG_vm_create_core(pm0, "VM1");
MSG_vm_start(vm0);
MSG_vm_start(vm1);
msg_task_t task0 = MSG_task_create("Task0", DOUBLE_MAX, 0, NULL);
msg_task_t task1 = MSG_task_create("Task1", DOUBLE_MAX, 0, NULL);
- MSG_process_create("worker0", worker_busy_loop_main, &task0, vm0);
- MSG_process_create("worker1", worker_busy_loop_main, &task1, vm1);
+ MSG_process_create("worker0", worker_busy_loop_main, &task0, (msg_host_t)vm0);
+ MSG_process_create("worker1", worker_busy_loop_main, &task1, (msg_host_t)vm1);
- double task0_remain_prev = MSG_task_get_flops_amount(task0);
- double task1_remain_prev = MSG_task_get_flops_amount(task1);
+ double task0_remain_prev = MSG_task_get_remaining_work_ratio(task0);
+ double task1_remain_prev = MSG_task_get_remaining_work_ratio(task1);
- {
- const double cpu_speed = MSG_host_get_speed(pm0);
- int i = 0;
- for (i = 0; i < 10; i++) {
- double new_bound = (cpu_speed / 10) * i;
- XBT_INFO("set bound of VM1 to %f", new_bound);
- MSG_vm_set_bound(vm1, new_bound);
- MSG_process_sleep(100);
+ const double cpu_speed = MSG_host_get_speed(pm0);
+ for (int i = 0; i < 10; i++) {
+ double new_bound = (cpu_speed / 10) * i;
+ XBT_INFO("set bound of VM1 to %f", new_bound);
+ MSG_vm_set_bound(vm1, new_bound);
+ MSG_process_sleep(100);
- double task0_remain_now = MSG_task_get_flops_amount(task0);
- double task1_remain_now = MSG_task_get_flops_amount(task1);
+ double task0_remain_now = MSG_task_get_remaining_work_ratio(task0);
+ double task1_remain_now = MSG_task_get_remaining_work_ratio(task1);
- double task0_flops_per_sec = task0_remain_prev - task0_remain_now;
- double task1_flops_per_sec = task1_remain_prev - task1_remain_now;
+ double task0_flops_per_sec = task0_remain_prev - task0_remain_now;
+ double task1_flops_per_sec = task1_remain_prev - task1_remain_now;
- XBT_INFO("Task0@VM0: %f flops/s", task0_flops_per_sec / 100);
- XBT_INFO("Task1@VM1: %f flops/s", task1_flops_per_sec / 100);
+ XBT_INFO("Task0@VM0: %f flops/s", task0_flops_per_sec / 100);
+ XBT_INFO("Task1@VM1: %f flops/s", task1_flops_per_sec / 100);
- task0_remain_prev = task0_remain_now;
- task1_remain_prev = task1_remain_now;
- }
+ task0_remain_prev = task0_remain_now;
+ task1_remain_prev = task1_remain_now;
}
+
MSG_process_sleep(2000); // let the tasks end
MSG_vm_destroy(vm0);
test_two_tasks(pm0, pm0);
XBT_INFO(" ");
- msg_host_t vm0 = MSG_vm_create_core(pm0, "VM0");
+ msg_vm_t vm0 = MSG_vm_create_core(pm0, "VM0");
MSG_vm_start(vm0);
XBT_INFO("# 3. Put a single task on a VM. ");
- test_one_task(vm0);
+ test_one_task((msg_host_t)vm0);
XBT_INFO(" ");
XBT_INFO("# 4. Put two tasks on a VM.");
- test_two_tasks(vm0, vm0);
+ test_two_tasks((msg_host_t)vm0, (msg_host_t)vm0);
XBT_INFO(" ");
MSG_vm_destroy(vm0);
MSG_vm_start(vm0);
XBT_INFO("# 6. Put a task on a PM and a task on a VM.");
- test_two_tasks(pm0, vm0);
+ test_two_tasks(pm0, (msg_host_t)vm0);
XBT_INFO(" ");
MSG_vm_destroy(vm0);
MSG_vm_start(vm0);
XBT_INFO("# 7. Put a single task on the VM capped by 10%%.");
- test_one_task(vm0);
+ test_one_task((msg_host_t)vm0);
XBT_INFO(" ");
XBT_INFO("# 8. Put two tasks on the VM capped by 10%%.");
- test_two_tasks(vm0, vm0);
+ test_two_tasks((msg_host_t)vm0, (msg_host_t)vm0);
XBT_INFO(" ");
XBT_INFO("# 9. Put a task on a PM and a task on the VM capped by 10%%.");
- test_two_tasks(pm0, vm0);
+ test_two_tasks(pm0, (msg_host_t)vm0);
XBT_INFO(" ");
MSG_vm_destroy(vm0);
s_vm_params_t params;
memset(¶ms, 0, sizeof(params));
params.ramsize = 1L * 1000 * 1000 * 1000; // 1Gbytes
- MSG_host_set_params(vm0, ¶ms);
+ MSG_vm_set_params(vm0, ¶ms);
MSG_vm_start(vm0);
cpu_speed = MSG_host_get_speed(pm0);
const double computation_amount = cpu_speed * 10;
XBT_INFO("# 10. (a) Put a task on a VM without any bound.");
- launch_worker(vm0, "worker0", computation_amount, 0, 0);
+ launch_worker((msg_host_t)vm0, "worker0", computation_amount, 0, 0);
MSG_process_sleep(1000);
XBT_INFO(" ");
XBT_INFO("# 10. (b) set 10%% bound to the VM, and then put a task on the VM.");
MSG_vm_set_bound(vm0, cpu_speed / 10);
- launch_worker(vm0, "worker0", computation_amount, 0, 0);
+ launch_worker((msg_host_t)vm0, "worker0", computation_amount, 0, 0);
MSG_process_sleep(1000);
XBT_INFO(" ");
XBT_INFO(" ");
XBT_INFO("# 10. (d) Put a task again on the VM.");
- launch_worker(vm0, "worker0", computation_amount, 0, 0);
+ launch_worker((msg_host_t)vm0, "worker0", computation_amount, 0, 0);
MSG_process_sleep(1000);
XBT_INFO(" ");