root/orte/test/system/orte_loop_spawn.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. main

   1 /*file .c : spawned  the file Exe*/
   2 #include <stdio.h>
   3 #include <unistd.h>
   4 
   5 #include "orte/constants.h"
   6 
   7 #include "opal/util/argv.h"
   8 
   9 #include "orte/mca/plm/plm.h"
  10 #include "orte/mca/errmgr/errmgr.h"
  11 #include "orte/runtime/runtime.h"
  12 #include "orte/runtime/orte_globals.h"
  13 
  14 int main(int argc, char* argv[])
  15 {
  16     int rc;
  17     orte_job_t *jdata;
  18     orte_app_context_t *app;
  19     char cwd[1024];
  20     int iter;
  21 
  22     if (0 > (rc = orte_init(&argc, &argv, ORTE_PROC_NON_MPI))) {
  23         fprintf(stderr, "couldn't init orte - error code %d\n", rc);
  24         return rc;
  25     }
  26 
  27     for (iter = 0; iter < 1000; ++iter) {
  28         /* setup the job object */
  29         jdata = OBJ_NEW(orte_job_t);
  30         orte_set_attribute(&jdata->attributes, ORTE_JOB_NON_ORTE_JOB, ORTE_ATTR_GLOBAL, NULL, OPAL_BOOL);
  31 
  32         /* create an app_context that defines the app to be run */
  33         app = OBJ_NEW(orte_app_context_t);
  34         app->app = strdup("hostname");
  35         opal_argv_append_nosize(&app->argv, "hostname");
  36         app->num_procs = 1;
  37 
  38         getcwd(cwd, sizeof(cwd));
  39         app->cwd = strdup(cwd);
  40 
  41         /* add the app to the job data */
  42         opal_pointer_array_add(jdata->apps, app);
  43         jdata->num_apps = 1;
  44 
  45         fprintf(stderr, "Parent: spawning child %d\n", iter);
  46         if (ORTE_SUCCESS != (rc = orte_plm.spawn(jdata))) {
  47             ORTE_ERROR_LOG(rc);
  48             exit(1);
  49         }
  50     }
  51 
  52     /* All done */
  53     orte_finalize();
  54     return 0;
  55 }

/* [<][>][^][v][top][bottom][index][help] */