[mpich2-commits] r7652 - in mpich2/trunk/src/pm/hydra: include pm/pmiserv tools/bind tools/bind/hwloc tools/bind/plpa tools/bootstrap/external tools/bootstrap/persist tools/bootstrap/src tools/bootstrap/utils tools/ckpoint tools/ckpoint/blcr tools/debugger tools/demux tools/ftb tools/nameserver ui ui/include ui/mpich ui/utils utils/alloc utils/args utils/dbg utils/env utils/launch utils/others utils/signals utils/sock utils/string
balaji at mcs.anl.gov
balaji at mcs.anl.gov
Mon Jan 3 07:03:34 CST 2011
Author: balaji
Date: 2011-01-03 07:03:34 -0600 (Mon, 03 Jan 2011)
New Revision: 7652
Added:
mpich2/trunk/src/pm/hydra/include/hydra_server.h
mpich2/trunk/src/pm/hydra/ui/include/
mpich2/trunk/src/pm/hydra/ui/include/ui.h
Removed:
mpich2/trunk/src/pm/hydra/include/hydra_base.h
mpich2/trunk/src/pm/hydra/include/hydra_utils.h
Modified:
mpich2/trunk/src/pm/hydra/include/hydra.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
mpich2/trunk/src/pm/hydra/tools/bind/bind.c
mpich2/trunk/src/pm/hydra/tools/bind/bind.h
mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c
mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c
mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c
mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h
mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c
mpich2/trunk/src/pm/hydra/tools/demux/demux.h
mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h
mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c
mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c
mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c
mpich2/trunk/src/pm/hydra/ui/Makefile.mk
mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h
mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
mpich2/trunk/src/pm/hydra/ui/utils/uiu.h
mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
mpich2/trunk/src/pm/hydra/utils/args/args.c
mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c
mpich2/trunk/src/pm/hydra/utils/env/env.c
mpich2/trunk/src/pm/hydra/utils/launch/launch.c
mpich2/trunk/src/pm/hydra/utils/others/others.c
mpich2/trunk/src/pm/hydra/utils/signals/signals.c
mpich2/trunk/src/pm/hydra/utils/sock/sock.c
mpich2/trunk/src/pm/hydra/utils/string/string.c
Log:
Code-cleanup.
1. Move UI specific parameters to a different structure, so other
components don't see them.
2. Rename HYD_handle to HYD_server_info to make the data in it
clearer.
3. Rename hydra.h to hydra_server.h (this is only used by the server
side). Also make sure the proxy side code does not include it.
4. Merge hydra_base.h and hydra_utils.h and make it hydra.h, as these
are the utility functions used for both the servers and the proxies.
Modified: mpich2/trunk/src/pm/hydra/include/hydra.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,66 +7,597 @@
#ifndef HYDRA_H_INCLUDED
#define HYDRA_H_INCLUDED
+#include "mpl.h"
+
+extern char *HYD_dbg_prefix;
+
#include <stdio.h>
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra_config.h"
-struct HYD_cmd {
- enum {
- HYD_CLEANUP,
- HYD_CKPOINT
- } type;
+#if defined NEEDS_POSIX_FOR_SIGACTION
+#define _POSIX_SOURCE
+#endif /* NEEDS_POSIX_FOR_SIGACTION */
+
+#if defined HAVE_WINDOWS_H
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif /* HAVE_WINDOWS_H */
+
+#if defined HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined HAVE_STDLIB_H
+#include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+
+#if defined HAVE_STRING_H
+#include <string.h>
+#endif /* HAVE_STRING_H */
+
+#if defined HAVE_STRINGS_H
+#include <strings.h>
+#endif /* HAVE_STRINGS_H */
+
+#if defined HAVE_STDARG_H
+#include <stdarg.h>
+#endif /* HAVE_STDARG_H */
+
+#if defined HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif /* HAVE_SYS_TYPES_H */
+
+#if defined HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif /* HAVE_SYS_STAT_H */
+
+#if defined HAVE_TIME_H
+#include <time.h>
+#endif /* HAVE_TIME_H */
+
+#if defined HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif /* HAVE_SYS_TIME_H */
+
+#if defined HAVE_IFADDRS_H
+#include <ifaddrs.h>
+#endif /* HAVE_IFADDRS_H */
+
+#if defined HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif /* HAVE_ARPA_INET_H */
+
+#if defined HAVE_ERRNO_H
+#include <errno.h>
+#endif /* HAVE_ERRNO_H */
+
+#if !defined HAVE_GETTIMEOFDAY
+#error "hydra requires gettimeofday support"
+#endif /* HAVE_GETTIMEOFDAY */
+
+#if !defined HAVE_MACRO_VA_ARGS
+#error "hydra requires VA_ARGS support"
+#endif /* HAVE_MACRO_VA_ARGS */
+
+#if defined MAXHOSTNAMELEN
+#define MAX_HOSTNAME_LEN MAXHOSTNAMELEN
+#else
+#define MAX_HOSTNAME_LEN 256
+#endif /* MAXHOSTNAMELEN */
+
+#define HYDRA_MAX_PATH 4096
+
+/* sockets required headers */
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif /* HAVE_POLL_H */
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif /* HAVE_FCNTL_H */
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif /* HAVE_NETDB_H */
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif /* HAVE_NETINET_IN_H */
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif /* HAVE_NETINET_TCP_H */
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#define HYD_POLLIN (0x0001)
+#define HYD_POLLOUT (0x0002)
+#define HYD_POLLHUP (0x0004)
+
+#define HYD_TMPBUF_SIZE (64 * 1024)
+#define HYD_TMP_STRLEN 1024
+#define HYD_NUM_TMP_STRINGS 1000
+
+#define dprintf(...)
+
+#ifndef ATTRIBUTE
+#ifdef HAVE_GCC_ATTRIBUTE
+#define ATTRIBUTE(a_) __attribute__(a_)
+#else
+#define ATTRIBUTE(a_)
+#endif
+#endif
+
+#define HYD_IS_HELP(str) \
+ ((!strcmp((str), "-h")) || (!strcmp((str), "-help")) || (!strcmp((str), "--help")))
+
+#define HYD_DRAW_LINE(x) \
+ { \
+ int i_; \
+ for (i_ = 0; i_ < (x); i_++) \
+ printf("="); \
+ printf("\n"); \
+ }
+
+#define HYD_CONVERT_FALSE_TO_NULL(x) \
+ { \
+ if (!(x)) { \
+ } \
+ else if (!strcasecmp((x), "none") || !strcasecmp((x), "no") || \
+ !strcasecmp((x), "dummy") || !strcasecmp((x), "null") || \
+ !strcasecmp((x), "nil") || !strcasecmp((x), "false")) { \
+ HYDU_FREE((x)); \
+ (x) = NULL; \
+ } \
+ }
+
+#if defined MANUAL_EXTERN_ENVIRON
+extern char **environ;
+#endif /* MANUAL_EXTERN_ENVIRON */
+
+#define HYD_SILENT_ERROR(status) (((status) == HYD_GRACEFUL_ABORT) || ((status) == HYD_TIMED_OUT))
+
+#define HYDRA_NAMESERVER_DEFAULT_PORT 6392
+
+/* fd state */
+enum HYD_fd_state {
+ HYD_FD_UNSET = -1,
+ HYD_FD_CLOSED = -2
};
-struct HYD_handle {
- struct HYD_user_global user_global;
+/* Status information */
+typedef enum {
+ HYD_SUCCESS = 0,
+ HYD_FAILURE, /* general failure */
- int ppn;
+ /* Silent errors */
+ HYD_GRACEFUL_ABORT,
+ HYD_TIMED_OUT,
- char *base_path;
+ /* Regular errors */
+ HYD_NO_MEM,
+ HYD_SOCK_ERROR,
+ HYD_INVALID_PARAM,
+ HYD_INTERNAL_ERROR
+} HYD_status;
- char *port_range;
+#if defined(NEEDS_GETHOSTNAME_DECL)
+int gethostname(char *name, size_t len);
+#endif
- char *interface_env_name;
+typedef unsigned short HYD_event_t;
- char *nameserver;
+/* Argument matching functions */
+struct HYD_arg_match_table {
+ const char *arg;
+ HYD_status(*handler_fn) (char *arg, char ***argv_p);
+ void (*help_fn) (void);
+};
- char *local_hostname;
- int ckpoint_int;
+/* Environment information */
+struct HYD_env {
+ const char *env_name;
+ const char *env_value;
+ struct HYD_env *next;
+};
- int print_rank_map;
- int print_all_exitcodes;
+typedef enum HYD_env_overwrite {
+ HYD_ENV_OVERWRITE_TRUE,
+ HYD_ENV_OVERWRITE_FALSE
+} HYD_env_overwrite_t;
- int ranks_per_proc;
+typedef enum {
+ HYD_ENV_PROP_UNSET,
+ HYD_ENV_PROP_ALL,
+ HYD_ENV_PROP_NONE,
+ HYD_ENV_PROP_LIST
+} HYD_env_prop_t;
- HYD_status(*stdout_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
- HYD_status(*stderr_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+struct HYD_env_global {
+ struct HYD_env *system;
+ struct HYD_env *user;
+ struct HYD_env *inherited;
+ char *prop;
+};
- /* All of the available nodes */
- struct HYD_node *node_list;
- int global_core_count;
- enum HYD_sort_order {
- NONE = 0,
- ASCENDING = 1,
- DESCENDING = 2
- } sort_order;
+/* Executable information */
+struct HYD_exec {
+ char *exec[HYD_NUM_TMP_STRINGS];
+ char *wdir;
- /* Process groups */
- struct HYD_pg pg_list;
+ int proc_count;
+ struct HYD_env *user_env;
+ char *env_prop;
- /* Random parameters used for internal code */
- int func_depth;
+ int appnum;
- /* Cleanup */
- int cleanup_pipe[2];
+ struct HYD_exec *next;
+};
-#if defined ENABLE_PROFILING
- int enable_profiling;
- int num_pmi_calls;
-#endif /* ENABLE_PROFILING */
+/* Process group */
+struct HYD_pg {
+ int pgid;
+ struct HYD_proxy *proxy_list;
+ int pg_process_count;
+ int barrier_count;
+
+ struct HYD_pg *spawner_pg;
+
+ /* scratch space for the PM */
+ void *pg_scratch;
+
+ struct HYD_pg *next;
};
-extern struct HYD_handle HYD_handle;
+/* Information about the node itself */
+struct HYD_node {
+ char *hostname;
+ int core_count;
+ /* Node-specific binding information */
+ char *local_binding;
+
+ struct HYD_node *next;
+};
+
+/* Proxy information */
+struct HYD_proxy {
+ struct HYD_node node;
+
+ struct HYD_pg *pg; /* Back pointer to the PG */
+
+ char **exec_launch_info;
+
+ int proxy_id;
+
+ int start_pid;
+ int proxy_process_count;
+
+ struct HYD_exec *exec_list;
+
+ int *pid;
+ int *exit_status;
+ int control_fd;
+
+ struct HYD_proxy *next;
+};
+
+/* Global user parameters */
+struct HYD_user_global {
+ /* RMK */
+ char *rmk;
+
+ /* Launcher */
+ char *launcher;
+ char *launcher_exec;
+
+ /* Process binding */
+ char *binding;
+ char *bindlib;
+
+ /* Checkpoint restart */
+ char *ckpointlib;
+ char *ckpoint_prefix;
+ int ckpoint_num;
+
+ /* Demux engine */
+ char *demux;
+
+ /* Network interface */
+ char *iface;
+
+ /* Other random parameters */
+ int enablex;
+ int debug;
+
+ int auto_cleanup;
+
+ struct HYD_env_global global_env;
+};
+
+#define HYDU_dump_prefix(fp) \
+ { \
+ fprintf(fp, "[%s] ", HYD_dbg_prefix); \
+ fflush(fp); \
+ }
+
+#define HYDU_dump_noprefix(fp, ...) \
+ { \
+ fprintf(fp, __VA_ARGS__); \
+ fflush(fp); \
+ }
+
+#define HYDU_dump(fp, ...) \
+ { \
+ HYDU_dump_prefix(fp); \
+ HYDU_dump_noprefix(fp, __VA_ARGS__); \
+ }
+
+#if defined HAVE__FUNC__
+#define HYDU_FUNC __func__
+#elif defined HAVE_CAP__FUNC__
+#define HYDU_FUNC __FUNC__
+#elif defined HAVE__FUNCTION__
+#define HYDU_FUNC __FUNCTION__
+#endif
+
+#if defined __FILE__ && defined HYDU_FUNC
+#define HYDU_error_printf(...) \
+ { \
+ HYDU_dump_prefix(stderr); \
+ HYDU_dump_noprefix(stderr, "%s (%s:%d): ", __func__, __FILE__, __LINE__); \
+ HYDU_dump_noprefix(stderr, __VA_ARGS__); \
+ }
+#elif defined __FILE__
+#define HYDU_error_printf(...) \
+ { \
+ HYDU_dump_prefix(stderr); \
+ HYDU_dump_noprefix(stderr, "%s (%d): ", __FILE__, __LINE__); \
+ HYDU_dump_noprefix(stderr, __VA_ARGS__); \
+ }
+#else
+#define HYDU_error_printf(...) \
+ { \
+ HYDU_dump_prefix(stderr); \
+ HYDU_dump_noprefix(stderr, __VA_ARGS__); \
+ }
+#endif
+
+#define HYDU_ASSERT(x, status) \
+ { \
+ if (!(x)) { \
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, \
+ "assert (%s) failed\n", #x); \
+ } \
+ }
+
+#define HYDU_IGNORE_TIMEOUT(status) \
+ { \
+ if ((status) == HYD_TIMED_OUT) \
+ (status) = HYD_SUCCESS; \
+ }
+
+#define HYDU_ERR_POP(status, ...) \
+ { \
+ if (status && !HYD_SILENT_ERROR(status)) { \
+ HYDU_error_printf(__VA_ARGS__); \
+ goto fn_fail; \
+ } \
+ else if (HYD_SILENT_ERROR(status)) { \
+ goto fn_exit; \
+ } \
+ }
+
+#define HYDU_ERR_SETANDJUMP(status, error, ...) \
+ { \
+ status = error; \
+ HYDU_ERR_POP(status, __VA_ARGS__); \
+ }
+
+#define HYDU_ERR_CHKANDJUMP(status, chk, error, ...) \
+ { \
+ if ((chk)) \
+ HYDU_ERR_SETANDJUMP(status, error, __VA_ARGS__); \
+ }
+
+#if defined ENABLE_WARNINGS
+#define HYDU_warn_printf HYDU_error_printf
+#else
+#define HYDU_warn_printf(...)
+#endif /* ENABLE_WARNINGS */
+
+/* Disable for now; we might add something here in the future */
+#define HYDU_FUNC_ENTER() do {} while (0)
+#define HYDU_FUNC_EXIT() do {} while (0)
+
+
+/* alloc */
+void HYDU_init_user_global(struct HYD_user_global *user_global);
+void HYDU_finalize_user_global(struct HYD_user_global *user_global);
+void HYDU_init_global_env(struct HYD_env_global *global_env);
+void HYDU_finalize_global_env(struct HYD_env_global *global_env);
+HYD_status HYDU_alloc_node(struct HYD_node **node);
+void HYDU_free_node_list(struct HYD_node *node_list);
+void HYDU_init_pg(struct HYD_pg *pg, int pgid);
+HYD_status HYDU_alloc_pg(struct HYD_pg **pg, int pgid);
+void HYDU_free_pg_list(struct HYD_pg *pg_list);
+HYD_status HYDU_alloc_proxy(struct HYD_proxy **proxy, struct HYD_pg *pg);
+void HYDU_free_proxy_list(struct HYD_proxy *proxy_list);
+HYD_status HYDU_alloc_exec(struct HYD_exec **exec);
+void HYDU_free_exec_list(struct HYD_exec *exec_list);
+HYD_status HYDU_create_proxy_list(struct HYD_exec *exec_list, struct HYD_node *node_list,
+ struct HYD_pg *pg, int proc_offset);
+HYD_status HYDU_correct_wdir(char **wdir);
+
+/* args */
+HYD_status HYDU_find_in_path(const char *execname, char **path);
+HYD_status HYDU_parse_array(char ***argv, struct HYD_arg_match_table *match_table);
+HYD_status HYDU_set_str(char *arg, char ***argv, char **var, const char *val);
+HYD_status HYDU_set_str_and_incr(char *arg, char ***argv, char **var);
+HYD_status HYDU_set_int(char *arg, char ***argv, int *var, int val);
+HYD_status HYDU_set_int_and_incr(char *arg, char ***argv, int *var);
+char *HYDU_getcwd(void);
+HYD_status HYDU_process_mfile_token(char *token, int newline, struct HYD_node **node_list);
+HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
+ HYD_status(*process_token) (char *token, int newline,
+ struct HYD_node ** node_list));
+char *HYDU_find_full_path(const char *execname);
+HYD_status HYDU_send_strlist(int fd, char **strlist);
+
+/* debug */
+HYD_status HYDU_dbg_init(const char *str);
+void HYDU_dbg_finalize(void);
+
+/* env */
+HYD_status HYDU_env_to_str(struct HYD_env *env, char **str);
+HYD_status HYDU_list_inherited_env(struct HYD_env **env_list);
+struct HYD_env *HYDU_env_list_dup(struct HYD_env *env);
+HYD_status HYDU_env_create(struct HYD_env **env, const char *env_name, const char *env_value);
+HYD_status HYDU_env_free(struct HYD_env *env);
+HYD_status HYDU_env_free_list(struct HYD_env *env);
+struct HYD_env *HYDU_env_lookup(char *env_name, struct HYD_env *env_list);
+HYD_status HYDU_append_env_to_list(const char *env_name, const char *env_value,
+ struct HYD_env **env_list);
+HYD_status HYDU_append_env_str_to_list(char *str, struct HYD_env **env_list);
+HYD_status HYDU_putenv(struct HYD_env *env, HYD_env_overwrite_t overwrite);
+HYD_status HYDU_putenv_list(struct HYD_env *env_list, HYD_env_overwrite_t overwrite);
+HYD_status HYDU_comma_list_to_env_list(char *str, struct HYD_env **env_list);
+
+/* launch */
+struct HYDT_bind_cpuset_t;
+HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,
+ int *in, int *out, int *err, int *pid,
+ struct HYDT_bind_cpuset_t cpuset);
+
+/* others */
+int HYDU_local_to_global_id(int local_id, int start_pid, int core_count,
+ int global_core_count);
+HYD_status HYDU_add_to_node_list(const char *hostname, int num_procs,
+ struct HYD_node **node_list);
+HYD_status HYDU_gethostname(char *hostname);
+
+/* signals */
+#ifdef NEEDS_POSIX_FOR_SIGACTION
+#define _POSIX_SOURCE
+#endif
+
+#include <sys/wait.h>
+#if defined(USE_SIGNAL) || defined(USE_SIGACTION)
+#include <signal.h>
+#else
+#error no signal choice
+#endif
+#ifdef NEEDS_STRSIGNAL_DECL
+extern char *strsignal(int);
+#endif
+
+HYD_status HYDU_set_signal(int signum, void (*handler) (int));
+HYD_status HYDU_set_common_signals(void (*handler) (int));
+
+/* Sock utilities */
+enum HYDU_sock_comm_flag {
+ HYDU_SOCK_COMM_NONE = 0,
+ HYDU_SOCK_COMM_MSGWAIT = 1
+};
+
+HYD_status HYDU_sock_listen(int *listen_fd, char *port_range, uint16_t * port);
+HYD_status HYDU_sock_connect(const char *host, uint16_t port, int *fd);
+HYD_status HYDU_sock_accept(int listen_fd, int *fd);
+HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *recvd, int *closed,
+ enum HYDU_sock_comm_flag flag);
+HYD_status HYDU_sock_write(int fd, const void *buf, int maxlen, int *sent, int *closed);
+HYD_status HYDU_sock_forward_stdio(int in, int out, int *closed);
+HYD_status HYDU_sock_get_iface_ip(char *iface, char **ip);
+HYD_status HYDU_sock_is_local(char *host, int *is_local);
+HYD_status HYDU_sock_remote_access(char *host, int *remote_access);
+HYD_status
+HYDU_sock_create_and_listen_portstr(char *iface, char *hostname, char *port_range,
+ char **port_str,
+ HYD_status(*callback) (int fd, HYD_event_t events,
+ void *userp), void *userp);
+HYD_status HYDU_sock_cloexec(int fd);
+
+
+/* Memory utilities */
+#include <ctype.h>
+
+#if defined USE_MEMORY_TRACING
+
+#define HYDU_mem_init() MPL_trinit(0)
+
+#define HYDU_strdup(a) MPL_trstrdup(a,__LINE__,__FILE__)
+#ifdef strdup
+#undef strdup
+#endif
+#define strdup(a) 'Error use HYDU_strdup' :::
+
+#define HYDU_malloc(a) MPL_trmalloc((unsigned)(a),__LINE__,__FILE__)
+#define malloc(a) 'Error use HYDU_malloc' :::
+
+#define HYDU_free(a) MPL_trfree(a,__LINE__,__FILE__)
+#define free(a) 'Error use HYDU_free' :::
+
+#else /* if !defined USE_MEMORY_TRACING */
+
+#define HYDU_mem_init()
+#define HYDU_strdup MPL_strdup
+#define HYDU_malloc malloc
+#define HYDU_free free
+
+#endif /* USE_MEMORY_TRACING */
+
+#define HYDU_snprintf MPL_snprintf
+
+#define HYDU_MALLOC(p, type, size, status) \
+ { \
+ (p) = (type) HYDU_malloc((size)); \
+ if ((p) == NULL) \
+ HYDU_ERR_SETANDJUMP((status), HYD_NO_MEM, \
+ "failed to allocate %d bytes\n", \
+ (int) (size)); \
+ }
+
+#define HYDU_FREE(p) \
+ { \
+ HYDU_free((void *) p); \
+ }
+
+#define HYDU_STRLIST_CONSOLIDATE(strlist, i, status) \
+ { \
+ char *out; \
+ if ((i) >= (HYD_NUM_TMP_STRINGS / 2)) { \
+ (strlist)[(i)] = NULL; \
+ (status) = HYDU_str_alloc_and_join((strlist), &out); \
+ HYDU_ERR_POP((status), "unable to join strings\n"); \
+ HYDU_free_strlist((strlist)); \
+ strlist[0] = out; \
+ (i) = 1; \
+ } \
+ }
+
+#define HYD_GET_ENV_STR_VAL(lvalue_, env_var_name_, default_val_) \
+ do { \
+ if (lvalue_ == NULL) { \
+ const char *tmp_ = (default_val_); \
+ MPL_env2str(env_var_name_, (const char **) &tmp_); \
+ if (tmp_) \
+ lvalue_ = HYDU_strdup(tmp_); \
+ } \
+ } while (0)
+
+HYD_status HYDU_list_append_strlist(char **exec, char **client_arg);
+HYD_status HYDU_print_strlist(char **args);
+void HYDU_free_strlist(char **args);
+HYD_status HYDU_str_alloc_and_join(char **strlist, char **strjoin);
+HYD_status HYDU_strsplit(char *str, char **str1, char **str2, char sep);
+HYD_status HYDU_strdup_list(char *src[], char **dest[]);
+char *HYDU_int_to_str(int x);
+char *HYDU_int_to_str_pad(int x, int maxlen);
+char *HYDU_strerror(int error);
+int HYDU_strlist_lastidx(char **strlist);
+char **HYDU_str_to_strlist(char *str);
+
+/*!
+ * @}
+ */
+
#endif /* HYDRA_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/include/hydra_base.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_base.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra_base.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -1,314 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef HYDRA_BASE_H_INCLUDED
-#define HYDRA_BASE_H_INCLUDED
-
-#include <stdio.h>
-#include "hydra_config.h"
-
-#if defined NEEDS_POSIX_FOR_SIGACTION
-#define _POSIX_SOURCE
-#endif /* NEEDS_POSIX_FOR_SIGACTION */
-
-#if defined HAVE_WINDOWS_H
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#endif /* HAVE_WINDOWS_H */
-
-#if defined HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined HAVE_STDLIB_H
-#include <stdlib.h>
-#endif /* HAVE_STDLIB_H */
-
-#if defined HAVE_STRING_H
-#include <string.h>
-#endif /* HAVE_STRING_H */
-
-#if defined HAVE_STRINGS_H
-#include <strings.h>
-#endif /* HAVE_STRINGS_H */
-
-#if defined HAVE_STDARG_H
-#include <stdarg.h>
-#endif /* HAVE_STDARG_H */
-
-#if defined HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif /* HAVE_SYS_TYPES_H */
-
-#if defined HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif /* HAVE_SYS_STAT_H */
-
-#if defined HAVE_TIME_H
-#include <time.h>
-#endif /* HAVE_TIME_H */
-
-#if defined HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-
-#if defined HAVE_IFADDRS_H
-#include <ifaddrs.h>
-#endif /* HAVE_IFADDRS_H */
-
-#if defined HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif /* HAVE_ARPA_INET_H */
-
-#if defined HAVE_ERRNO_H
-#include <errno.h>
-#endif /* HAVE_ERRNO_H */
-
-#if !defined HAVE_GETTIMEOFDAY
-#error "hydra requires gettimeofday support"
-#endif /* HAVE_GETTIMEOFDAY */
-
-#if !defined HAVE_MACRO_VA_ARGS
-#error "hydra requires VA_ARGS support"
-#endif /* HAVE_MACRO_VA_ARGS */
-
-#if defined MAXHOSTNAMELEN
-#define MAX_HOSTNAME_LEN MAXHOSTNAMELEN
-#else
-#define MAX_HOSTNAME_LEN 256
-#endif /* MAXHOSTNAMELEN */
-
-#define HYDRA_MAX_PATH 4096
-
-/* sockets required headers */
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#endif /* HAVE_POLL_H */
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif /* HAVE_FCNTL_H */
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif /* HAVE_NETDB_H */
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif /* HAVE_NETINET_IN_H */
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif /* HAVE_NETINET_TCP_H */
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#define HYD_POLLIN (0x0001)
-#define HYD_POLLOUT (0x0002)
-#define HYD_POLLHUP (0x0004)
-
-#define HYD_TMPBUF_SIZE (64 * 1024)
-#define HYD_TMP_STRLEN 1024
-#define HYD_NUM_TMP_STRINGS 1000
-
-#define dprintf(...)
-
-#ifndef ATTRIBUTE
-#ifdef HAVE_GCC_ATTRIBUTE
-#define ATTRIBUTE(a_) __attribute__(a_)
-#else
-#define ATTRIBUTE(a_)
-#endif
-#endif
-
-#define HYD_IS_HELP(str) \
- ((!strcmp((str), "-h")) || (!strcmp((str), "-help")) || (!strcmp((str), "--help")))
-
-#define HYD_DRAW_LINE(x) \
- { \
- int i_; \
- for (i_ = 0; i_ < (x); i_++) \
- printf("="); \
- printf("\n"); \
- }
-
-#define HYD_CONVERT_FALSE_TO_NULL(x) \
- { \
- if (!(x)) { \
- } \
- else if (!strcasecmp((x), "none") || !strcasecmp((x), "no") || \
- !strcasecmp((x), "dummy") || !strcasecmp((x), "null") || \
- !strcasecmp((x), "nil") || !strcasecmp((x), "false")) { \
- HYDU_FREE((x)); \
- (x) = NULL; \
- } \
- }
-
-#if defined MANUAL_EXTERN_ENVIRON
-extern char **environ;
-#endif /* MANUAL_EXTERN_ENVIRON */
-
-#define HYD_SILENT_ERROR(status) (((status) == HYD_GRACEFUL_ABORT) || ((status) == HYD_TIMED_OUT))
-
-#define HYDRA_NAMESERVER_DEFAULT_PORT 6392
-
-/* fd state */
-enum HYD_fd_state {
- HYD_FD_UNSET = -1,
- HYD_FD_CLOSED = -2
-};
-
-/* Status information */
-typedef enum {
- HYD_SUCCESS = 0,
- HYD_FAILURE, /* general failure */
-
- /* Silent errors */
- HYD_GRACEFUL_ABORT,
- HYD_TIMED_OUT,
-
- /* Regular errors */
- HYD_NO_MEM,
- HYD_SOCK_ERROR,
- HYD_INVALID_PARAM,
- HYD_INTERNAL_ERROR
-} HYD_status;
-
-#if defined(NEEDS_GETHOSTNAME_DECL)
-int gethostname(char *name, size_t len);
-#endif
-
-typedef unsigned short HYD_event_t;
-
-/* Argument matching functions */
-struct HYD_arg_match_table {
- const char *arg;
- HYD_status(*handler_fn) (char *arg, char ***argv_p);
- void (*help_fn) (void);
-};
-
-
-/* Environment information */
-struct HYD_env {
- const char *env_name;
- const char *env_value;
- struct HYD_env *next;
-};
-
-typedef enum HYD_env_overwrite {
- HYD_ENV_OVERWRITE_TRUE,
- HYD_ENV_OVERWRITE_FALSE
-} HYD_env_overwrite_t;
-
-typedef enum {
- HYD_ENV_PROP_UNSET,
- HYD_ENV_PROP_ALL,
- HYD_ENV_PROP_NONE,
- HYD_ENV_PROP_LIST
-} HYD_env_prop_t;
-
-struct HYD_env_global {
- struct HYD_env *system;
- struct HYD_env *user;
- struct HYD_env *inherited;
- char *prop;
-};
-
-/* Executable information */
-struct HYD_exec {
- char *exec[HYD_NUM_TMP_STRINGS];
- char *wdir;
-
- int proc_count;
- struct HYD_env *user_env;
- char *env_prop;
-
- int appnum;
-
- struct HYD_exec *next;
-};
-
-/* Process group */
-struct HYD_pg {
- int pgid;
- struct HYD_proxy *proxy_list;
- int pg_process_count;
- int barrier_count;
-
- struct HYD_pg *spawner_pg;
-
- /* scratch space for the PM */
- void *pg_scratch;
-
- struct HYD_pg *next;
-};
-
-/* Information about the node itself */
-struct HYD_node {
- char *hostname;
- int core_count;
-
- /* Node-specific binding information */
- char *local_binding;
-
- struct HYD_node *next;
-};
-
-/* Proxy information */
-struct HYD_proxy {
- struct HYD_node node;
-
- struct HYD_pg *pg; /* Back pointer to the PG */
-
- char **exec_launch_info;
-
- int proxy_id;
-
- int start_pid;
- int proxy_process_count;
-
- struct HYD_exec *exec_list;
-
- int *pid;
- int *exit_status;
- int control_fd;
-
- struct HYD_proxy *next;
-};
-
-/* Global user parameters */
-struct HYD_user_global {
- /* RMK */
- char *rmk;
-
- /* Launcher */
- char *launcher;
- char *launcher_exec;
-
- /* Process binding */
- char *binding;
- char *bindlib;
-
- /* Checkpoint restart */
- char *ckpointlib;
- char *ckpoint_prefix;
- int ckpoint_num;
-
- /* Demux engine */
- char *demux;
-
- /* Network interface */
- char *iface;
-
- /* Other random parameters */
- int prepend_rank;
- int enablex;
- int debug;
-
- int auto_cleanup;
-
- struct HYD_env_global global_env;
-};
-
-#endif /* HYDRA_BASE_H_INCLUDED */
Copied: mpich2/trunk/src/pm/hydra/include/hydra_server.h (from rev 7651, mpich2/trunk/src/pm/hydra/include/hydra.h)
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_server.h (rev 0)
+++ mpich2/trunk/src/pm/hydra/include/hydra_server.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -0,0 +1,50 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2008 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#ifndef HYDRA_SERVER_H_INCLUDED
+#define HYDRA_SERVER_H_INCLUDED
+
+#include "hydra.h"
+
+/* Interaction commands between the UI and the proxy */
+struct HYD_cmd {
+ enum {
+ HYD_CLEANUP,
+ HYD_CKPOINT
+ } type;
+};
+
+struct HYD_server_info {
+ struct HYD_user_global user_global;
+
+ char *base_path;
+ char *port_range;
+ char *interface_env_name;
+ char *nameserver;
+ char *local_hostname;
+
+ HYD_status(*stdout_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+ HYD_status(*stderr_cb) (int pgid, int proxy_id, int rank, void *buf, int buflen);
+
+ /* All of the available nodes */
+ struct HYD_node *node_list;
+ int global_core_count;
+
+ /* Process groups */
+ struct HYD_pg pg_list;
+
+ /* Cleanup */
+ int cleanup_pipe[2];
+
+#if defined ENABLE_PROFILING
+ int enable_profiling;
+ int num_pmi_calls;
+#endif /* ENABLE_PROFILING */
+};
+
+extern struct HYD_server_info HYD_server_info;
+
+#endif /* HYDRA_SERVER_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/include/hydra_utils.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -1,301 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef HYDRA_UTILS_H_INCLUDED
-#define HYDRA_UTILS_H_INCLUDED
-
-#include "hydra_base.h"
-#include "mpl.h"
-
-extern char *HYD_dbg_prefix;
-
-#define HYDU_dump_prefix(fp) \
- { \
- fprintf(fp, "[%s] ", HYD_dbg_prefix); \
- fflush(fp); \
- }
-
-#define HYDU_dump_noprefix(fp, ...) \
- { \
- fprintf(fp, __VA_ARGS__); \
- fflush(fp); \
- }
-
-#define HYDU_dump(fp, ...) \
- { \
- HYDU_dump_prefix(fp); \
- HYDU_dump_noprefix(fp, __VA_ARGS__); \
- }
-
-#if defined HAVE__FUNC__
-#define HYDU_FUNC __func__
-#elif defined HAVE_CAP__FUNC__
-#define HYDU_FUNC __FUNC__
-#elif defined HAVE__FUNCTION__
-#define HYDU_FUNC __FUNCTION__
-#endif
-
-#if defined __FILE__ && defined HYDU_FUNC
-#define HYDU_error_printf(...) \
- { \
- HYDU_dump_prefix(stderr); \
- HYDU_dump_noprefix(stderr, "%s (%s:%d): ", __func__, __FILE__, __LINE__); \
- HYDU_dump_noprefix(stderr, __VA_ARGS__); \
- }
-#elif defined __FILE__
-#define HYDU_error_printf(...) \
- { \
- HYDU_dump_prefix(stderr); \
- HYDU_dump_noprefix(stderr, "%s (%d): ", __FILE__, __LINE__); \
- HYDU_dump_noprefix(stderr, __VA_ARGS__); \
- }
-#else
-#define HYDU_error_printf(...) \
- { \
- HYDU_dump_prefix(stderr); \
- HYDU_dump_noprefix(stderr, __VA_ARGS__); \
- }
-#endif
-
-#define HYDU_ASSERT(x, status) \
- { \
- if (!(x)) { \
- HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, \
- "assert (%s) failed\n", #x); \
- } \
- }
-
-#define HYDU_IGNORE_TIMEOUT(status) \
- { \
- if ((status) == HYD_TIMED_OUT) \
- (status) = HYD_SUCCESS; \
- }
-
-#define HYDU_ERR_POP(status, ...) \
- { \
- if (status && !HYD_SILENT_ERROR(status)) { \
- HYDU_error_printf(__VA_ARGS__); \
- goto fn_fail; \
- } \
- else if (HYD_SILENT_ERROR(status)) { \
- goto fn_exit; \
- } \
- }
-
-#define HYDU_ERR_SETANDJUMP(status, error, ...) \
- { \
- status = error; \
- HYDU_ERR_POP(status, __VA_ARGS__); \
- }
-
-#define HYDU_ERR_CHKANDJUMP(status, chk, error, ...) \
- { \
- if ((chk)) \
- HYDU_ERR_SETANDJUMP(status, error, __VA_ARGS__); \
- }
-
-#if defined ENABLE_WARNINGS
-#define HYDU_warn_printf HYDU_error_printf
-#else
-#define HYDU_warn_printf(...)
-#endif /* ENABLE_WARNINGS */
-
-/* Disable for now; we might add something here in the future */
-#define HYDU_FUNC_ENTER() do {} while (0)
-#define HYDU_FUNC_EXIT() do {} while (0)
-
-
-/* alloc */
-void HYDU_init_user_global(struct HYD_user_global *user_global);
-void HYDU_finalize_user_global(struct HYD_user_global *user_global);
-void HYDU_init_global_env(struct HYD_env_global *global_env);
-void HYDU_finalize_global_env(struct HYD_env_global *global_env);
-HYD_status HYDU_alloc_node(struct HYD_node **node);
-void HYDU_free_node_list(struct HYD_node *node_list);
-void HYDU_init_pg(struct HYD_pg *pg, int pgid);
-HYD_status HYDU_alloc_pg(struct HYD_pg **pg, int pgid);
-void HYDU_free_pg_list(struct HYD_pg *pg_list);
-HYD_status HYDU_alloc_proxy(struct HYD_proxy **proxy, struct HYD_pg *pg);
-void HYDU_free_proxy_list(struct HYD_proxy *proxy_list);
-HYD_status HYDU_alloc_exec(struct HYD_exec **exec);
-void HYDU_free_exec_list(struct HYD_exec *exec_list);
-HYD_status HYDU_create_proxy_list(struct HYD_exec *exec_list, struct HYD_node *node_list,
- struct HYD_pg *pg, int proc_offset);
-HYD_status HYDU_correct_wdir(char **wdir);
-
-/* args */
-HYD_status HYDU_find_in_path(const char *execname, char **path);
-HYD_status HYDU_parse_array(char ***argv, struct HYD_arg_match_table *match_table);
-HYD_status HYDU_set_str(char *arg, char ***argv, char **var, const char *val);
-HYD_status HYDU_set_str_and_incr(char *arg, char ***argv, char **var);
-HYD_status HYDU_set_int(char *arg, char ***argv, int *var, int val);
-HYD_status HYDU_set_int_and_incr(char *arg, char ***argv, int *var);
-char *HYDU_getcwd(void);
-HYD_status HYDU_process_mfile_token(char *token, int newline, struct HYD_node **node_list);
-HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
- HYD_status(*process_token) (char *token, int newline,
- struct HYD_node **node_list));
-char *HYDU_find_full_path(const char *execname);
-HYD_status HYDU_send_strlist(int fd, char **strlist);
-
-/* debug */
-HYD_status HYDU_dbg_init(const char *str);
-void HYDU_dbg_finalize(void);
-
-/* env */
-HYD_status HYDU_env_to_str(struct HYD_env *env, char **str);
-HYD_status HYDU_list_inherited_env(struct HYD_env **env_list);
-struct HYD_env *HYDU_env_list_dup(struct HYD_env *env);
-HYD_status HYDU_env_create(struct HYD_env **env, const char *env_name, const char *env_value);
-HYD_status HYDU_env_free(struct HYD_env *env);
-HYD_status HYDU_env_free_list(struct HYD_env *env);
-struct HYD_env *HYDU_env_lookup(char *env_name, struct HYD_env *env_list);
-HYD_status HYDU_append_env_to_list(const char *env_name, const char *env_value,
- struct HYD_env **env_list);
-HYD_status HYDU_append_env_str_to_list(char *str, struct HYD_env **env_list);
-HYD_status HYDU_putenv(struct HYD_env *env, HYD_env_overwrite_t overwrite);
-HYD_status HYDU_putenv_list(struct HYD_env *env_list, HYD_env_overwrite_t overwrite);
-HYD_status HYDU_comma_list_to_env_list(char *str, struct HYD_env **env_list);
-
-/* launch */
-struct HYDT_bind_cpuset_t;
-HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,
- int *in, int *out, int *err, int *pid,
- struct HYDT_bind_cpuset_t cpuset);
-
-/* others */
-int HYDU_local_to_global_id(int local_id, int start_pid, int core_count,
- int global_core_count);
-HYD_status HYDU_add_to_node_list(const char *hostname, int num_procs,
- struct HYD_node **node_list);
-HYD_status HYDU_gethostname(char *hostname);
-
-/* signals */
-#ifdef NEEDS_POSIX_FOR_SIGACTION
-#define _POSIX_SOURCE
-#endif
-
-#include <sys/wait.h>
-#if defined(USE_SIGNAL) || defined(USE_SIGACTION)
-#include <signal.h>
-#else
-#error no signal choice
-#endif
-#ifdef NEEDS_STRSIGNAL_DECL
-extern char *strsignal(int);
-#endif
-
-HYD_status HYDU_set_signal(int signum, void (*handler) (int));
-HYD_status HYDU_set_common_signals(void (*handler) (int));
-
-/* Sock utilities */
-enum HYDU_sock_comm_flag {
- HYDU_SOCK_COMM_NONE = 0,
- HYDU_SOCK_COMM_MSGWAIT = 1
-};
-
-HYD_status HYDU_sock_listen(int *listen_fd, char *port_range, uint16_t * port);
-HYD_status HYDU_sock_connect(const char *host, uint16_t port, int *fd);
-HYD_status HYDU_sock_accept(int listen_fd, int *fd);
-HYD_status HYDU_sock_read(int fd, void *buf, int maxlen, int *recvd, int *closed,
- enum HYDU_sock_comm_flag flag);
-HYD_status HYDU_sock_write(int fd, const void *buf, int maxlen, int *sent, int *closed);
-HYD_status HYDU_sock_forward_stdio(int in, int out, int *closed);
-HYD_status HYDU_sock_get_iface_ip(char *iface, char **ip);
-HYD_status HYDU_sock_is_local(char *host, int *is_local);
-HYD_status HYDU_sock_remote_access(char *host, int *remote_access);
-HYD_status
-HYDU_sock_create_and_listen_portstr(char *iface, char *hostname, char *port_range,
- char **port_str,
- HYD_status(*callback) (int fd, HYD_event_t events,
- void *userp), void *userp);
-HYD_status HYDU_sock_cloexec(int fd);
-
-
-/* Memory utilities */
-#include <ctype.h>
-
-#if defined USE_MEMORY_TRACING
-
-#define HYDU_mem_init() MPL_trinit(0)
-
-#define HYDU_strdup(a) MPL_trstrdup(a,__LINE__,__FILE__)
-#ifdef strdup
-#undef strdup
-#endif
-#define strdup(a) 'Error use HYDU_strdup' :::
-
-#define HYDU_malloc(a) MPL_trmalloc((unsigned)(a),__LINE__,__FILE__)
-#define malloc(a) 'Error use HYDU_malloc' :::
-
-#define HYDU_free(a) MPL_trfree(a,__LINE__,__FILE__)
-#define free(a) 'Error use HYDU_free' :::
-
-#else /* if !defined USE_MEMORY_TRACING */
-
-#define HYDU_mem_init()
-#define HYDU_strdup MPL_strdup
-#define HYDU_malloc malloc
-#define HYDU_free free
-
-#endif /* USE_MEMORY_TRACING */
-
-#define HYDU_snprintf MPL_snprintf
-
-#define HYDU_MALLOC(p, type, size, status) \
- { \
- (p) = (type) HYDU_malloc((size)); \
- if ((p) == NULL) \
- HYDU_ERR_SETANDJUMP((status), HYD_NO_MEM, \
- "failed to allocate %d bytes\n", \
- (int) (size)); \
- }
-
-#define HYDU_FREE(p) \
- { \
- HYDU_free((void *) p); \
- }
-
-#define HYDU_STRLIST_CONSOLIDATE(strlist, i, status) \
- { \
- char *out; \
- if ((i) >= (HYD_NUM_TMP_STRINGS / 2)) { \
- (strlist)[(i)] = NULL; \
- (status) = HYDU_str_alloc_and_join((strlist), &out); \
- HYDU_ERR_POP((status), "unable to join strings\n"); \
- HYDU_free_strlist((strlist)); \
- strlist[0] = out; \
- (i) = 1; \
- } \
- }
-
-#define HYD_GET_ENV_STR_VAL(lvalue_, env_var_name_, default_val_) \
- do { \
- if (lvalue_ == NULL) { \
- const char *tmp_ = (default_val_); \
- MPL_env2str(env_var_name_, (const char **) &tmp_); \
- if (tmp_) \
- lvalue_ = HYDU_strdup(tmp_); \
- } \
- } while (0)
-
-HYD_status HYDU_list_append_strlist(char **exec, char **client_arg);
-HYD_status HYDU_print_strlist(char **args);
-void HYDU_free_strlist(char **args);
-HYD_status HYDU_str_alloc_and_join(char **strlist, char **strjoin);
-HYD_status HYDU_strsplit(char *str, char **str1, char **str2, char sep);
-HYD_status HYDU_strdup_list(char *src[], char **dest[]);
-char *HYDU_int_to_str(int x);
-char *HYDU_int_to_str_pad(int x, int maxlen);
-char *HYDU_strerror(int error);
-int HYDU_strlist_lastidx(char **strlist);
-char **HYDU_str_to_strlist(char *str);
-
-/*!
- * @}
- */
-
-#endif /* HYDRA_UTILS_H_INCLUDED */
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/common.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "common.h"
#include "bind.h"
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/common.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
#ifndef COMMON_H_INCLUDED
#define COMMON_H_INCLUDED
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
/* Generic definitions */
#define MAXKEYLEN 64 /* max length of key in keyval space */
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
*/
#include "hydra.h"
-#include "hydra_utils.h"
#include "bsci.h"
#include "pmiserv_pmi.h"
#include "pmi_v2_common.h"
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_v2_common.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
#ifndef PMI_V2_COMMON_H_INCLUDED
#define PMI_V2_COMMON_H_INCLUDED
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
struct HYD_pmcd_pmi_v2_reqs {
int fd;
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
*/
#include "hydra.h"
-#include "hydra_utils.h"
#include "pmip.h"
#include "demux.h"
#include "bsci.h"
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
#ifndef PMIP_H_INCLUDED
#define PMIP_H_INCLUDED
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "common.h"
struct HYD_pmcd_pmip {
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_cb.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -5,7 +5,6 @@
*/
#include "hydra.h"
-#include "hydra_utils.h"
#include "pmip.h"
#include "pmip_pmi.h"
#include "ckpoint.h"
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef PMIP_PMI_H_INCLUDED
#define PMIP_PMI_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
#include "common.h"
/* PMI-1 specific definitions */
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -160,7 +160,7 @@
tmp[i++] = HYDU_strdup("cmd=initack\ncmd=set size=");
tmp[i++] = HYDU_int_to_str(HYD_pmcd_pmip.system_global.global_process_count);
- /* FIXME: allow for ranks_per_proc */
+ /* FIXME: allow for multiple ranks per PMI ID */
tmp[i++] = HYDU_strdup("\ncmd=set rank=");
tmp[i++] = HYDU_int_to_str(id);
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v2.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -170,7 +170,7 @@
HYD_pmcd_pmip.downstream.pmi_fd[i] = fd;
i = 0;
- /* FIXME: add support for ranks_per_proc */
+ /* FIXME: allow for multiple ranks per PMI ID */
tmp[i++] = HYDU_strdup("cmd=fullinit-response;pmi-version=2;pmi-subversion=0;rank=");
tmp[i++] = HYDU_int_to_str(id);
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
#include "bind.h"
#include "ckpoint.h"
#include "demux.h"
-#include "hydra_utils.h"
+#include "hydra.h"
struct HYD_pmcd_pmip HYD_pmcd_pmip;
@@ -93,11 +93,6 @@
return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.iface);
}
-static HYD_status prepend_rank_fn(char *arg, char ***argv)
-{
- return HYDU_set_int(arg, argv, &HYD_pmcd_pmip.user_global.prepend_rank, 1);
-}
-
static HYD_status enable_stdin_fn(char *arg, char ***argv)
{
return HYDU_set_int_and_incr(arg, argv, &HYD_pmcd_pmip.system_global.enable_stdin);
@@ -398,7 +393,6 @@
{"launcher-exec", launcher_exec_fn, NULL},
{"demux", demux_fn, NULL},
{"iface", iface_fn, NULL},
- {"prepend-rank", prepend_rank_fn, NULL},
{"enable-stdin", enable_stdin_fn, NULL},
{"auto-cleanup", auto_cleanup_fn, NULL},
@@ -467,9 +461,6 @@
if (HYD_pmcd_pmip.user_global.debug == -1)
HYD_pmcd_pmip.user_global.debug = 0;
- if (HYD_pmcd_pmip.user_global.prepend_rank == -1)
- HYD_pmcd_pmip.user_global.prepend_rank = 0;
-
status = HYDT_bsci_init(HYD_pmcd_pmip.user_global.rmk,
HYD_pmcd_pmip.user_global.launcher,
HYD_pmcd_pmip.user_global.launcher_exec,
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_cb.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "pmci.h"
#include "bsci.h"
#include "debugger.h"
@@ -26,15 +26,15 @@
else
HYD_pmcd_pmi_handle = HYD_pmcd_pmi_v2;
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "[pgid: %d] got PMI command: %s\n", pgid, buf);
status = HYD_pmcd_pmi_parse_pmi_cmd(buf, pmi_version, &cmd, args);
HYDU_ERR_POP(status, "unable to parse PMI command\n");
#if defined ENABLE_PROFILING
- if (HYD_handle.enable_profiling)
- HYD_handle.num_pmi_calls++;
+ if (HYD_server_info.enable_profiling)
+ HYD_server_info.num_pmi_calls++;
#endif /* ENABLE_PROFILING */
h = HYD_pmcd_pmi_handle;
@@ -143,7 +143,7 @@
HYDU_ERR_POP(status, "unable to read command from proxy\n");
HYDU_ASSERT(!closed, status)
- if (hdr.cmd == PID_LIST) { /* Got PIDs */
+ if (hdr.cmd == PID_LIST) { /* Got PIDs */
HYDU_MALLOC(proxy->pid, int *, proxy->proxy_process_count * sizeof(int), status);
status = HYDU_sock_read(fd, (void *) proxy->pid,
proxy->proxy_process_count * sizeof(int),
@@ -167,10 +167,12 @@
HYDU_ERR_POP(status, "debugger setup failed\n");
}
else if (hdr.cmd == EXIT_STATUS) {
- HYDU_MALLOC(proxy->exit_status, int *, proxy->proxy_process_count * sizeof(int), status);
- status = HYDU_sock_read(fd, (void *) proxy->exit_status,
- proxy->proxy_process_count * sizeof(int),
- &count, &closed, HYDU_SOCK_COMM_MSGWAIT);
+ HYDU_MALLOC(proxy->exit_status, int *, proxy->proxy_process_count * sizeof(int),
+ status);
+ status =
+ HYDU_sock_read(fd, (void *) proxy->exit_status,
+ proxy->proxy_process_count * sizeof(int), &count, &closed,
+ HYDU_SOCK_COMM_MSGWAIT);
HYDU_ERR_POP(status, "unable to read status from proxy\n");
HYDU_ASSERT(!closed, status);
@@ -179,7 +181,7 @@
/* If any of the processes aborted, cleanup the remaining
* processes */
- if (HYD_handle.user_global.auto_cleanup) {
+ if (HYD_server_info.user_global.auto_cleanup) {
for (i = 0; i < proxy->proxy_process_count; i++) {
if (proxy->exit_status[i]) {
status = HYD_pmcd_pmiserv_cleanup_pg(proxy->pg);
@@ -211,15 +213,17 @@
HYDU_ASSERT(!closed, status);
if (hdr.cmd == STDOUT)
- status = HYD_handle.stdout_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
+ status =
+ HYD_server_info.stdout_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
else
- status = HYD_handle.stderr_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
+ status =
+ HYD_server_info.stderr_cb(hdr.pgid, hdr.proxy_id, hdr.rank, buf, hdr.buflen);
HYDU_ERR_POP(status, "error in the UI defined callback\n");
HYDU_FREE(buf);
}
else if (hdr.cmd == PROCESS_TERMINATED) {
- if (HYD_handle.user_global.auto_cleanup == 0) {
+ if (HYD_server_info.user_global.auto_cleanup == 0) {
/* Update the map of the alive processes */
pg_scratch = (struct HYD_pmcd_pmi_pg_scratch *) proxy->pg->pg_scratch;
pg_scratch->dead_process_count++;
@@ -333,7 +337,7 @@
pg_scratch->dead_processes = str;
}
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
for (tproxy = pg->proxy_list; tproxy; tproxy = tproxy->next) {
if (tproxy->control_fd == HYD_FD_UNSET ||
tproxy->control_fd == HYD_FD_CLOSED)
@@ -409,7 +413,7 @@
HYDU_ASSERT(!closed, status);
/* Find the process group */
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
if (pg->pgid == pgid)
break;
if (!pg)
@@ -458,7 +462,7 @@
pgid = ((int) (size_t) userp);
/* Find the process group */
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
if (pg->pgid == pgid)
break;
if (!pg)
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "pmci.h"
#include "pmiserv_pmi.h"
#include "bsci.h"
@@ -20,7 +20,7 @@
HYDU_FUNC_ENTER();
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
status = HYD_pmcd_pmiserv_cleanup_pg(pg);
HYDU_ERR_POP(status, "unable to cleanup PG\n");
}
@@ -54,7 +54,7 @@
static HYD_status send_cmd_to_proxies(struct HYD_pmcd_hdr hdr)
{
- struct HYD_pg *pg = &HYD_handle.pg_list;
+ struct HYD_pg *pg = &HYD_server_info.pg_list;
struct HYD_proxy *proxy;
int sent, closed;
HYD_status status = HYD_SUCCESS;
@@ -123,16 +123,17 @@
HYDU_FUNC_ENTER();
- status = HYDT_dmx_register_fd(1, &HYD_handle.cleanup_pipe[0], POLLIN, NULL, ui_cmd_cb);
+ status =
+ HYDT_dmx_register_fd(1, &HYD_server_info.cleanup_pipe[0], POLLIN, NULL, ui_cmd_cb);
HYDU_ERR_POP(status, "unable to register fd\n");
- status = HYD_pmcd_pmi_alloc_pg_scratch(&HYD_handle.pg_list);
+ status = HYD_pmcd_pmi_alloc_pg_scratch(&HYD_server_info.pg_list);
HYDU_ERR_POP(status, "error allocating pg scratch space\n");
/* Copy the host list to pass to the launcher */
node_list = NULL;
node_count = 0;
- for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+ for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
HYDU_alloc_node(&node);
node->hostname = HYDU_strdup(proxy->node.hostname);
node->core_count = proxy->node.core_count;
@@ -149,19 +150,19 @@
node_count++;
}
- status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
- HYD_handle.local_hostname,
- HYD_handle.port_range, &control_port,
+ status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+ HYD_server_info.local_hostname,
+ HYD_server_info.port_range, &control_port,
HYD_pmcd_pmiserv_control_listen_cb,
(void *) (size_t) 0);
HYDU_ERR_POP(status, "unable to create PMI port\n");
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
status = HYD_pmcd_pmi_fill_in_proxy_args(proxy_args, control_port, 0);
HYDU_ERR_POP(status, "unable to fill in proxy arguments\n");
- status = HYD_pmcd_pmi_fill_in_exec_launch_info(&HYD_handle.pg_list);
+ status = HYD_pmcd_pmi_fill_in_exec_launch_info(&HYD_server_info.pg_list);
HYDU_ERR_POP(status, "unable to fill in executable arguments\n");
status = HYDT_dmx_stdin_valid(&enable_stdin);
@@ -171,13 +172,15 @@
for (i = 0; i < node_count; i++)
control_fd[i] = HYD_FD_UNSET;
- status = HYDT_bind_init(HYD_handle.user_global.binding, HYD_handle.user_global.bindlib);
+ status =
+ HYDT_bind_init(HYD_server_info.user_global.binding,
+ HYD_server_info.user_global.bindlib);
HYDU_ERR_POP(status, "unable to initializing binding library");
status = HYDT_bsci_launch_procs(proxy_args, node_list, control_fd, enable_stdin);
HYDU_ERR_POP(status, "launcher cannot launch processes\n");
- for (i = 0, proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next, i++)
+ for (i = 0, proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next, i++)
if (control_fd[i] != HYD_FD_UNSET) {
proxy->control_fd = control_fd[i];
@@ -210,7 +213,7 @@
/* We first wait for the exit statuses to arrive till the timeout
* period */
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next) {
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next) {
pg_scratch = (struct HYD_pmcd_pmi_pg_scratch *) pg->pg_scratch;
while (pg_scratch->control_listen_fd != HYD_FD_CLOSED) {
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra.h"
+#include "hydra_server.h"
#include "pmiserv_pmi.h"
#include "pmiserv_utils.h"
@@ -17,7 +17,7 @@
struct HYD_pg *pg;
struct HYD_proxy *proxy;
- for (pg = &HYD_handle.pg_list; pg; pg = pg->next)
+ for (pg = &HYD_server_info.pg_list; pg; pg = pg->next)
for (proxy = pg->proxy_list; proxy; proxy = proxy->next)
if (proxy->control_fd == fd)
return proxy;
@@ -69,7 +69,7 @@
HYDU_FUNC_ENTER();
- if (HYD_handle.nameserver == NULL) {
+ if (HYD_server_info.nameserver == NULL) {
/* no external nameserver available */
for (r = HYD_pmcd_pmi_publish_list; r; r = r->next)
if (!strcmp(r->name, name))
@@ -101,7 +101,7 @@
/* connect to the external nameserver and store the
* information there */
- ns = HYDU_strdup(HYD_handle.nameserver);
+ ns = HYDU_strdup(HYD_server_info.nameserver);
ns_host = strtok(ns, ":");
HYDU_ASSERT(ns_host, status);
@@ -163,7 +163,7 @@
HYDU_FUNC_ENTER();
*success = 0;
- if (HYD_handle.nameserver == NULL) {
+ if (HYD_server_info.nameserver == NULL) {
/* no external nameserver available */
if (!strcmp(HYD_pmcd_pmi_publish_list->name, name)) {
publish = HYD_pmcd_pmi_publish_list;
@@ -199,7 +199,7 @@
/* connect to the external nameserver and get the information
* from there */
- ns = HYDU_strdup(HYD_handle.nameserver);
+ ns = HYDU_strdup(HYD_server_info.nameserver);
ns_host = strtok(ns, ":");
HYDU_ASSERT(ns_host, status);
@@ -255,7 +255,7 @@
HYDU_FUNC_ENTER();
- if (HYD_handle.nameserver == NULL) {
+ if (HYD_server_info.nameserver == NULL) {
/* no external nameserver available */
for (publish = HYD_pmcd_pmi_publish_list; publish; publish = publish->next)
if (!strcmp(publish->name, name))
@@ -270,7 +270,7 @@
/* connect to the external nameserver and get the information
* from there */
- ns = HYDU_strdup(HYD_handle.nameserver);
+ ns = HYDU_strdup(HYD_server_info.nameserver);
ns_host = strtok(ns, ":");
HYDU_ASSERT(ns_host, status);
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef PMISERV_PMI_H_INCLUDED
#define PMISERV_PMI_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
#include "demux.h"
#include "common.h"
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "bsci.h"
#include "pmiserv.h"
#include "pmiserv_pmi.h"
@@ -28,7 +28,7 @@
HYDU_ERR_POP(status, "unable to send PMI_RESPONSE header to proxy\n");
HYDU_ASSERT(!closed, status);
- if (HYD_handle.user_global.debug) {
+ if (HYD_server_info.user_global.debug) {
HYDU_dump(stdout, "PMI response to fd %d pid %d: %s", fd, pid, cmd);
}
@@ -331,7 +331,7 @@
}
/* Allocate a new process group */
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
new_pgid = pg->pgid + 1;
status = HYDU_alloc_pg(&pg->next, new_pgid);
@@ -406,14 +406,16 @@
exec->wdir = HYDU_strdup(info_val);
}
else if (!strcmp(info_key, "host")) {
- HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node), status);
+ HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node),
+ status);
user_node_list->hostname = HYDU_strdup(info_val);
user_node_list->core_count = 1;
user_node_list->local_binding = NULL;
user_node_list->next = NULL;
}
else if (!strcmp(info_key, "hostfile")) {
- status = HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
+ status =
+ HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
HYDU_ERR_POP(status, "error parsing hostfile\n");
}
else {
@@ -500,7 +502,7 @@
/* Create the proxy list */
offset = 0;
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next)
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next)
offset += pg->pg_process_count;
if (user_node_list) {
@@ -508,22 +510,22 @@
HYDU_ERR_POP(status, "error creating proxy list\n");
}
else {
- status = HYDU_create_proxy_list(exec_list, HYD_handle.node_list, pg, offset);
+ status = HYDU_create_proxy_list(exec_list, HYD_server_info.node_list, pg, offset);
HYDU_ERR_POP(status, "error creating proxy list\n");
}
HYDU_free_exec_list(exec_list);
- status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
- HYD_handle.local_hostname,
- HYD_handle.port_range, &control_port,
+ status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+ HYD_server_info.local_hostname,
+ HYD_server_info.port_range, &control_port,
HYD_pmcd_pmiserv_control_listen_cb,
(void *) (size_t) new_pgid);
HYDU_ERR_POP(status, "unable to create PMI port\n");
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
/* Go to the last PG */
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
/* Copy the host list to pass to the launcher */
node_list = NULL;
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,8 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "bsci.h"
#include "pmiserv.h"
#include "pmiserv_pmi.h"
@@ -42,7 +42,7 @@
HYDU_ERR_POP(status, "error writing PMI line\n");
HYDU_ASSERT(!closed, status);
- if (HYD_handle.user_global.debug) {
+ if (HYD_server_info.user_global.debug) {
HYDU_dump(stdout, "PMI response to fd %d pid %d: %s\n", fd, pid, cmd);
}
@@ -512,7 +512,7 @@
/* Allocate a new process group */
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
new_pgid = pg->pgid + 1;
status = HYDU_alloc_pg(&pg->next, new_pgid);
@@ -587,14 +587,16 @@
exec->wdir = HYDU_strdup(info_val);
}
else if (!strcmp(info_key, "host")) {
- HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node), status);
+ HYDU_MALLOC(user_node_list, struct HYD_node *, sizeof(struct HYD_node),
+ status);
user_node_list->hostname = HYDU_strdup(info_val);
user_node_list->core_count = 1;
user_node_list->local_binding = NULL;
user_node_list->next = NULL;
}
else if (!strcmp(info_key, "hostfile")) {
- status = HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
+ status =
+ HYDU_parse_hostfile(info_val, &user_node_list, HYDU_process_mfile_token);
HYDU_ERR_POP(status, "error parsing hostfile\n");
}
else {
@@ -681,7 +683,7 @@
/* Create the proxy list */
offset = 0;
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next)
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next)
offset += pg->pg_process_count;
if (user_node_list) {
@@ -689,22 +691,22 @@
HYDU_ERR_POP(status, "error creating proxy list\n");
}
else {
- status = HYDU_create_proxy_list(exec_list, HYD_handle.node_list, pg, offset);
+ status = HYDU_create_proxy_list(exec_list, HYD_server_info.node_list, pg, offset);
HYDU_ERR_POP(status, "error creating proxy list\n");
}
HYDU_free_exec_list(exec_list);
- status = HYDU_sock_create_and_listen_portstr(HYD_handle.user_global.iface,
- HYD_handle.local_hostname,
- HYD_handle.port_range, &control_port,
+ status = HYDU_sock_create_and_listen_portstr(HYD_server_info.user_global.iface,
+ HYD_server_info.local_hostname,
+ HYD_server_info.port_range, &control_port,
HYD_pmcd_pmiserv_control_listen_cb,
(void *) (size_t) new_pgid);
HYDU_ERR_POP(status, "unable to create PMI port\n");
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "Got a control port string of %s\n", control_port);
/* Go to the last PG */
- for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
+ for (pg = &HYD_server_info.pg_list; pg->next; pg = pg->next);
/* Copy the host list to pass to the launcher */
node_list = NULL;
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra.h"
+#include "hydra_server.h"
#include "pmci.h"
#include "bsci.h"
#include "pmiserv_pmi.h"
@@ -46,7 +46,7 @@
}
i = 0;
- path_str[i++] = HYDU_strdup(HYD_handle.base_path);
+ path_str[i++] = HYDU_strdup(HYD_server_info.base_path);
path_str[i++] = HYDU_strdup("hydra_pmi_proxy");
path_str[i] = NULL;
status = HYDU_str_alloc_and_join(path_str, &proxy_args[arg++]);
@@ -56,33 +56,30 @@
proxy_args[arg++] = HYDU_strdup("--control-port");
proxy_args[arg++] = HYDU_strdup(control_port);
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
proxy_args[arg++] = HYDU_strdup("--debug");
- if (HYD_handle.user_global.rmk) {
+ if (HYD_server_info.user_global.rmk) {
proxy_args[arg++] = HYDU_strdup("--rmk");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.rmk);
+ proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.rmk);
}
- if (HYD_handle.user_global.launcher) {
+ if (HYD_server_info.user_global.launcher) {
proxy_args[arg++] = HYDU_strdup("--launcher");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher);
+ proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.launcher);
}
- if (HYD_handle.user_global.launcher_exec) {
+ if (HYD_server_info.user_global.launcher_exec) {
proxy_args[arg++] = HYDU_strdup("--launcher-exec");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher_exec);
+ proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.launcher_exec);
}
- if (HYD_handle.user_global.prepend_rank)
- proxy_args[arg++] = HYDU_strdup("--prepend-rank");
-
proxy_args[arg++] = HYDU_strdup("--demux");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.demux);
+ proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.demux);
- if (HYD_handle.user_global.iface) {
+ if (HYD_server_info.user_global.iface) {
proxy_args[arg++] = HYDU_strdup("--iface");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.iface);
+ proxy_args[arg++] = HYDU_strdup(HYD_server_info.user_global.iface);
}
proxy_args[arg++] = HYDU_strdup("--pgid");
@@ -102,7 +99,7 @@
proxy_args[arg++] = HYDU_strdup("--proxy-id");
proxy_args[arg++] = NULL;
- if (HYD_handle.user_global.debug) {
+ if (HYD_server_info.user_global.debug) {
HYDU_dump_noprefix(stdout, "\nProxy launch args: ");
HYDU_print_strlist(proxy_args);
HYDU_dump_noprefix(stdout, "\n");
@@ -216,11 +213,11 @@
/* Create the arguments list for each proxy */
process_id = 0;
for (proxy = pg->proxy_list; proxy; proxy = proxy->next) {
- for (inherited_env_count = 0, env = HYD_handle.user_global.global_env.inherited; env;
- env = env->next, inherited_env_count++);
- for (user_env_count = 0, env = HYD_handle.user_global.global_env.user; env;
+ for (inherited_env_count = 0, env = HYD_server_info.user_global.global_env.inherited;
+ env; env = env->next, inherited_env_count++);
+ for (user_env_count = 0, env = HYD_server_info.user_global.global_env.user; env;
env = env->next, user_env_count++);
- for (system_env_count = 0, env = HYD_handle.user_global.global_env.system; env;
+ for (system_env_count = 0, env = HYD_server_info.user_global.global_env.system; env;
env = env->next, system_env_count++);
for (exec_count = 0, exec = proxy->exec_list; exec; exec = exec->next)
@@ -245,27 +242,28 @@
proxy->exec_launch_info[arg++] = HYDU_strdup("--version");
proxy->exec_launch_info[arg++] = HYDU_strdup(HYDRA_VERSION);
- if (HYD_handle.interface_env_name) {
+ if (HYD_server_info.interface_env_name) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--interface-env-name");
- proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.interface_env_name);
+ proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.interface_env_name);
}
proxy->exec_launch_info[arg++] = HYDU_strdup("--hostname");
proxy->exec_launch_info[arg++] = HYDU_strdup(proxy->node.hostname);
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-core-count");
- proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_handle.global_core_count);
+ proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_server_info.global_core_count);
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-process-count");
proxy->exec_launch_info[arg++] = HYDU_int_to_str(pg->pg_process_count);
proxy->exec_launch_info[arg++] = HYDU_strdup("--auto-cleanup");
- proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_handle.user_global.auto_cleanup);
+ proxy->exec_launch_info[arg++] =
+ HYDU_int_to_str(HYD_server_info.user_global.auto_cleanup);
/* Check if we are running in embedded mode */
ret = MPL_env2str("PMI_FD", (const char **) &pmi_fd);
if (ret) { /* PMI_FD already set */
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "someone else already set PMI FD\n");
pmi_fd = HYDU_strdup(pmi_fd);
@@ -280,7 +278,7 @@
ret = MPL_env2str("PMI_PORT", (const char **) &pmi_port);
if (ret) { /* PMI_FD already set */
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "someone else already set PMI PORT\n");
pmi_port = HYDU_strdup(pmi_port);
@@ -297,7 +295,7 @@
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
"both PMI_FD and PMI_PORT have been set\n");
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "PMI FD: %s; PMI PORT: %s; PMI ID/RANK: %d\n", pmi_fd, pmi_port,
pmi_rank);
@@ -333,39 +331,40 @@
proxy->exec_launch_info[arg++] = HYDU_strdup(proxy->node.local_binding);
}
- if (HYD_handle.user_global.binding) {
+ if (HYD_server_info.user_global.binding) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--binding");
- proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.binding);
+ proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.user_global.binding);
}
- if (HYD_handle.user_global.bindlib) {
+ if (HYD_server_info.user_global.bindlib) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--bindlib");
- proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.bindlib);
+ proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_server_info.user_global.bindlib);
}
- if (HYD_handle.user_global.ckpointlib) {
+ if (HYD_server_info.user_global.ckpointlib) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpointlib");
- proxy->exec_launch_info[arg++] = HYDU_strdup(HYD_handle.user_global.ckpointlib);
+ proxy->exec_launch_info[arg++] =
+ HYDU_strdup(HYD_server_info.user_global.ckpointlib);
}
- if (HYD_handle.user_global.ckpoint_prefix) {
+ if (HYD_server_info.user_global.ckpoint_prefix) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpoint-prefix");
proxy->exec_launch_info[arg++] =
- HYDU_strdup(HYD_handle.user_global.ckpoint_prefix);
+ HYDU_strdup(HYD_server_info.user_global.ckpoint_prefix);
}
- if (HYD_handle.user_global.ckpoint_num) {
+ if (HYD_server_info.user_global.ckpoint_num) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--ckpoint-num");
proxy->exec_launch_info[arg++] =
- HYDU_int_to_str(HYD_handle.user_global.ckpoint_num);
+ HYDU_int_to_str(HYD_server_info.user_global.ckpoint_num);
}
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-inherited-env");
- for (i = 0, env = HYD_handle.user_global.global_env.inherited; env;
+ for (i = 0, env = HYD_server_info.user_global.global_env.inherited; env;
env = env->next, i++);
proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
- for (env = HYD_handle.user_global.global_env.inherited; env; env = env->next) {
+ for (env = HYD_server_info.user_global.global_env.inherited; env; env = env->next) {
status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
HYDU_ERR_POP(status, "error converting env to string\n");
}
@@ -373,10 +372,11 @@
arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-user-env");
- for (i = 0, env = HYD_handle.user_global.global_env.user; env; env = env->next, i++);
+ for (i = 0, env = HYD_server_info.user_global.global_env.user; env;
+ env = env->next, i++);
proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
- for (env = HYD_handle.user_global.global_env.user; env; env = env->next) {
+ for (env = HYD_server_info.user_global.global_env.user; env; env = env->next) {
status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
HYDU_ERR_POP(status, "error converting env to string\n");
}
@@ -384,20 +384,21 @@
arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-system-env");
- for (i = 0, env = HYD_handle.user_global.global_env.system; env; env = env->next, i++);
+ for (i = 0, env = HYD_server_info.user_global.global_env.system; env;
+ env = env->next, i++);
proxy->exec_launch_info[arg++] = HYDU_int_to_str(i);
- for (env = HYD_handle.user_global.global_env.system; env; env = env->next) {
+ for (env = HYD_server_info.user_global.global_env.system; env; env = env->next) {
status = HYDU_env_to_str(env, &proxy->exec_launch_info[arg++]);
HYDU_ERR_POP(status, "error converting env to string\n");
}
proxy->exec_launch_info[arg++] = NULL;
arg = HYDU_strlist_lastidx(proxy->exec_launch_info);
- if (HYD_handle.user_global.global_env.prop) {
+ if (HYD_server_info.user_global.global_env.prop) {
proxy->exec_launch_info[arg++] = HYDU_strdup("--genv-prop");
proxy->exec_launch_info[arg++] =
- HYDU_strdup(HYD_handle.user_global.global_env.prop);
+ HYDU_strdup(HYD_server_info.user_global.global_env.prop);
}
proxy->exec_launch_info[arg++] = HYDU_strdup("--start-pid");
@@ -452,7 +453,7 @@
process_id += exec->proc_count;
}
- if (HYD_handle.user_global.debug) {
+ if (HYD_server_info.user_global.debug) {
HYDU_dump_noprefix(stdout, "Arguments being passed to proxy %d:\n", proxy_count++);
HYDU_print_strlist(proxy->exec_launch_info);
HYDU_dump_noprefix(stdout, "\n");
Modified: mpich2/trunk/src/pm/hydra/tools/bind/bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/bind.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/bind.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bind.h"
#if defined HAVE_PLPA
Modified: mpich2/trunk/src/pm/hydra/tools/bind/bind.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/bind.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/bind.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
/** @file bind.h */
-#include "hydra_utils.h"
+#include "hydra.h"
/*! \cond */
Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/bind_hwloc.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bind.h"
#include "bind_hwloc.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bind/plpa/bind_plpa.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bind.h"
#include "bind_plpa.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "external.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "external.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "external.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "bind.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "external.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef LL_H_INCLUDED
#define LL_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
HYD_status HYDT_bscd_ll_launch_procs(char **args, struct HYD_node *node_list,
int *control_fd, int enable_stdin);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "bind.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "ll.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_proxy_id.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "ll.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef LSF_H_INCLUDED
#define LSF_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
HYD_status HYDT_bscd_lsf_query_node_list(struct HYD_node **node_list);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/lsf_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "lsf.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef PBS_H_INCLUDED
#define PBS_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
HYD_status HYDT_bscd_pbs_query_node_list(struct HYD_node **node_list);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "pbs.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef SGE_H_INCLUDED
#define SGE_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
HYD_status HYDT_bscd_sge_query_node_list(struct HYD_node **node_list);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/sge_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "sge.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef SLURM_H_INCLUDED
#define SLURM_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
HYD_status HYDT_bscd_slurm_launch_procs(char **args, struct HYD_node *node_list,
int *control_fd, int enable_stdin);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "bind.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "slurm.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_proxy_id.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "slurm.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "ssh.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ssh.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef SSH_H_INCLUDED
#define SSH_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
/* Modern sshd servers don't like more than a certain number of ssh
* connections from the same IP address per minute. If we exceed that,
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_client.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef PERSIST_CLIENT_H_INCLUDED
#define PERSIST_CLIENT_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
#include "bscu.h"
#include "persist.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "persist_client.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
#include "persist_client.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bind.h"
#include "persist_server.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_server.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef PERSIST_SERVER_H_INCLUDED
#define PERSIST_SERVER_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
#include "demux.h"
#include "persist.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_wait.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "persist_client.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
HYD_status HYDT_bsci_launch_procs(char **args, struct HYD_node *node_list, int *control_fd,
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
#include "bscu.h"
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef BSCU_H_INCLUDED
#define BSCU_H_INCLUDED
-#include "hydra_base.h"
+#include "hydra.h"
#include "demux.h"
extern int *HYD_bscu_fd_list;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_cb.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_stdio_cb(int fd, HYD_event_t events, void *userp)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_env.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_query_env_inherit(const char *env_name, int *ret)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_rmk_finalize(void)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_native_int.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_query_native_int(int *ret)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_node_list.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_query_node_list(struct HYD_node **node_list)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_query_proxy_id.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_query_proxy_id(int *proxy_id)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_usize.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
HYD_status HYDT_bscu_query_usize(int *size)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bscu.h"
int *HYD_bscu_fd_list = NULL;
Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/blcr/ckpoint_blcr.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "ckpoint.h"
#include "ckpoint_blcr.h"
#include <libcr.h>
Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "ckpoint.h"
#if defined HAVE_BLCR
Modified: mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ckpoint/ckpoint.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -9,7 +9,7 @@
/** @file ckpoint.h */
-#include "hydra_utils.h"
+#include "hydra.h"
/*! \addtogroup ckpoint Checkpointing Library Interface
* @{
Modified: mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/debugger/debugger.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "debugger.h"
struct MPIR_PROCDESC *MPIR_proctable = NULL;
Modified: mpich2/trunk/src/pm/hydra/tools/demux/demux.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/demux/demux.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/demux/demux.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
#ifndef DEMUX_H_INCLUDED
#define DEMUX_H_INCLUDED
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
/*! \addtogroup demux Demultiplexing Engine
* @{
Modified: mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/demux/demux_internal.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,7 @@
#ifndef DEMUX_INTERNAL_H_INCLUDED
#define DEMUX_INTERNAL_H_INCLUDED
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
struct HYDT_dmxu_callback {
int num_fds;
Modified: mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "hydt_ftb.h"
static FTB_client_handle_t ch;
Modified: mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/ftb/hydt_ftb_dummy.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "hydt_ftb.h"
HYD_status HYDT_ftb_init(void)
Modified: mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/tools/nameserver/hydra_nameserver.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,8 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_base.h"
-#include "hydra_utils.h"
+#include "hydra.h"
#include "demux.h"
struct HYDT_ns_publish {
Modified: mpich2/trunk/src/pm/hydra/ui/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/Makefile.mk 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/Makefile.mk 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,6 +4,8 @@
# See COPYRIGHT in top-level directory.
#
+AM_CPPFLAGS += -I$(top_srcdir)/ui/include
+
include ui/utils/Makefile.mk
if hydra_ui_mpich
Added: mpich2/trunk/src/pm/hydra/ui/include/ui.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/include/ui.h (rev 0)
+++ mpich2/trunk/src/pm/hydra/ui/include/ui.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -0,0 +1,16 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2008 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#ifndef UI_H_INCLUDED
+#define UI_H_INCLUDED
+
+struct HYD_ui_info {
+ int prepend_rank;
+};
+
+extern struct HYD_ui_info HYD_ui_info;
+
+#endif /* UI_H_INCLUDED */
Modified: mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,18 +4,21 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "mpiexec.h"
#include "pmci.h"
#include "bsci.h"
#include "hydt_ftb.h"
#include "demux.h"
+#include "ui.h"
#include "uiu.h"
-struct HYD_handle HYD_handle = { {0} };
+struct HYD_server_info HYD_server_info = { {0} };
struct HYD_exec *HYD_uii_mpx_exec_list = NULL;
+struct HYD_ui_info HYD_ui_info;
+struct HYD_ui_mpich_info HYD_ui_mpich_info;
static void usage(void)
{
@@ -129,21 +132,21 @@
* and send a signal to ourselves. The signal callback does
* the process cleanup instead. */
cmd.type = HYD_CLEANUP;
- HYDU_sock_write(HYD_handle.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
+ HYDU_sock_write(HYD_server_info.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
}
else if (sig == SIGUSR1 || sig == SIGALRM) {
- if (HYD_handle.user_global.ckpoint_prefix == NULL) {
+ if (HYD_server_info.user_global.ckpoint_prefix == NULL) {
HYDU_dump(stderr, "No checkpoint prefix provided\n");
return;
}
#if HAVE_ALARM
- if (HYD_handle.ckpoint_int != -1)
- alarm(HYD_handle.ckpoint_int);
+ if (HYD_ui_mpich_info.ckpoint_int != -1)
+ alarm(HYD_ui_mpich_info.ckpoint_int);
#endif /* HAVE_ALARM */
cmd.type = HYD_CKPOINT;
- HYDU_sock_write(HYD_handle.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
+ HYDU_sock_write(HYD_server_info.cleanup_pipe[1], &cmd, sizeof(cmd), &sent, &closed);
}
/* Ignore all other signals */
@@ -152,8 +155,8 @@
}
#define ordered(n1, n2) \
- (((HYD_handle.sort_order == ASCENDING) && ((n1)->core_count <= (n2)->core_count)) || \
- ((HYD_handle.sort_order == DESCENDING) && ((n1)->core_count >= (n2)->core_count)))
+ (((HYD_ui_mpich_info.sort_order == ASCENDING) && ((n1)->core_count <= (n2)->core_count)) || \
+ ((HYD_ui_mpich_info.sort_order == DESCENDING) && ((n1)->core_count >= (n2)->core_count)))
static int compar(const void *_n1, const void *_n2)
{
@@ -170,7 +173,7 @@
else
ret = 1;
- if (HYD_handle.sort_order == DESCENDING)
+ if (HYD_ui_mpich_info.sort_order == DESCENDING)
ret *= -1;
return ret;
@@ -182,10 +185,10 @@
int count, i;
HYD_status status = HYD_SUCCESS;
- for (count = 0, node = HYD_handle.node_list; node; node = node->next, count++);
+ for (count = 0, node = HYD_server_info.node_list; node; node = node->next, count++);
HYDU_MALLOC(node_list, struct HYD_node **, count * sizeof(struct HYD_node *), status);
- for (i = 0, node = HYD_handle.node_list; node; node = node->next, i++)
+ for (i = 0, node = HYD_server_info.node_list; node; node = node->next, i++)
node_list[i] = node;
qsort((void *) node_list, (size_t) count, sizeof(struct HYD_node *), compar);
@@ -196,7 +199,7 @@
r1 = r1->next;
r1->next = NULL;
}
- HYD_handle.node_list = new_list;
+ HYD_server_info.node_list = new_list;
HYDU_FREE(node_list);
@@ -225,7 +228,7 @@
status = HYDU_set_common_signals(signal_cb);
HYDU_ERR_POP(status, "unable to set signal\n");
- if (pipe(HYD_handle.cleanup_pipe) < 0)
+ if (pipe(HYD_server_info.cleanup_pipe) < 0)
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "pipe error\n");
status = HYDT_ftb_init();
@@ -246,29 +249,30 @@
/* Now we initialize engines that require us to know user
* preferences */
#if HAVE_ALARM
- if (HYD_handle.ckpoint_int != -1)
- alarm(HYD_handle.ckpoint_int);
+ if (HYD_ui_mpich_info.ckpoint_int != -1)
+ alarm(HYD_ui_mpich_info.ckpoint_int);
#endif /* HAVE_ALARM */
- status = HYDT_dmx_init(&HYD_handle.user_global.demux);
+ status = HYDT_dmx_init(&HYD_server_info.user_global.demux);
HYDU_ERR_POP(status, "unable to initialize the demux engine\n");
- status = HYDT_bsci_init(HYD_handle.user_global.rmk, HYD_handle.user_global.launcher,
- HYD_handle.user_global.launcher_exec,
- HYD_handle.user_global.enablex, HYD_handle.user_global.debug);
+ status =
+ HYDT_bsci_init(HYD_server_info.user_global.rmk, HYD_server_info.user_global.launcher,
+ HYD_server_info.user_global.launcher_exec,
+ HYD_server_info.user_global.enablex, HYD_server_info.user_global.debug);
HYDU_ERR_POP(status, "unable to initialize the bootstrap server\n");
reset_rmk = 0;
- if (HYD_handle.node_list == NULL) {
+ if (HYD_server_info.node_list == NULL) {
/* Node list is not created yet. The user might not have
* provided the host file. Query the RMK. */
- status = HYDT_bsci_query_node_list(&HYD_handle.node_list);
+ status = HYDT_bsci_query_node_list(&HYD_server_info.node_list);
HYDU_ERR_POP(status, "unable to query the RMK for a node list\n");
- if (HYD_handle.node_list == NULL) {
+ if (HYD_server_info.node_list == NULL) {
/* The RMK didn't give us anything back; use localhost */
- status = HYDU_add_to_node_list("localhost", 1, &HYD_handle.node_list);
+ status = HYDU_add_to_node_list("localhost", 1, &HYD_server_info.node_list);
HYDU_ERR_POP(status, "unable to add to node list\n");
reset_rmk = 1;
@@ -277,13 +281,13 @@
/* Reset the host list to use only the number of processes per
* node as specified by the ppn option. */
- if (HYD_handle.ppn != -1)
- for (node = HYD_handle.node_list; node; node = node->next)
- node->core_count = HYD_handle.ppn;
+ if (HYD_ui_mpich_info.ppn != -1)
+ for (node = HYD_server_info.node_list; node; node = node->next)
+ node->core_count = HYD_ui_mpich_info.ppn;
/* The RMK returned a node list. See if the user requested us to
* manipulate it in some way */
- if (HYD_handle.sort_order != NONE) {
+ if (HYD_ui_mpich_info.sort_order != NONE) {
qsort_node_list();
reset_rmk = 1;
}
@@ -295,40 +299,41 @@
status = HYDT_bsci_finalize();
HYDU_ERR_POP(status, "unable to finalize bootstrap device\n");
- status = HYDT_bsci_init("none", HYD_handle.user_global.launcher,
- HYD_handle.user_global.launcher_exec,
- HYD_handle.user_global.enablex, HYD_handle.user_global.debug);
+ status = HYDT_bsci_init("none", HYD_server_info.user_global.launcher,
+ HYD_server_info.user_global.launcher_exec,
+ HYD_server_info.user_global.enablex,
+ HYD_server_info.user_global.debug);
HYDU_ERR_POP(status, "unable to reinitialize the bootstrap server\n");
}
- HYD_handle.global_core_count = 0;
- for (node = HYD_handle.node_list; node; node = node->next)
- HYD_handle.global_core_count += node->core_count;
+ HYD_server_info.global_core_count = 0;
+ for (node = HYD_server_info.node_list; node; node = node->next)
+ HYD_server_info.global_core_count += node->core_count;
/* If the number of processes is not given, we allocate all the
* available nodes to each executable */
for (exec = HYD_uii_mpx_exec_list; exec; exec = exec->next) {
if (exec->proc_count == -1) {
- if (HYD_handle.global_core_count == 0)
+ if (HYD_server_info.global_core_count == 0)
exec->proc_count = 1;
else
- exec->proc_count = HYD_handle.global_core_count;
+ exec->proc_count = HYD_server_info.global_core_count;
/* If we didn't get anything from the user, take whatever
* the RMK gave */
- HYD_handle.pg_list.pg_process_count += exec->proc_count;
+ HYD_server_info.pg_list.pg_process_count += exec->proc_count;
}
}
- status = HYDU_list_inherited_env(&HYD_handle.user_global.global_env.inherited);
+ status = HYDU_list_inherited_env(&HYD_server_info.user_global.global_env.inherited);
HYDU_ERR_POP(status, "unable to get the inherited env list\n");
- status = HYDU_create_proxy_list(HYD_uii_mpx_exec_list, HYD_handle.node_list,
- &HYD_handle.pg_list, 0);
+ status = HYDU_create_proxy_list(HYD_uii_mpx_exec_list, HYD_server_info.node_list,
+ &HYD_server_info.pg_list, 0);
HYDU_ERR_POP(status, "unable to create proxy list\n");
/* See if the node list contains a remotely accessible localhost */
- for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+ for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
int is_local, remote_access;
status = HYDU_sock_is_local(proxy->node.hostname, &is_local);
@@ -345,26 +350,26 @@
}
if (proxy)
- HYD_handle.local_hostname = HYDU_strdup(proxy->node.hostname);
+ HYD_server_info.local_hostname = HYDU_strdup(proxy->node.hostname);
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYD_uiu_print_params();
if (MPL_env2int("MPIEXEC_TIMEOUT", &timeout) == 0)
timeout = -1; /* Infinite timeout */
- if (HYD_handle.user_global.debug)
+ if (HYD_server_info.user_global.debug)
HYDU_dump(stdout, "Timeout set to %d (-1 means infinite)\n", timeout);
/* Check if the user wants us to use a port within a certain
* range. */
- if (MPL_env2str("MPIEXEC_PORTRANGE", (const char **) &HYD_handle.port_range) ||
- MPL_env2str("MPIEXEC_PORT_RANGE", (const char **) &HYD_handle.port_range) ||
- MPL_env2str("MPICH_PORT_RANGE", (const char **) &HYD_handle.port_range))
- HYD_handle.port_range = HYDU_strdup(HYD_handle.port_range);
+ if (MPL_env2str("MPIEXEC_PORTRANGE", (const char **) &HYD_server_info.port_range) ||
+ MPL_env2str("MPIEXEC_PORT_RANGE", (const char **) &HYD_server_info.port_range) ||
+ MPL_env2str("MPICH_PORT_RANGE", (const char **) &HYD_server_info.port_range))
+ HYD_server_info.port_range = HYDU_strdup(HYD_server_info.port_range);
- if (HYD_handle.print_rank_map) {
- for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+ if (HYD_ui_mpich_info.print_rank_map) {
+ for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
HYDU_dump_noprefix(stdout, "(%s:", proxy->node.hostname);
process_id = 0;
@@ -374,7 +379,7 @@
HYDU_local_to_global_id(process_id++,
proxy->start_pid,
proxy->node.core_count,
- HYD_handle.global_core_count));
+ HYD_server_info.global_core_count));
if (i < exec->proc_count - 1 || exec->next)
HYDU_dump_noprefix(stdout, ",");
}
@@ -384,8 +389,8 @@
}
/* Add the stdout/stdin/stderr callback handlers */
- HYD_handle.stdout_cb = HYD_uiu_stdout_cb;
- HYD_handle.stderr_cb = HYD_uiu_stderr_cb;
+ HYD_server_info.stdout_cb = HYD_uiu_stdout_cb;
+ HYD_server_info.stderr_cb = HYD_uiu_stderr_cb;
/* Launch the processes */
status = HYD_pmci_launch_procs();
@@ -396,10 +401,10 @@
HYDU_ERR_POP(status, "process manager error waiting for completion\n");
/* Check for the exit status for all the processes */
- if (HYD_handle.print_all_exitcodes)
+ if (HYD_ui_mpich_info.print_all_exitcodes)
HYDU_dump(stdout, "Exit codes: ");
exit_status = 0;
- for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+ for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
if (proxy->exit_status == NULL) {
/* We didn't receive the exit status for this proxy */
exit_status |= 1;
@@ -410,11 +415,11 @@
for (exec = proxy->exec_list; exec; exec = exec->next)
proc_count += exec->proc_count;
for (i = 0; i < proc_count; i++) {
- if (HYD_handle.print_all_exitcodes) {
+ if (HYD_ui_mpich_info.print_all_exitcodes) {
HYDU_dump_noprefix(stdout, "[%d]",
HYDU_local_to_global_id(i, proxy->start_pid,
proxy->node.core_count,
- HYD_handle.global_core_count));
+ HYD_server_info.global_core_count));
HYDU_dump_noprefix(stdout, "%d", WEXITSTATUS(proxy->exit_status[i]));
if (i < proc_count - 1)
HYDU_dump_noprefix(stdout, ",");
@@ -422,7 +427,7 @@
exit_status |= proxy->exit_status[i];
}
}
- if (HYD_handle.print_all_exitcodes)
+ if (HYD_ui_mpich_info.print_all_exitcodes)
HYDU_dump_noprefix(stdout, "\n");
/* Call finalize functions for lower layers to cleanup their resources */
@@ -433,11 +438,11 @@
HYDU_ERR_POP(status, "error finalizing FTB\n");
#if defined ENABLE_PROFILING
- if (HYD_handle.enable_profiling) {
+ if (HYD_server_info.enable_profiling) {
HYDU_dump_noprefix(stdout, "\n");
HYD_DRAW_LINE(80);
HYDU_dump(stdout, "Number of PMI calls seen by the server: %d\n",
- HYD_handle.num_pmi_calls);
+ HYD_server_info.num_pmi_calls);
HYD_DRAW_LINE(80);
HYDU_dump_noprefix(stdout, "\n");
}
Modified: mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,8 +7,24 @@
#ifndef MPIEXEC_H_INCLUDED
#define MPIEXEC_H_INCLUDED
-#include "hydra.h"
+#include "hydra_server.h"
+struct HYD_ui_mpich_info {
+ int ppn;
+ int ckpoint_int;
+ int print_rank_map;
+ int print_all_exitcodes;
+ int ranks_per_proc;
+
+ enum HYD_sort_order {
+ NONE = 0,
+ ASCENDING = 1,
+ DESCENDING = 2
+ } sort_order;
+};
+
+extern struct HYD_ui_mpich_info HYD_ui_mpich_info;
+
HYD_status HYD_uii_mpx_get_parameters(char **t_argv);
extern struct HYD_exec *HYD_uii_mpx_exec_list;
Modified: mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/utils.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/utils.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,13 +4,24 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
#include "mpiexec.h"
+#include "ui.h"
#include "uiu.h"
static int hostname_propagation = -1;
+static void init_ui_mpich_info(void)
+{
+ HYD_ui_mpich_info.ppn = -1;
+ HYD_ui_mpich_info.ckpoint_int = -1;
+ HYD_ui_mpich_info.print_rank_map = -1;
+ HYD_ui_mpich_info.print_all_exitcodes = -1;
+ HYD_ui_mpich_info.ranks_per_proc = -1;
+ HYD_ui_mpich_info.sort_order = NONE;
+}
+
static HYD_status get_current_exec(struct HYD_exec **exec)
{
HYD_status status = HYD_SUCCESS;
@@ -79,7 +90,7 @@
env_value = HYDU_strdup(str[1]);
}
- HYDU_append_env_to_list(env_name, env_value, &HYD_handle.user_global.global_env.user);
+ HYDU_append_env_to_list(env_name, env_value, &HYD_server_info.user_global.global_env.user);
if (str[0])
HYDU_FREE(str[0]);
@@ -112,12 +123,12 @@
int len;
HYD_status status = HYD_SUCCESS;
- HYDU_ERR_CHKANDJUMP(status, HYD_handle.user_global.global_env.prop,
+ HYDU_ERR_CHKANDJUMP(status, HYD_server_info.user_global.global_env.prop,
HYD_INTERNAL_ERROR, "duplicate environment setting\n");
len = strlen("list:") + strlen(**argv) + 1;
- HYDU_MALLOC(HYD_handle.user_global.global_env.prop, char *, len, status);
- HYDU_snprintf(HYD_handle.user_global.global_env.prop, len, "list:%s", **argv);
+ HYDU_MALLOC(HYD_server_info.user_global.global_env.prop, char *, len, status);
+ HYDU_snprintf(HYD_server_info.user_global.global_env.prop, len, "list:%s", **argv);
(*argv)++;
fn_exit:
@@ -136,7 +147,7 @@
static HYD_status genvnone_fn(char *arg, char ***argv)
{
- return HYDU_set_str(arg, argv, &HYD_handle.user_global.global_env.prop, "none");
+ return HYDU_set_str(arg, argv, &HYD_server_info.user_global.global_env.prop, "none");
}
static void genvall_help_fn(void)
@@ -148,7 +159,7 @@
static HYD_status genvall_fn(char *arg, char ***argv)
{
- return HYDU_set_str(arg, argv, &HYD_handle.user_global.global_env.prop, "all");
+ return HYDU_set_str(arg, argv, &HYD_server_info.user_global.global_env.prop, "all");
}
static void mfile_help_fn(void)
@@ -161,15 +172,16 @@
{
HYD_status status = HYD_SUCCESS;
- HYDU_ERR_CHKANDJUMP(status, HYD_handle.node_list, HYD_INTERNAL_ERROR,
+ HYDU_ERR_CHKANDJUMP(status, HYD_server_info.node_list, HYD_INTERNAL_ERROR,
"duplicate host file setting\n");
if (strcmp(**argv, "HYDRA_USE_LOCALHOST")) {
- status = HYDU_parse_hostfile(**argv, &HYD_handle.node_list, HYDU_process_mfile_token);
+ status =
+ HYDU_parse_hostfile(**argv, &HYD_server_info.node_list, HYDU_process_mfile_token);
HYDU_ERR_POP(status, "error parsing hostfile\n");
}
else {
- status = HYDU_add_to_node_list("localhost", 1, &HYD_handle.node_list);
+ status = HYDU_add_to_node_list("localhost", 1, &HYD_server_info.node_list);
HYDU_ERR_POP(status, "unable to add to node list\n");
}
@@ -194,7 +206,7 @@
int count = 0;
HYD_status status = HYD_SUCCESS;
- HYDU_ERR_CHKANDJUMP(status, HYD_handle.node_list, HYD_INTERNAL_ERROR,
+ HYDU_ERR_CHKANDJUMP(status, HYD_server_info.node_list, HYD_INTERNAL_ERROR,
"duplicate host file or host list setting\n");
hostlist[count] = strtok(**argv, ",");
@@ -212,7 +224,7 @@
procs = strtok(NULL, ":");
np = procs ? atoi(procs) : 1;
- status = HYDU_add_to_node_list(h, np, &HYD_handle.node_list);
+ status = HYDU_add_to_node_list(h, np, &HYD_server_info.node_list);
HYDU_ERR_POP(status, "unable to add to node list\n");
}
@@ -233,7 +245,7 @@
static HYD_status ppn_fn(char *arg, char ***argv)
{
- return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ppn);
+ return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ppn);
}
static void profile_help_fn(void)
@@ -250,7 +262,7 @@
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "profiling support not compiled in\n");
#endif /* ENABLE_PROFILING */
- status = HYDU_set_int(arg, argv, &HYD_handle.enable_profiling, 1);
+ status = HYDU_set_int(arg, argv, &HYD_server_info.enable_profiling, 1);
HYDU_ERR_POP(status, "error enabling profiling\n");
fn_exit:
@@ -268,7 +280,7 @@
static HYD_status prepend_rank_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.user_global.prepend_rank, 1);
+ return HYDU_set_int(arg, argv, &HYD_ui_info.prepend_rank, 1);
}
static void wdir_help_fn(void)
@@ -549,7 +561,7 @@
status = HYDU_set_int_and_incr(arg, argv, &exec->proc_count);
HYDU_ERR_POP(status, "error getting executable process count\n");
- HYD_handle.pg_list.pg_process_count += exec->proc_count;
+ HYD_server_info.pg_list.pg_process_count += exec->proc_count;
fn_exit:
return status;
@@ -568,7 +580,7 @@
static HYD_status launcher_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.launcher);
}
static void launcher_exec_help_fn(void)
@@ -581,7 +593,7 @@
static HYD_status launcher_exec_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher_exec);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.launcher_exec);
}
static void enablex_help_fn(void)
@@ -593,7 +605,8 @@
static HYD_status enablex_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.user_global.enablex, !strcmp(arg, "enable-x"));
+ return HYDU_set_int(arg, argv, &HYD_server_info.user_global.enablex,
+ !strcmp(arg, "enable-x"));
}
static void rmk_help_fn(void)
@@ -606,7 +619,7 @@
static HYD_status rmk_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.rmk);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.rmk);
}
static void ranks_per_proc_help_fn(void)
@@ -617,7 +630,7 @@
static HYD_status ranks_per_proc_fn(char *arg, char ***argv)
{
- return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ranks_per_proc);
+ return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ranks_per_proc);
}
static void binding_help_fn(void)
@@ -647,7 +660,7 @@
static HYD_status binding_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.binding);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.binding);
}
static void bindlib_help_fn(void)
@@ -660,7 +673,7 @@
static HYD_status bindlib_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.bindlib);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.bindlib);
}
static void ckpoint_interval_help_fn(void)
@@ -671,7 +684,7 @@
static HYD_status ckpoint_interval_fn(char *arg, char ***argv)
{
- return HYDU_set_int_and_incr(arg, argv, &HYD_handle.ckpoint_int);
+ return HYDU_set_int_and_incr(arg, argv, &HYD_ui_mpich_info.ckpoint_int);
}
static void ckpoint_prefix_help_fn(void)
@@ -682,7 +695,7 @@
static HYD_status ckpoint_prefix_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.ckpoint_prefix);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.ckpoint_prefix);
}
static void ckpoint_num_help_fn(void)
@@ -693,7 +706,7 @@
static HYD_status ckpoint_num_fn(char *arg, char ***argv)
{
- return HYDU_set_int_and_incr(arg, argv, &HYD_handle.user_global.ckpoint_num);
+ return HYDU_set_int_and_incr(arg, argv, &HYD_server_info.user_global.ckpoint_num);
}
static void ckpointlib_help_fn(void)
@@ -706,7 +719,7 @@
static HYD_status ckpointlib_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.ckpointlib);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.ckpointlib);
}
static void demux_help_fn(void)
@@ -719,7 +732,7 @@
static HYD_status demux_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.demux);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.demux);
}
static void verbose_help_fn(void)
@@ -730,7 +743,7 @@
static HYD_status verbose_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.user_global.debug, 1);
+ return HYDU_set_int(arg, argv, &HYD_server_info.user_global.debug, 1);
}
static void info_help_fn(void)
@@ -790,7 +803,7 @@
static HYD_status print_rank_map_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.print_rank_map, 1);
+ return HYDU_set_int(arg, argv, &HYD_ui_mpich_info.print_rank_map, 1);
}
static void print_all_exitcodes_help_fn(void)
@@ -801,7 +814,7 @@
static HYD_status print_all_exitcodes_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.print_all_exitcodes, 1);
+ return HYDU_set_int(arg, argv, &HYD_ui_mpich_info.print_all_exitcodes, 1);
}
static void iface_help_fn(void)
@@ -812,7 +825,7 @@
static HYD_status iface_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.iface);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.user_global.iface);
}
static void nameserver_help_fn(void)
@@ -823,7 +836,7 @@
static HYD_status nameserver_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.nameserver);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_server_info.nameserver);
}
static void auto_cleanup_help_fn(void)
@@ -835,7 +848,7 @@
static HYD_status auto_cleanup_fn(char *arg, char ***argv)
{
- return HYDU_set_int(arg, argv, &HYD_handle.user_global.auto_cleanup,
+ return HYDU_set_int(arg, argv, &HYD_server_info.user_global.auto_cleanup,
!strcmp(arg, "enable-auto-cleanup"));
}
@@ -865,10 +878,10 @@
if (!strcmp(**argv, "ASCENDING") || !strcmp(**argv, "ascending") ||
!strcmp(**argv, "UP") || !strcmp(**argv, "up"))
- HYD_handle.sort_order = ASCENDING;
+ HYD_ui_mpich_info.sort_order = ASCENDING;
else if (!strcmp(**argv, "DESCENDING") || !strcmp(**argv, "descending") ||
- !strcmp(**argv, "DOWN") || !strcmp(**argv, "down"))
- HYD_handle.sort_order = DESCENDING;
+ !strcmp(**argv, "DOWN") || !strcmp(**argv, "down"))
+ HYD_ui_mpich_info.sort_order = DESCENDING;
else
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "unrecognized sort order\n");
@@ -971,55 +984,57 @@
/* If exec_list is not NULL, make sure local executable is set */
for (exec = HYD_uii_mpx_exec_list; exec; exec = exec->next) {
- if (exec->exec[0] == NULL && HYD_handle.user_global.ckpoint_prefix == NULL)
+ if (exec->exec[0] == NULL && HYD_server_info.user_global.ckpoint_prefix == NULL)
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no executable specified\n");
status = HYDU_correct_wdir(&exec->wdir);
HYDU_ERR_POP(status, "unable to correct wdir\n");
}
- if (HYD_handle.print_rank_map == -1)
- HYD_handle.print_rank_map = 0;
+ if (HYD_ui_mpich_info.print_rank_map == -1)
+ HYD_ui_mpich_info.print_rank_map = 0;
- if (HYD_handle.print_all_exitcodes == -1)
- HYD_handle.print_all_exitcodes = 0;
+ if (HYD_ui_mpich_info.print_all_exitcodes == -1)
+ HYD_ui_mpich_info.print_all_exitcodes = 0;
- if (HYD_handle.ranks_per_proc == -1)
- HYD_handle.ranks_per_proc = 1;
+ if (HYD_ui_mpich_info.ranks_per_proc == -1)
+ HYD_ui_mpich_info.ranks_per_proc = 1;
- if (HYD_handle.enable_profiling == -1)
- HYD_handle.enable_profiling = 0;
+ if (HYD_ui_info.prepend_rank == -1)
+ HYD_ui_info.prepend_rank = 0;
- if (HYD_handle.user_global.prepend_rank == -1)
- HYD_handle.user_global.prepend_rank = 0;
+ if (HYD_server_info.enable_profiling == -1)
+ HYD_server_info.enable_profiling = 0;
- if (HYD_handle.user_global.debug == -1 &&
- MPL_env2bool("HYDRA_DEBUG", &HYD_handle.user_global.debug) == 0)
- HYD_handle.user_global.debug = 0;
+ if (HYD_server_info.user_global.debug == -1 &&
+ MPL_env2bool("HYDRA_DEBUG", &HYD_server_info.user_global.debug) == 0)
+ HYD_server_info.user_global.debug = 0;
- HYD_GET_ENV_STR_VAL(HYD_handle.user_global.iface, "HYDRA_IFACE", NULL);
+ HYD_GET_ENV_STR_VAL(HYD_server_info.user_global.iface, "HYDRA_IFACE", NULL);
- if (HYD_handle.node_list == NULL && MPL_env2str("HYDRA_HOST_FILE", (const char **) &tmp)) {
- status = HYDU_parse_hostfile(tmp, &HYD_handle.node_list, HYDU_process_mfile_token);
+ if (HYD_server_info.node_list == NULL &&
+ MPL_env2str("HYDRA_HOST_FILE", (const char **) &tmp)) {
+ status =
+ HYDU_parse_hostfile(tmp, &HYD_server_info.node_list, HYDU_process_mfile_token);
HYDU_ERR_POP(status, "error parsing hostfile\n");
}
/* Check environment for setting the inherited environment */
- if (HYD_handle.user_global.global_env.prop == NULL &&
+ if (HYD_server_info.user_global.global_env.prop == NULL &&
MPL_env2str("HYDRA_ENV", (const char **) &tmp))
- HYD_handle.user_global.global_env.prop =
+ HYD_server_info.user_global.global_env.prop =
!strcmp(tmp, "all") ? HYDU_strdup("all") : HYDU_strdup("none");
- if (HYD_handle.user_global.auto_cleanup == -1)
- HYD_handle.user_global.auto_cleanup = 1;
+ if (HYD_server_info.user_global.auto_cleanup == -1)
+ HYD_server_info.user_global.auto_cleanup = 1;
/* Make sure this is either a restart or there is an executable to
* launch */
- if (HYD_uii_mpx_exec_list == NULL && HYD_handle.user_global.ckpoint_prefix == NULL)
+ if (HYD_uii_mpx_exec_list == NULL && HYD_server_info.user_global.ckpoint_prefix == NULL)
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no executable provided\n");
if (hostname_propagation || hostname_propagation == -1)
- HYD_handle.interface_env_name = HYDU_strdup("MPICH_INTERFACE_HOSTNAME");
+ HYD_server_info.interface_env_name = HYDU_strdup("MPICH_INTERFACE_HOSTNAME");
fn_exit:
return status;
@@ -1040,6 +1055,7 @@
HYDU_FUNC_ENTER();
HYD_uiu_init_params();
+ init_ui_mpich_info();
argv++;
do {
@@ -1077,8 +1093,8 @@
post = HYDU_strdup(progname);
loc = strrchr(post, '/');
if (!loc) { /* If there is no path */
- HYD_handle.base_path = NULL;
- status = HYDU_find_in_path(progname, &HYD_handle.base_path);
+ HYD_server_info.base_path = NULL;
+ status = HYDU_find_in_path(progname, &HYD_server_info.base_path);
HYDU_ERR_POP(status, "error while searching for executable in the user path\n");
}
else { /* There is a path */
@@ -1090,12 +1106,12 @@
tmp[1] = HYDU_strdup("/");
tmp[2] = HYDU_strdup(post);
tmp[3] = NULL;
- status = HYDU_str_alloc_and_join(tmp, &HYD_handle.base_path);
+ status = HYDU_str_alloc_and_join(tmp, &HYD_server_info.base_path);
HYDU_ERR_POP(status, "unable to join strings\n");
HYDU_free_strlist(tmp);
}
else { /* absolute */
- HYD_handle.base_path = HYDU_strdup(post);
+ HYD_server_info.base_path = HYDU_strdup(post);
}
}
HYDU_FREE(post);
@@ -1105,14 +1121,14 @@
/* If the user set the checkpoint prefix, set env var to enable
* checkpointing on the processes */
- if (HYD_handle.user_global.ckpoint_prefix)
+ if (HYD_server_info.user_global.ckpoint_prefix)
HYDU_append_env_to_list("MPICH_ENABLE_CKPOINT", "1",
- &HYD_handle.user_global.global_env.system);
+ &HYD_server_info.user_global.global_env.system);
/* Preset common environment options for disabling STDIO buffering
* in Fortran */
HYDU_append_env_to_list("GFORTRAN_UNBUFFERED_PRECONNECTED", "y",
- &HYD_handle.user_global.global_env.system);
+ &HYD_server_info.user_global.global_env.system);
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/utils/uiu.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/utils/uiu.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,77 +4,69 @@
* See COPYRIGHT in top-level directory.
*/
+#include "hydra_server.h"
#include "hydra.h"
-#include "hydra_utils.h"
+#include "ui.h"
#include "uiu.h"
void HYD_uiu_init_params(void)
{
- HYDU_init_user_global(&HYD_handle.user_global);
+ HYDU_init_user_global(&HYD_server_info.user_global);
- HYD_handle.ppn = -1;
+ HYD_server_info.base_path = NULL;
- HYD_handle.base_path = NULL;
+ HYD_server_info.port_range = NULL;
+ HYD_server_info.interface_env_name = NULL;
- HYD_handle.port_range = NULL;
- HYD_handle.interface_env_name = NULL;
+ HYD_server_info.nameserver = NULL;
+ HYD_server_info.local_hostname = NULL;
- HYD_handle.nameserver = NULL;
- HYD_handle.local_hostname = NULL;
+ HYD_server_info.stdout_cb = NULL;
+ HYD_server_info.stderr_cb = NULL;
- HYD_handle.ckpoint_int = -1;
+ HYD_server_info.node_list = NULL;
+ HYD_server_info.global_core_count = 0;
- HYD_handle.print_rank_map = -1;
- HYD_handle.print_all_exitcodes = -1;
+ HYDU_init_pg(&HYD_server_info.pg_list, 0);
- HYD_handle.ranks_per_proc = -1;
+ HYD_server_info.pg_list.pgid = 0;
+ HYD_server_info.pg_list.next = NULL;
- HYD_handle.stdout_cb = NULL;
- HYD_handle.stderr_cb = NULL;
-
- HYD_handle.node_list = NULL;
- HYD_handle.global_core_count = 0;
-
- HYDU_init_pg(&HYD_handle.pg_list, 0);
-
- HYD_handle.pg_list.pgid = 0;
- HYD_handle.pg_list.next = NULL;
-
- HYD_handle.func_depth = 0;
-
#if defined ENABLE_PROFILING
- HYD_handle.enable_profiling = -1;
- HYD_handle.num_pmi_calls = 0;
+ HYD_server_info.enable_profiling = -1;
+ HYD_server_info.num_pmi_calls = 0;
#endif /* ENABLE_PROFILING */
+
+ HYD_ui_info.prepend_rank = -1;
}
void HYD_uiu_free_params(void)
{
- HYDU_finalize_user_global(&HYD_handle.user_global);
+ HYDU_finalize_user_global(&HYD_server_info.user_global);
- if (HYD_handle.base_path)
- HYDU_FREE(HYD_handle.base_path);
+ if (HYD_server_info.base_path)
+ HYDU_FREE(HYD_server_info.base_path);
- if (HYD_handle.port_range)
- HYDU_FREE(HYD_handle.port_range);
+ if (HYD_server_info.port_range)
+ HYDU_FREE(HYD_server_info.port_range);
- if (HYD_handle.interface_env_name)
- HYDU_FREE(HYD_handle.interface_env_name);
+ if (HYD_server_info.interface_env_name)
+ HYDU_FREE(HYD_server_info.interface_env_name);
- if (HYD_handle.nameserver)
- HYDU_FREE(HYD_handle.nameserver);
+ if (HYD_server_info.nameserver)
+ HYDU_FREE(HYD_server_info.nameserver);
- if (HYD_handle.local_hostname)
- HYDU_FREE(HYD_handle.local_hostname);
+ if (HYD_server_info.local_hostname)
+ HYDU_FREE(HYD_server_info.local_hostname);
- if (HYD_handle.node_list)
- HYDU_free_node_list(HYD_handle.node_list);
+ if (HYD_server_info.node_list)
+ HYDU_free_node_list(HYD_server_info.node_list);
- if (HYD_handle.pg_list.proxy_list)
- HYDU_free_proxy_list(HYD_handle.pg_list.proxy_list);
+ if (HYD_server_info.pg_list.proxy_list)
+ HYDU_free_proxy_list(HYD_server_info.pg_list.proxy_list);
- if (HYD_handle.pg_list.next)
- HYDU_free_pg_list(HYD_handle.pg_list.next);
+ if (HYD_server_info.pg_list.next)
+ HYDU_free_pg_list(HYD_server_info.pg_list.next);
/* Re-initialize everything to default values */
HYD_uiu_init_params();
@@ -95,30 +87,30 @@
HYDU_dump_noprefix(stdout, "\n");
HYDU_dump_noprefix(stdout, "mpiexec options:\n");
HYDU_dump_noprefix(stdout, "----------------\n");
- HYDU_dump_noprefix(stdout, " Base path: %s\n", HYD_handle.base_path);
- HYDU_dump_noprefix(stdout, " Launcher: %s\n", HYD_handle.user_global.launcher);
- HYDU_dump_noprefix(stdout, " Debug level: %d\n", HYD_handle.user_global.debug);
- HYDU_dump_noprefix(stdout, " Enable X: %d\n", HYD_handle.user_global.enablex);
+ HYDU_dump_noprefix(stdout, " Base path: %s\n", HYD_server_info.base_path);
+ HYDU_dump_noprefix(stdout, " Launcher: %s\n", HYD_server_info.user_global.launcher);
+ HYDU_dump_noprefix(stdout, " Debug level: %d\n", HYD_server_info.user_global.debug);
+ HYDU_dump_noprefix(stdout, " Enable X: %d\n", HYD_server_info.user_global.enablex);
HYDU_dump_noprefix(stdout, "\n");
HYDU_dump_noprefix(stdout, " Global environment:\n");
HYDU_dump_noprefix(stdout, " -------------------\n");
- for (env = HYD_handle.user_global.global_env.inherited; env; env = env->next)
+ for (env = HYD_server_info.user_global.global_env.inherited; env; env = env->next)
HYDU_dump_noprefix(stdout, " %s=%s\n", env->env_name, env->env_value);
- if (HYD_handle.user_global.global_env.system) {
+ if (HYD_server_info.user_global.global_env.system) {
HYDU_dump_noprefix(stdout, "\n");
HYDU_dump_noprefix(stdout, " Hydra internal environment:\n");
HYDU_dump_noprefix(stdout, " ---------------------------\n");
- for (env = HYD_handle.user_global.global_env.system; env; env = env->next)
+ for (env = HYD_server_info.user_global.global_env.system; env; env = env->next)
HYDU_dump_noprefix(stdout, " %s=%s\n", env->env_name, env->env_value);
}
- if (HYD_handle.user_global.global_env.user) {
+ if (HYD_server_info.user_global.global_env.user) {
HYDU_dump_noprefix(stdout, "\n");
HYDU_dump_noprefix(stdout, " User set environment:\n");
HYDU_dump_noprefix(stdout, " ---------------------\n");
- for (env = HYD_handle.user_global.global_env.user; env; env = env->next)
+ for (env = HYD_server_info.user_global.global_env.user; env; env = env->next)
HYDU_dump_noprefix(stdout, " %s=%s\n", env->env_name, env->env_value);
}
@@ -127,7 +119,7 @@
HYDU_dump_noprefix(stdout, " Proxy information:\n");
HYDU_dump_noprefix(stdout, " *********************\n");
i = 1;
- for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
+ for (proxy = HYD_server_info.pg_list.proxy_list; proxy; proxy = proxy->next) {
HYDU_dump_noprefix(stdout, " Proxy ID: %2d\n", i++);
HYDU_dump_noprefix(stdout, " -----------------\n");
HYDU_dump_noprefix(stdout, " Proxy name: %s\n", proxy->node.hostname);
@@ -159,7 +151,7 @@
HYDU_FUNC_ENTER();
- if (HYD_handle.user_global.prepend_rank == 0) {
+ if (HYD_ui_info.prepend_rank == 0) {
status = HYDU_sock_write(STDOUT_FILENO, buf, buflen, &sent, &closed);
HYDU_ERR_POP(status, "unable to write data to stdout\n");
HYDU_ASSERT(!closed, status);
@@ -194,7 +186,7 @@
HYDU_FUNC_ENTER();
- if (HYD_handle.user_global.prepend_rank == 0) {
+ if (HYD_ui_info.prepend_rank == 0) {
status = HYDU_sock_write(STDERR_FILENO, buf, buflen, &sent, &closed);
HYDU_ERR_POP(status, "unable to write data to stderr\n");
HYDU_ASSERT(!closed, status);
Modified: mpich2/trunk/src/pm/hydra/ui/utils/uiu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/utils/uiu.h 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/ui/utils/uiu.h 2011-01-03 13:03:34 UTC (rev 7652)
@@ -7,7 +7,7 @@
#ifndef UIU_H_INCLUDED
#define UIU_H_INCLUDED
-#include "hydra.h"
+#include "hydra_server.h"
void HYD_uiu_init_params(void);
void HYD_uiu_free_params(void);
Modified: mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
void HYDU_init_user_global(struct HYD_user_global *user_global)
{
@@ -24,7 +24,6 @@
user_global->enablex = -1;
user_global->debug = -1;
- user_global->prepend_rank = -1;
user_global->auto_cleanup = -1;
Modified: mpich2/trunk/src/pm/hydra/utils/args/args.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/args/args.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/args/args.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
static int exists(char *filename)
{
@@ -302,7 +302,7 @@
HYD_status HYDU_parse_hostfile(char *hostfile, struct HYD_node **node_list,
HYD_status(*process_token) (char *token, int newline,
- struct HYD_node **node_list))
+ struct HYD_node ** node_list))
{
char line[HYD_TMP_STRLEN], **tokens;
FILE *fp;
Modified: mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/dbg/dbg.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
char *HYD_dbg_prefix = (char *) "unknown";
Modified: mpich2/trunk/src/pm/hydra/utils/env/env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/env/env.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/env/env.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bsci.h"
HYD_status HYDU_env_to_str(struct HYD_env *env, char **str)
Modified: mpich2/trunk/src/pm/hydra/utils/launch/launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/launch/launch.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/launch/launch.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "bind.h"
HYD_status HYDU_create_process(char **client_arg, struct HYD_env *env_list,
Modified: mpich2/trunk/src/pm/hydra/utils/others/others.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/others/others.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/others/others.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
int HYDU_local_to_global_id(int local_id, int start_pid, int core_count, int global_core_count)
{
Modified: mpich2/trunk/src/pm/hydra/utils/signals/signals.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/signals/signals.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/signals/signals.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
HYD_status HYDU_set_signal(int signum, void (*handler) (int))
{
Modified: mpich2/trunk/src/pm/hydra/utils/sock/sock.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/sock/sock.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/sock/sock.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
#include "demux.h"
struct fwd_hash {
Modified: mpich2/trunk/src/pm/hydra/utils/string/string.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/string/string.c 2011-01-03 12:58:56 UTC (rev 7651)
+++ mpich2/trunk/src/pm/hydra/utils/string/string.c 2011-01-03 13:03:34 UTC (rev 7652)
@@ -4,7 +4,7 @@
* See COPYRIGHT in top-level directory.
*/
-#include "hydra_utils.h"
+#include "hydra.h"
HYD_status HYDU_list_append_strlist(char **src_strlist, char **dest_strlist)
{
More information about the mpich2-commits
mailing list