本文整理汇总了C++中MSG_task_destroy函数的典型用法代码示例。如果您正苦于以下问题:C++ MSG_task_destroy函数的具体用法?C++ MSG_task_destroy怎么用?C++ MSG_task_destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MSG_task_destroy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: computation_fun
int computation_fun(int argc, char *argv[])
{
const char *pr_name = MSG_process_get_name(MSG_process_self());
const char *host_name = MSG_host_get_name(MSG_host_self());
double clock_sta, clock_end;
atask = MSG_task_create("Task1", 1e9, 1e9, NULL);
clock_sta = MSG_get_clock();
XBT_INFO("%s:%s task 1 created %g", host_name, pr_name, clock_sta);
MSG_task_execute(atask);
clock_end = MSG_get_clock();
XBT_INFO("%s:%s task 1 executed %g", host_name, pr_name, clock_end - clock_sta);
MSG_task_destroy(atask);
atask = NULL;
MSG_process_sleep(1);
atask = MSG_task_create("Task2", 1e10, 1e10, NULL);
clock_sta = MSG_get_clock();
XBT_INFO("%s:%s task 2 created %g", host_name, pr_name, clock_sta);
MSG_task_execute(atask);
clock_end = MSG_get_clock();
XBT_INFO("%s:%s task 2 executed %g", host_name, pr_name, clock_end - clock_sta);
MSG_task_destroy(atask);
atask = NULL;
return 0;
}
开发者ID:Misirlou,项目名称:Interference-aware-scheduler,代码行数:32,代码来源:test.c
示例2: master
int master(int argc, char *argv[])
{
const char *hostname = MSG_host_get_name(MSG_host_self());
int i;
//the hostname has an empty HDD with a capacity of 100000 (bytes)
TRACE_host_variable_set(hostname, "HDD_capacity", 100000);
TRACE_host_variable_set(hostname, "HDD_utilization", 0);
for (i = 0; i < 10; i++) {
//create and execute a task just to make the simulated time advance
msg_task_t task = MSG_task_create("task", 10000, 0, NULL);
MSG_task_execute (task);
MSG_task_destroy (task);
//ADD: after the execution of this task, the HDD utilization increases by 100 (bytes)
TRACE_host_variable_add(hostname, "HDD_utilization", 100);
}
for (i = 0; i < 10; i++) {
//create and execute a task just to make the simulated time advance
msg_task_t task = MSG_task_create("task", 10000, 0, NULL);
MSG_task_execute (task);
MSG_task_destroy (task);
//SUB: after the execution of this task, the HDD utilization decreases by 100 (bytes)
TRACE_host_variable_sub(hostname, "HDD_utilization", 100);
}
return 0;
}
开发者ID:FlorianPO,项目名称:simgrid,代码行数:30,代码来源:user_variables.c
示例3: slave
/** Receiver function */
int slave(int argc, char *argv[])
{
m_task_t task = NULL;
int res;
while (1) {
res = MSG_task_receive(&(task), "master_mailbox");
if (res != MSG_OK) {
XBT_INFO("error");
break;
}
char *data = MSG_task_get_data(task);
if (data && !strcmp(data, "finalize")) {
MSG_task_destroy(task);
break;
}
XBT_INFO("Executing task %f", MSG_task_get_compute_duration(task));
MSG_task_execute(task);
XBT_INFO("End of execution");
MSG_task_destroy(task);
task = NULL;
}
return 0;
}
开发者ID:rosacris,项目名称:simgrid,代码行数:27,代码来源:tasks.c
示例4: server
static int server(int argc, char *argv[])
{
msg_task_t task = MSG_task_create("a", 0, 0, (char*)"Some data");
MSG_task_isend(task, "mailbox");
xbt_assert(MSG_task_listen("mailbox")); // True (1)
XBT_INFO("Task listen works on regular mailboxes");
task = NULL;
MSG_task_receive(&task, "mailbox");
xbt_assert(!strcmp("Some data", MSG_task_get_data(task)), "Data received: %s", (char*)MSG_task_get_data(task));
MSG_task_destroy(task);
XBT_INFO("Data successfully received from regular mailbox");
MSG_mailbox_set_async("mailbox2");
task = MSG_task_create("b", 0, 0, (char*)"More data");
MSG_task_isend(task, "mailbox2");
xbt_assert(MSG_task_listen("mailbox2")); // used to break.
XBT_INFO("Task listen works on asynchronous mailboxes");
task = NULL;
MSG_task_receive(&task, "mailbox2");
xbt_assert(!strcmp("More data", MSG_task_get_data(task)));
MSG_task_destroy(task);
XBT_INFO("Data successfully received from asynchronous mailbox");
return 0;
}
开发者ID:dindon-sournois,项目名称:simgrid,代码行数:27,代码来源:listen_async.c
示例5: receiver
/** Receiver function */
int receiver(int argc, char *argv[])
{
msg_task_t task = NULL;
_XBT_GNUC_UNUSED msg_error_t res;
int id = -1;
char mailbox[80];
msg_comm_t res_irecv;
_XBT_GNUC_UNUSED int read;
read = sscanf(argv[1], "%d", &id);
xbt_assert(read, "Invalid argument %s\n", argv[1]);
MSG_process_sleep(10);
sprintf(mailbox, "receiver-%d", id);
while (1) {
res_irecv = MSG_task_irecv(&(task), mailbox);
XBT_INFO("Wait to receive a task");
res = MSG_comm_wait(res_irecv, -1);
MSG_comm_destroy(res_irecv);
xbt_assert(res == MSG_OK, "MSG_task_get failed");
XBT_INFO("Received \"%s\"", MSG_task_get_name(task));
if (!strcmp(MSG_task_get_name(task), "finalize")) {
MSG_task_destroy(task);
break;
}
XBT_INFO("Processing \"%s\"", MSG_task_get_name(task));
MSG_task_execute(task);
XBT_INFO("\"%s\" done", MSG_task_get_name(task));
MSG_task_destroy(task);
task = NULL;
}
XBT_INFO("I'm done. See you!");
return 0;
} /* end_of_receiver */
开发者ID:congfairy,项目名称:simgrid,代码行数:34,代码来源:peer2.c
示例6: master
/** Emitter function */
int master(int argc, char *argv[])
{
double task_comp_size = 5E7;
double task_comm_size = 1E6;
char mailbox[256];
msg_task_t task = NULL;
msg_host_t jupiter = MSG_get_host_by_name("Jupiter");
sprintf(mailbox, "jupi");
task = MSG_task_create("task on", task_comp_size, task_comm_size, NULL);
XBT_INFO("Sending \"%s\"", task->name);
if (MSG_task_send_with_timeout(task, mailbox, 1) != MSG_OK)
MSG_task_destroy(task);
MSG_process_sleep(1);
MSG_host_off(jupiter);
task = MSG_task_create("task off", task_comp_size, task_comm_size, NULL);
XBT_INFO("Sending \"%s\"", task->name);
if (MSG_task_send_with_timeout(task, mailbox, 1) != MSG_OK)
MSG_task_destroy(task);
MSG_host_on(jupiter);
xbt_swag_t jupi_processes = MSG_host_get_process_list(jupiter);
void *process;
xbt_swag_foreach(process, jupi_processes) {
MSG_process_kill(process);
}
开发者ID:FlorianPO,项目名称:simgrid,代码行数:30,代码来源:host_on_off.c
示例7: slave
/** Receiver function */
int slave(int argc, char *argv[])
{
XBT_INFO("I'm a slave");
while (1) {
msg_task_t task = NULL;
int a;
a = MSG_task_receive(&(task), MSG_host_get_name(MSG_host_self()));
if (a == MSG_OK) {
XBT_INFO("Received \"%s\" ", MSG_task_get_name(task));
if (MSG_task_get_data(task) == FINALIZE) {
MSG_task_destroy(task);
break;
}
XBT_INFO("Processing \"%s\" ", MSG_task_get_name(task));
MSG_task_execute(task);
XBT_INFO("\"%s\" done ", MSG_task_get_name(task));
MSG_task_destroy(task);
} else {
XBT_INFO("Hey ?! What's up ? ");
xbt_die("Unexpected behavior");
}
}
XBT_INFO("I'm done. See you!");
return 0;
} /* end_of_slave */
开发者ID:tempbottle,项目名称:simgrid,代码行数:26,代码来源:masterslave_cluster.c
示例8: worker
/** Receiver function */
int worker(int argc, char *argv[])
{
msg_task_t task = NULL;
_XBT_GNUC_UNUSED int res;
char channel[1024];
build_channel_name(channel,MSG_process_get_data(MSG_process_self()),
MSG_host_get_name(MSG_host_self()));
XBT_DEBUG("Receiving on channel \"%s\"", channel);
while (1) {
res = MSG_task_receive(&(task),channel);
xbt_assert(res == MSG_OK, "MSG_task_get failed");
XBT_DEBUG("Received \"%s\"", MSG_task_get_name(task));
if (!strcmp(MSG_task_get_name(task), "finalize")) {
MSG_task_destroy(task);
break;
}
XBT_DEBUG("Processing \"%s\"", MSG_task_get_name(task));
MSG_task_execute(task);
XBT_DEBUG("\"%s\" done", MSG_task_get_name(task));
MSG_task_destroy(task);
task = NULL;
}
XBT_DEBUG("I'm done. See you!");
return 0;
} /* end_of_worker */
开发者ID:FlorianPO,项目名称:simgrid,代码行数:31,代码来源:masterworker3.c
示例9: slave
/** Receiver function */
int slave(int argc, char *argv[])
{
m_task_t task = NULL;
int res;
int id = -1;
char mailbox[80];
xbt_assert1(sscanf(argv[1],"%d", &id),
"Invalid argument %s\n",argv[1]);
sprintf(mailbox,"slave-%d",id);
while(1) {
res = MSG_task_receive(&(task), mailbox);
xbt_assert0(res == MSG_OK, "MSG_task_get failed");
// INFO1("Received \"%s\"", MSG_task_get_name(task));
if (!strcmp(MSG_task_get_name(task),"finalize")) {
MSG_task_destroy(task);
break;
}
// INFO1("Processing \"%s\"", MSG_task_get_name(task));
MSG_task_execute(task);
// INFO1("\"%s\" done", MSG_task_get_name(task));
MSG_task_destroy(task);
task = NULL;
}
INFO0("I'm done. See you!");
return 0;
} /* end_of_slave */
开发者ID:hadj,项目名称:simgrid-scalability-XPs,代码行数:32,代码来源:masterslave_mailbox.c
示例10: slave
static int slave(int argc, char *argv[])
{
msg_task_t task = NULL;
XBT_ATTRIB_UNUSED int res;
int id = -1;
char mailbox[80];
sprintf(mailbox, "jupi");
while (1) {
res = MSG_task_receive(&(task), mailbox);
xbt_assert(res == MSG_OK, "MSG_task_get failed");
if (!strcmp(MSG_task_get_name(task), "finalize")) {
MSG_task_destroy(task);
break;
}
MSG_task_execute(task);
XBT_INFO("Task \"%s\" done", MSG_task_get_name(task));
MSG_task_destroy(task);
task = NULL;
id--;
}
XBT_INFO("I'm done. See you!");
return 0;
}
开发者ID:adegomme,项目名称:simgrid,代码行数:27,代码来源:host_on_off.c
示例11: worker
static int worker(int argc, char *argv[])
{
while (1) {
msg_task_t task = NULL;
XBT_ATTRIB_UNUSED int res = MSG_task_receive(&(task), "worker_mailbox");
xbt_assert(res == MSG_OK, "MSG_task_get failed");
XBT_INFO("Handling task \"%s\"", MSG_task_get_name(task));
if (!strcmp(MSG_task_get_name(task), "finalize")) {
XBT_INFO("Destroying task \"%s\"", task->name);
MSG_task_destroy(task);
break;
}
if (!strcmp(MSG_task_get_name(task), "cancel")) {
MSG_process_create("worker1", worker_main, task, MSG_host_self());
MSG_process_sleep(0.1);
XBT_INFO("Canceling task \"%s\"", task->name);
MSG_task_cancel(task);
continue;
}
double start = MSG_get_clock();
MSG_task_execute(task);
double end = MSG_get_clock();
XBT_INFO("Task \"%s\" done in %f (amount %f)", MSG_task_get_name(task), end - start,
MSG_task_get_flops_amount(task));
MSG_task_destroy(task);
}
XBT_INFO("I'm done. See you!");
return 0;
}
开发者ID:fabienchaix,项目名称:simgrid,代码行数:33,代码来源:task_destroy_cancel.cpp
示例12: execute_load_test
static int execute_load_test(int argc, char* argv[])
{
msg_host_t host = MSG_host_by_name("MyHost1");
XBT_INFO("Initial peak speed: %.0E flop/s; number of flops computed so far: %.0E (should be 0)",
MSG_host_get_speed(host), sg_host_get_computed_flops(host));
double start = MSG_get_clock();
XBT_INFO("Sleep for 10 seconds");
MSG_process_sleep(10);
XBT_INFO("Done sleeping %.2fs; peak speed: %.0E flop/s; number of flops computed so far: %.0E (nothing should have "
"changed)",
MSG_get_clock() - start, MSG_host_get_speed(host), sg_host_get_computed_flops(host));
// Run a task
start = MSG_get_clock();
msg_task_t task1 = MSG_task_create("t1", 100E6, 0, NULL);
XBT_INFO("Run a task of %.0E flops", MSG_task_get_flops_amount(task1));
MSG_task_execute(task1);
MSG_task_destroy(task1);
XBT_INFO("Done working on my task; this took %.2fs; current peak speed: %.0E flop/s; number of flops computed so "
"far: %.0E",
MSG_get_clock() - start, MSG_host_get_speed(host), sg_host_get_computed_flops(host));
// ========= Change power peak =========
int pstate = 2;
sg_host_set_pstate(host, pstate);
XBT_INFO("========= Requesting pstate %d (speed should be of %.0E flop/s and is of %.0E flop/s)", pstate,
MSG_host_get_power_peak_at(host, pstate), MSG_host_get_speed(host));
// Run a second task
start = MSG_get_clock();
task1 = MSG_task_create("t2", 100E6, 0, NULL);
XBT_INFO("Run a task of %.0E flops", MSG_task_get_flops_amount(task1));
MSG_task_execute(task1);
MSG_task_destroy(task1);
XBT_INFO("Done working on my task; this took %.2fs; current peak speed: %.0E flop/s; number of flops computed so "
"far: %.0E",
MSG_get_clock() - start, MSG_host_get_speed(host), sg_host_get_computed_flops(host));
start = MSG_get_clock();
XBT_INFO("========= Requesting a reset of the computation counter");
sg_host_load_reset(host);
XBT_INFO("Sleep for 4 seconds");
MSG_process_sleep(4);
XBT_INFO("Done sleeping %.2f s; peak speed: %.0E flop/s; number of flops computed so far: %.0E",
MSG_get_clock() - start, MSG_host_get_speed(host), sg_host_get_computed_flops(host));
// =========== Turn the other host off ==========
XBT_INFO("Turning MyHost2 off, and sleeping another 10 seconds. MyHost2 computed %.0f flops so far.",
MSG_host_get_computed_flops(MSG_host_by_name("MyHost2")));
MSG_host_off(MSG_host_by_name("MyHost2"));
start = MSG_get_clock();
MSG_process_sleep(10);
XBT_INFO("Done sleeping %.2f s; peak speed: %.0E flop/s; number of flops computed so far: %.0E",
MSG_get_clock() - start, MSG_host_get_speed(host), sg_host_get_computed_flops(host));
return 0;
}
开发者ID:simgrid,项目名称:simgrid,代码行数:60,代码来源:plugin-hostload.c
示例13: server
int server(int argc, char *argv[])
{
msg_task_t task1 = NULL;
msg_task_t task2 = NULL;
long val1, val2;
MSG_task_receive(&task1, "mymailbox");
val1 = (long) MSG_task_get_data(task1);
MSG_task_destroy(task1);
task1 = NULL;
XBT_INFO("Received %lu", val1);
MSG_task_receive(&task2, "mymailbox");
val2 = (long) MSG_task_get_data(task2);
MSG_task_destroy(task2);
task2 = NULL;
XBT_INFO("Received %lu", val2);
MC_assert(min(val1, val2) == 1);
MSG_task_receive(&task1, "mymailbox");
val1 = (long) MSG_task_get_data(task1);
MSG_task_destroy(task1);
XBT_INFO("Received %lu", val1);
MSG_task_receive(&task2, "mymailbox");
val2 = (long) MSG_task_get_data(task2);
MSG_task_destroy(task2);
XBT_INFO("Received %lu", val2);
XBT_INFO("OK");
return 0;
}
开发者ID:Shurakai,项目名称:SimGrid,代码行数:33,代码来源:bugged2.c
示例14: slave
/** Receiver function */
int slave(int argc, char *argv[])
{
m_task_t task = NULL;
int res;
int id = -1;
xbt_assert1(sscanf(argv[1],"%d", &id),
"Invalid argument %s\n",argv[1]);
MSG_process_sleep(1); /* Make sure the master is done creating the mailboxes */
while(1) {
res = MSG_mailbox_get_task_ext(mb[id], &(task), NULL, -1);
xbt_assert0(res == MSG_OK, "MSG_task_get failed");
INFO1("Received \"%s\"", MSG_task_get_name(task));
if (!strcmp(MSG_task_get_name(task),"finalize")) {
MSG_task_destroy(task);
break;
}
INFO1("Processing \"%s\"", MSG_task_get_name(task));
MSG_task_execute(task);
INFO1("\"%s\" done", MSG_task_get_name(task));
MSG_task_destroy(task);
task = NULL;
}
INFO0("I'm done. See you!");
return 0;
} /* end_of_slave */
开发者ID:hadj,项目名称:simgrid-scalability-XPs,代码行数:31,代码来源:masterslave_mailbox_opt.c
示例15: job_requester
int job_requester(int argc, char* argv[]){
/**
@type simgrid process (run on all tiers)
Every @timeout checks amount of free (non running) cores.
If this amount is greater than some N then it sends a job request
to scheduler to get new batch of jobs.
Simgrid process parameters:
--------------------------
None
*/
std::string host_name = MSG_host_get_name(MSG_host_self());
std::string CERN = "CERN";
msg_task_t task = NULL;
double timeout = 1000;
long freeCoreAmount;
int fullCoreAmount = MSG_host_get_core_number(MSG_host_self());
MSG_process_sleep(0.01);
while (1){
freeCoreAmount = fullCoreAmount - xbt_str_parse_int(MSG_host_get_property_value(MSG_host_self(), "activeCore"), "error") -
xbt_str_parse_int(MSG_host_get_property_value(MSG_host_self(), "corruptedCore"), "error");
MSG_sem_acquire(sem_requester);
if (GLOBAL_QUEUE->empty()){
MSG_sem_release(sem_requester);
break;
}
if (freeCoreAmount > 0){
JobBatchRequest* jobRequest = new JobBatchRequest;
jobRequest->coreAmount = freeCoreAmount;
task = MSG_task_create("request", 0.0, MESSAGES_SIZE, jobRequest);
plusLinkCounter(host_name, CERN);
msg_error_t err = MSG_task_send(task, "scheduler");
switch(err){
case MSG_OK:
minusLinkCounter(host_name, CERN);
break;
case MSG_TRANSFER_FAILURE:
minusLinkCounter(host_name, CERN);
MSG_task_destroy(task);
task = NULL;
break;
case MSG_HOST_FAILURE:
MSG_task_destroy(task);
task = NULL;
break;
}
}else MSG_sem_release(sem_requester);
MSG_process_sleep(timeout);
}
return 0;
}
开发者ID:skygrid,项目名称:grid_simulation,代码行数:58,代码来源:job_requester.cpp
示例16: action_reduce
static void action_reduce(const char *const *action)
{
int i;
char *reduce_identifier;
char mailbox[80];
double comm_size = parse_double(action[2]);
double comp_size = parse_double(action[3]);
msg_task_t comp_task = NULL;
const char *process_name;
double clock = MSG_get_clock();
process_globals_t counters =
(process_globals_t) MSG_process_get_data(MSG_process_self());
xbt_assert(communicator_size, "Size of Communicator is not defined, "
"can't use collective operations");
process_name = MSG_process_get_name(MSG_process_self());
reduce_identifier = bprintf("reduce_%d", counters->reduce_counter++);
if (!strcmp(process_name, "p0")) {
XBT_DEBUG("%s: %s is the Root", reduce_identifier, process_name);
msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
msg_task_t *tasks = xbt_new0(msg_task_t, communicator_size - 1);
for (i = 1; i < communicator_size; i++) {
sprintf(mailbox, "%s_p%d_p0", reduce_identifier, i);
comms[i - 1] = MSG_task_irecv(&(tasks[i - 1]), mailbox);
}
MSG_comm_waitall(comms, communicator_size - 1, -1);
for (i = 1; i < communicator_size; i++) {
MSG_comm_destroy(comms[i - 1]);
MSG_task_destroy(tasks[i - 1]);
}
xbt_free(comms);
xbt_free(tasks);
comp_task = MSG_task_create("reduce_comp", comp_size, 0, NULL);
XBT_DEBUG("%s: computing 'reduce_comp'", reduce_identifier);
MSG_task_execute(comp_task);
MSG_task_destroy(comp_task);
XBT_DEBUG("%s: computed", reduce_identifier);
} else {
XBT_DEBUG("%s: %s sends", reduce_identifier, process_name);
sprintf(mailbox, "%s_%s_p0", reduce_identifier, process_name);
XBT_DEBUG("put on %s", mailbox);
MSG_task_send(MSG_task_create(reduce_identifier, 0, comm_size, NULL),
mailbox);
}
log_action(action, MSG_get_clock() - clock);
xbt_free(reduce_identifier);
}
开发者ID:tempbottle,项目名称:simgrid,代码行数:55,代码来源:actions.c
示例17: runner
static int runner(int argc, char *argv[])
{
/* Retrieve the list of all hosts as an array of hosts */
int hosts_count = MSG_get_host_number();
msg_host_t *hosts = xbt_dynar_to_array(MSG_hosts_as_dynar());
XBT_INFO("First, build a classical parallel task, with 1 Gflop to execute on each node, "
"and 10MB to exchange between each pair");
double *computation_amounts = xbt_new0(double, hosts_count);
double *communication_amounts = xbt_new0(double, hosts_count * hosts_count);
for (int i = 0; i < hosts_count; i++)
computation_amounts[i] = 1e9; // 1 Gflop
for (int i = 0; i < hosts_count; i++)
for (int j = i + 1; j < hosts_count; j++)
communication_amounts[i * hosts_count + j] = 1e7; // 10 MB
msg_task_t ptask =
MSG_parallel_task_create("parallel task", hosts_count, hosts, computation_amounts, communication_amounts, NULL);
MSG_parallel_task_execute(ptask);
MSG_task_destroy(ptask);
/* The arrays communication_amounts and computation_amounts are not to be freed manually */
XBT_INFO("Then, build a parallel task involving only computations and no communication (1 Gflop per node)");
computation_amounts = xbt_new0(double, hosts_count);
for (int i = 0; i < hosts_count; i++)
computation_amounts[i] = 1e9; // 1 Gflop
ptask = MSG_parallel_task_create("parallel exec", hosts_count, hosts, computation_amounts, NULL/* no comm */, NULL);
MSG_parallel_task_execute(ptask);
MSG_task_destroy(ptask);
XBT_INFO("Then, build a parallel task with no computation nor communication (synchro only)");
computation_amounts = xbt_new0(double, hosts_count);
communication_amounts = xbt_new0(double, hosts_count * hosts_count); /* memset to 0 by xbt_new0 */
ptask = MSG_parallel_task_create("parallel sync", hosts_count, hosts, computation_amounts, communication_amounts, NULL);
MSG_parallel_task_execute(ptask);
MSG_task_destroy(ptask);
XBT_INFO("Finally, trick the ptask to do a 'remote execution', on host %s", MSG_host_get_name(hosts[1]));
computation_amounts = xbt_new0(double, 1);
computation_amounts[0] = 1e9; // 1 Gflop
msg_host_t *remote = xbt_new(msg_host_t,1);
remote[0] = hosts[1];
ptask = MSG_parallel_task_create("remote exec", 1, remote, computation_amounts, NULL/* no comm */, NULL);
MSG_parallel_task_execute(ptask);
MSG_task_destroy(ptask);
free(remote);
XBT_INFO("Goodbye now!");
free(hosts);
return 0;
}
开发者ID:dindon-sournois,项目名称:simgrid,代码行数:53,代码来源:energy-ptask.c
示例18: dvfs
int dvfs(int argc, char *argv[])
{
msg_host_t host = NULL;
msg_task_t task1 = NULL;
double task_time = 0;
host = MSG_get_host_by_name("MyHost1");
double current_peak = MSG_get_host_current_power_peak(host);
XBT_INFO("Current power peak=%lf", current_peak);
double consumed_energy = MSG_get_host_consumed_energy(host);
XBT_INFO("Total energy (Joules): %lf", consumed_energy);
// Run a task
task1 = MSG_task_create ("t1", 100E6, 0, NULL);
MSG_task_execute (task1);
MSG_task_destroy(task1);
task_time = MSG_get_clock();
XBT_INFO("Task1 simulation time: %le", task_time);
consumed_energy = MSG_get_host_consumed_energy(host);
XBT_INFO("Total energy (Joules): %lf", consumed_energy);
// ========= Change power peak =========
int peak_index=2;
double peak_at = MSG_get_host_power_peak_at(host, peak_index);
XBT_INFO("=========Changing power peak value to %lf (at index %d)", peak_at, peak_index);
MSG_set_host_power_peak_at(host, peak_index);
// Run a second task
task1 = MSG_task_create ("t2", 100E6, 0, NULL);
MSG_task_execute (task1);
MSG_task_destroy(task1);
task_time = MSG_get_clock() - task_time;
XBT_INFO("Task2 simulation time: %le", task_time);
consumed_energy = MSG_get_host_consumed_energy(host);
XBT_INFO("Total energy (Joules): %lf", consumed_energy);
MSG_process_sleep(3);
task_time = MSG_get_clock() - task_time;
XBT_INFO("Task3 (sleep) simulation time: %le", task_time);
consumed_energy = MSG_get_host_consumed_energy(host);
XBT_INFO("Total energy (Joules): %lf", consumed_energy);
return 0;
}
开发者ID:cemsbr,项目名称:simgrid,代码行数:53,代码来源:e2.c
示例19: master
static int master(int argc, char *argv[])
{
double task_comp_size = 5E7;
double task_comm_size = 1E6;
double timeout = 1;
const char * mailbox = "jupi";
msg_task_t task = MSG_task_create("normal", task_comp_size, task_comm_size, NULL);
XBT_INFO("Sending task: \"%s\"", task->name);
MSG_task_send_with_timeout(task, mailbox, timeout);
task = MSG_task_create("cancel directly", task_comp_size, task_comm_size, NULL);
XBT_INFO("Canceling task \"%s\" directly", task->name);
MSG_task_cancel(task);
MSG_task_destroy(task);
task = MSG_task_create("destroy directly", task_comp_size, task_comm_size, NULL);
XBT_INFO("Destroying task \"%s\" directly", task->name);
MSG_task_destroy(task);
task = MSG_task_create("cancel", task_comp_size, task_comm_size, NULL);
msg_comm_t comm = MSG_task_isend(task, mailbox);
XBT_INFO("Canceling task \"%s\" during comm", task->name);
MSG_task_cancel(task);
try {
MSG_comm_wait(comm, -1);
}
catch (xbt_ex& ex) {;
MSG_comm_destroy(comm);
}
MSG_task_destroy(task);
task = MSG_task_create("finalize", task_comp_size, task_comm_size, NULL);
comm = MSG_task_isend(task, mailbox);
XBT_INFO("Destroying task \"%s\" during comm", task->name);
MSG_task_destroy(task);
try {
MSG_comm_wait(comm, -1);
}
catch (xbt_ex& ex) {;
MSG_comm_destroy(comm);
}
task = MSG_task_create("cancel", task_comp_size, task_comm_size, NULL);
MSG_task_send_with_timeout(task, mailbox, timeout);
task = MSG_task_create("finalize", task_comp_size, task_comm_size, NULL);
MSG_task_send_with_timeout(task, mailbox, timeout);
XBT_INFO("Goodbye now!");
return 0;
}
开发者ID:oar-team,项目名称:simgrid-batsim,代码行数:53,代码来源:task_destroy_cancel.cpp
示例20: receiver
static int receiver(int argc, char *argv[])
{
msg_task_t task = NULL;
MSG_task_receive(&task, BOX_NAME);
MC_assert(strcmp(MSG_task_get_name(task), "X") == 0);
MSG_task_destroy(task);
MSG_task_receive(&task, BOX_NAME);
MC_assert(strcmp(MSG_task_get_name(task), "Y") == 0);
MSG_task_destroy(task);
return 0;
}
开发者ID:apargupta,项目名称:simgrid,代码行数:14,代码来源:mutex_handling.c
注:本文中的MSG_task_destroy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论