[mpich2-commits] r6619 - in mpich2/trunk/src/pm/hydra: . tools/rmk tools/rmk/lsf

balaji at mcs.anl.gov balaji at mcs.anl.gov
Tue May 4 11:44:48 CDT 2010


Author: balaji
Date: 2010-05-04 11:44:48 -0500 (Tue, 04 May 2010)
New Revision: 6619

Added:
   mpich2/trunk/src/pm/hydra/tools/rmk/lsf/
   mpich2/trunk/src/pm/hydra/tools/rmk/lsf/Makefile.mk
   mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf.h
   mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_init.c
   mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_query_node_list.c
Modified:
   mpich2/trunk/src/pm/hydra/configure.in
   mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk
Log:
Initial draft of the LSF resource management kernel.

Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in	2010-05-04 15:48:06 UTC (rev 6618)
+++ mpich2/trunk/src/pm/hydra/configure.in	2010-05-04 16:44:48 UTC (rev 6619)
@@ -196,9 +196,9 @@
 #########################################################################
 # Check what resource management kernel we should use
 #########################################################################
-AC_ARG_WITH(hydra-rmk, [  --with-hydra-rmk=name - Resource Management Kernel (pbs)],
+AC_ARG_WITH(hydra-rmk, [  --with-hydra-rmk=name - Resource Management Kernel (pbs, lsf)],
 		    [ hydra_rmk=$withval ],
-		    [ hydra_rmk="dummy,pbs" ])
+		    [ hydra_rmk="dummy,pbs,lsf" ])
 AC_MSG_CHECKING(resource management kernel)
 AC_MSG_RESULT($hydra_rmk)
 hydra_rmk_names="`echo $hydra_rmk | sed -e 's/:/ /g' -e 's/,/ /g'`"
@@ -214,6 +214,10 @@
 		hydra_rmk_pbs=true
 		available_rmk=`echo $available_rmk pbs`
 		;;
+	lsf)
+		hydra_rmk_lsf=true
+		available_rmk=`echo $available_rmk lsf`
+		;;
 	*)
 		;;
     esac
@@ -250,6 +254,7 @@
 AC_SUBST(hydra_rmk_name_array)
 AC_SUBST(hydra_rmk_init_array)
 AM_CONDITIONAL([hydra_rmk_pbs], [$hydra_rmk_pbs])
+AM_CONDITIONAL([hydra_rmk_lsf], [$hydra_rmk_lsf])
 
 
 #########################################################################

Modified: mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk	2010-05-04 15:48:06 UTC (rev 6618)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk	2010-05-04 16:44:48 UTC (rev 6619)
@@ -12,3 +12,7 @@
 if hydra_rmk_pbs
 include tools/rmk/pbs/Makefile.mk
 endif
+
+if hydra_rmk_lsf
+include tools/rmk/lsf/Makefile.mk
+endif

Added: mpich2/trunk/src/pm/hydra/tools/rmk/lsf/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/lsf/Makefile.mk	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/lsf/Makefile.mk	2010-05-04 16:44:48 UTC (rev 6619)
@@ -0,0 +1,8 @@
+# -*- Mode: Makefile; -*-
+#
+# (C) 2008 by Argonne National Laboratory.
+#     See COPYRIGHT in top-level directory.
+#
+
+libhydra_la_SOURCES += $(top_srcdir)/tools/rmk/lsf/rmk_lsf_init.c \
+	$(top_srcdir)/tools/rmk/lsf/rmk_lsf_query_node_list.c

Added: mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf.h	2010-05-04 16:44:48 UTC (rev 6619)
@@ -0,0 +1,14 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef RMK_LSF_H_INCLUDED
+#define RMK_LSF_H_INCLUDED
+
+#include "hydra_base.h"
+
+HYD_status HYDT_rmkd_lsf_query_node_list(struct HYD_node **node_list);
+
+#endif /* RMK_LSF_H_INCLUDED */

Added: mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_init.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_init.c	2010-05-04 16:44:48 UTC (rev 6619)
@@ -0,0 +1,22 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "rmki.h"
+#include "rmk_lsf.h"
+
+HYD_status HYDT_rmki_lsf_init(void)
+{
+    HYD_status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYDT_rmki_fns.query_node_list = HYDT_rmkd_lsf_query_node_list;
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Added: mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_query_node_list.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/lsf/rmk_lsf_query_node_list.c	2010-05-04 16:44:48 UTC (rev 6619)
@@ -0,0 +1,48 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "rmki.h"
+#include "rmk_lsf.h"
+
+HYD_status HYDT_rmkd_lsf_query_node_list(struct HYD_node **node_list)
+{
+    char *hosts, *hostname, *num_procs_str;
+    int num_procs;
+    HYD_status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    if (MPL_env2str("LSB_MCPU_HOSTS", (const char **) &hosts) == 0)
+        hosts = NULL;
+
+    if (hosts == NULL) {
+        *node_list = NULL;
+        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "No LSF node list found\n");
+    }
+    else {
+        while (1) {
+            hostname = strtok(hosts, " ");
+            if (hostname == NULL)
+                break;
+
+            num_procs_str = strtok(hosts, " ");
+            HYDU_ASSERT(num_procs_str, status);
+
+            num_procs = atoi(num_procs_str);
+
+            status = HYDU_add_to_node_list(hostname, num_procs, node_list);
+            HYDU_ERR_POP(status, "unable to add to node list\n");
+        }
+    }
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}



More information about the mpich2-commits mailing list