Exemple #1
0
JNIEXPORT void JNICALL Java_org_simgrid_msg_VM_create(JNIEnv* env, jobject jvm, jobject jhost, jstring jname,
                                                      jint jramsize, jint jmig_netspeed, jint jdp_intensity)
{
  msg_host_t host = jhost_get_native(env, jhost);

  const char* name = env->GetStringUTFChars(jname, 0);
  name = xbt_strdup(name);

  msg_vm_t vm = MSG_vm_create(host, name, static_cast<int>(jramsize), static_cast<int>(jmig_netspeed),
                              static_cast<int>(jdp_intensity));

  jvm_bind(env, jvm, vm);
}
Exemple #2
0
static int dvfs(int argc, char *argv[])
{
  msg_host_t host1 = MSG_host_by_name("MyHost1");
  msg_host_t host2 = MSG_host_by_name("MyHost2");
  msg_host_t host3 = MSG_host_by_name("MyHost3");

  /* Host 1 */
  XBT_INFO("Creating and starting two VMs");
  msg_vm_t vm_host1 = MSG_vm_create(host1, "vm_host1", 4, 2048, 100, NULL, 1024 * 20, 10,50);
  MSG_vm_start(vm_host1);
  msg_vm_t vm_host3 = MSG_vm_create(host3, "vm_host3", 4, 2048, 100, NULL, 1024 * 20, 10,50);
  MSG_vm_start(vm_host3);

  XBT_INFO("Create two tasks on Host1: one inside a VM, the other directly on the host");
  MSG_process_create("p11", worker_func, NULL, vm_host1);
  MSG_process_create("p12", worker_func, NULL, host1);

  XBT_INFO("Create two tasks on Host2: both directly on the host");
  MSG_process_create("p21", worker_func, NULL, host2);
  MSG_process_create("p22", worker_func, NULL, host2);

  XBT_INFO("Create two tasks on Host3: both inside a VM");
  MSG_process_create("p31", worker_func, NULL, vm_host3);
  MSG_process_create("p32", worker_func, NULL, vm_host3);

  XBT_INFO("Wait 5 seconds. The tasks are still running (they run for 3 seconds, but 2 tasks are co-located, "
           "so they run for 6 seconds)");
  MSG_process_sleep(5);
  XBT_INFO("Wait another 5 seconds. The tasks stop at some point in between");
  MSG_process_sleep(5);

  MSG_vm_shutdown(vm_host1);
  MSG_vm_shutdown(vm_host3);
  MSG_vm_destroy(vm_host1);
  MSG_vm_destroy(vm_host3);

  return 0;
}
Exemple #3
0
JNIEXPORT void JNICALL Java_org_simgrid_msg_VM_create(JNIEnv *env, jobject jvm, jobject jhost, jstring jname,
                                                      jint jncore, jint jramsize, jint jnetcap, jstring jdiskpath,
                                                      jint jdisksize, jint jmig_netspeed, jint jdp_intensity)
{
  msg_host_t host = jhost_get_native(env, jhost);

  const char *name;
  name = env->GetStringUTFChars(jname, 0);
  name = xbt_strdup(name);

  // TODO disk concerns are not taken into account yet
  // const char *diskpath;
  // disk_path = (*env)->GetStringUTFChars(env, jdiskpath, 0);
  // disk_path = xbt_strdup(disk_path);

  msg_vm_t vm = MSG_vm_create(host, name, (int) jncore, (int) jramsize, (int) jnetcap, nullptr, (int) jdisksize,
                              (int) jmig_netspeed, (int) jdp_intensity);

  jvm_bind(env,jvm,vm);
}