예제 #1
0
파일: sd_io.c 프로젝트: cemsbr/simgrid
int main(int argc, char **argv)
{
  unsigned int ctr, ctr2;
  const SD_workstation_t *workstations;
  int total_nworkstations;
  xbt_dynar_t current_storage_list;
  char *mount_name;

  SD_init(&argc, argv);
  /* Set the workstation model to default, as storage is not supported by the
   * ptask_L07 model yet.
   */
  SD_config("workstation/model", "default");
  SD_create_environment(argv[1]);
  workstations = SD_workstation_get_list();
  total_nworkstations = SD_workstation_get_number();

  for (ctr=0; ctr<total_nworkstations;ctr++){
    current_storage_list = SD_workstation_get_storage_list(workstations[ctr]);
    xbt_dynar_foreach(current_storage_list, ctr2, mount_name)
      XBT_INFO("Workstation '%s' mounts '%s'",
         SD_workstation_get_name(workstations[ctr]), mount_name);
    xbt_dynar_free_container(&current_storage_list);
  }
  SD_exit();
  return 0;
}
예제 #2
0
void surf_presolve(void)
{
  double next_event_date = -1.0;
  tmgr_trace_event_t event = NULL;
  double value = -1.0;
  ResourcePtr resource = NULL;
  ModelPtr model = NULL;
  unsigned int iter;

  XBT_DEBUG
      ("First Run! Let's \"purge\" events and put models in the right state");
  while ((next_event_date = tmgr_history_next_date(history)) != -1.0) {
    if (next_event_date > NOW)
      break;
    while ((event =
            tmgr_history_get_next_event_leq(history, next_event_date,
                                            &value,
                                            (void **) &resource))) {
      if (value >= 0){
        resource->updateState(event, value, NOW);
      }
    }
  }
  xbt_dynar_foreach(model_list, iter, model)
      model->updateActionsState(NOW, 0.0);
}
예제 #3
0
파일: cunit.c 프로젝트: Shurakai/SimGrid
static void xbt_test_test_dump(xbt_test_test_t test)
{
  if (test) {
    xbt_test_log_t log;
    unsigned int it_log;
    fprintf(stderr, "    test %p(%s:%d)=%s (%s)\n",
            test, test->file, test->line, test->title,
            test->failed ? "failed" : "not failed");
    xbt_dynar_foreach(test->logs, it_log, log)
        xbt_test_log_dump(log);
  } else
    fprintf(stderr, "    test=NULL\n");
}
예제 #4
0
파일: cunit.c 프로젝트: Shurakai/SimGrid
static void xbt_test_unit_dump(xbt_test_unit_t unit)
{
  if (unit) {
    xbt_test_test_t test;
    unsigned int it_test;
    fprintf(stderr, "  UNIT %s: %s (%s)\n",
            unit->name, unit->title,
            (unit->enabled ? "enabled" : "disabled"));
    if (unit->enabled)
      xbt_dynar_foreach(unit->tests, it_test, test)
          xbt_test_test_dump(test);
  } else {
    fprintf(stderr, "  unit=NULL\n");
  }
}
예제 #5
0
static void action_waitall(const char *const *action){
  double clock = smpi_process_simulated_elapsed();
  int count_requests=0;
  unsigned int i=0;

  count_requests=xbt_dynar_length(reqq[smpi_comm_rank(MPI_COMM_WORLD)]);

  if (count_requests>0) {
    MPI_Request requests[count_requests];
    MPI_Status status[count_requests];

    /*  The reqq is an array of dynars. Its index corresponds to the rank.
     Thus each rank saves its own requests to the array request. */
    xbt_dynar_foreach(reqq[smpi_comm_rank(MPI_COMM_WORLD)],i,requests[i]); 

  #ifdef HAVE_TRACING
   //save information from requests

   xbt_dynar_t srcs = xbt_dynar_new(sizeof(int), NULL);
   xbt_dynar_t dsts = xbt_dynar_new(sizeof(int), NULL);
   xbt_dynar_t recvs = xbt_dynar_new(sizeof(int), NULL);
   for (i = 0; i < count_requests; i++) {
    if(requests[i]){
      int *asrc = xbt_new(int, 1);
      int *adst = xbt_new(int, 1);
      int *arecv = xbt_new(int, 1);
      *asrc = requests[i]->src;
      *adst = requests[i]->dst;
      *arecv = requests[i]->recv;
      xbt_dynar_insert_at(srcs, i, asrc);
      xbt_dynar_insert_at(dsts, i, adst);
      xbt_dynar_insert_at(recvs, i, arecv);
      xbt_free(asrc);
      xbt_free(adst);
      xbt_free(arecv);
    }else {
      int *t = xbt_new(int, 1);
      xbt_dynar_insert_at(srcs, i, t);
      xbt_dynar_insert_at(dsts, i, t);
      xbt_dynar_insert_at(recvs, i, t);
      xbt_free(t);
    }
   }