/* * Copyright (c) 2016 UChicago Argonne, LLC * * See COPYRIGHT in top-level directory. */ #include #include #include #include #ifdef SSG_HAVE_MPI #include #endif #ifdef SSG_HAVE_PMIX #include #endif #include #include #ifdef SSG_HAVE_MPI #include #endif #ifdef SSG_HAVE_PMIX #include #endif #define DIE_IF(cond_expr, err_fmt, ...) \ do { \ if (cond_expr) { \ fprintf(stderr, "ERROR at %s:%d (" #cond_expr "): " \ err_fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ exit(EXIT_FAILURE); \ } \ } while(0) struct group_launch_opts { char *addr_str; char *group_mode; int shutdown_time; int kill_time; int kill_rank; }; static void usage() { fprintf(stderr, "Usage: " "ssg-launch-group [OPTIONS] \n" "Create and launch group using given Mercury ADDR string and group create MODE (\"mpi\" or \"pmix\").\n" "\n" "OPTIONS:\n" "\t-s