FYI, SLURM is now included in the official FreeBSD ports collection.

It might be nice to post the following instructions on the web and/or in the docs:

~~~

FreeBSD users can install the latest stable slurm as a binary package using:

    pkg install slurm-hpc

Or, it can be built and installed from source using:

    cd /usr/ports/sysutils/slurm-hpc && make install

The binary package installs a minimal slurm configuration suitable for typical compute nodes. Installing from source allows the user to enable options such as mysql, postgresql, and gui tools via a configuration menu.

~~~

A few patches are attached. I'm withholding additional patches to task_cgroup_cpuset.c pending further testing with FreeBSD's hwloc.

Regards,

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Jason W. Bacon
  [email protected]

  Circumstances don't make a man:
  They reveal him.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- configure.orig      2013-09-10 16:44:33.000000000 -0500
+++ configure   2013-11-14 10:23:02.000000000 -0600
@@ -21594,12 +21594,9 @@
 main ()
 {
 
-                                       int main()
-                                       {
                                                MYSQL mysql;
                                                (void) mysql_init(&mysql);
                                                (void) mysql_close(&mysql);
-                                       }
 
   ;
   return 0;
@@ -21636,12 +21633,9 @@
 main ()
 {
 
-                                               int main()
-                                               {
                                                        MYSQL mysql;
                                                        (void) 
mysql_init(&mysql);
                                                        (void) 
mysql_close(&mysql);
-                                               }
 
   ;
   return 0;
@@ -21803,12 +21797,9 @@
 main ()
 {
 
-                               int main()
-                                       {
                                        PGconn     *conn;
                                        conn = PQconnectdb("dbname = postgres");
                                                (void) PQfinish(conn);
-                               }
 
   ;
   return 0;
--- 
src/plugins/acct_gather_filesystem/lustre/acct_gather_filesystem_lustre.c.orig  
    2013-09-10 16:44:33.000000000 -0500
+++ src/plugins/acct_gather_filesystem/lustre/acct_gather_filesystem_lustre.c   
2013-11-14 10:23:02.000000000 -0600
@@ -49,6 +49,8 @@
 #include <getopt.h>
 #include <netinet/in.h>
 
+#include <limits.h>
+
 
 #include "src/common/slurm_xlator.h"
 #include "src/common/slurm_acct_gather_filesystem.h"
--- src/plugins/select/cons_res/dist_tasks.c.orig       2013-09-10 
16:44:33.000000000 -0500
+++ src/plugins/select/cons_res/dist_tasks.c    2013-11-14 10:23:02.000000000 
-0600
@@ -271,6 +271,30 @@
        return SLURM_SUCCESS;
 }
 
+// These were nested below, which is not legal in standard C
+
+       /* qsort compare function for ascending int list */
+       int _cmp_int_ascend (const void *a, const void *b)
+       {
+               return (*(int*)a - *(int*)b);
+       }
+
+       /* qsort compare function for descending int list */
+       int _cmp_int_descend (const void *a, const void *b)
+       {
+               return (*(int*)b - *(int*)a);
+       }
+
+       int* sockets_cpu_cnt;
+
+       /* qsort compare function for board combination socket
+        * list */
+       int _cmp_sock (const void *a, const void *b)
+       {
+                return (sockets_cpu_cnt[*(int*)b] -
+                                sockets_cpu_cnt[*(int*)a]);
+       }
+
 /* sync up core bitmap with new CPU count using a best-fit approach
  * on the available resources on each node
  *
@@ -298,7 +322,6 @@
        int elig_idx, comb_brd_idx, sock_list_idx, comb_min, board_num;
        int* boards_cpu_cnt;
        int* sort_brds_cpu_cnt;
-       int* sockets_cpu_cnt;
        int* board_combs;
        int* socket_list;
        int* elig_brd_combs;
@@ -316,26 +339,6 @@
        uint64_t ncomb_brd;
        bool sufficient,best_fit_sufficient;
 
-       /* qsort compare function for ascending int list */
-       int _cmp_int_ascend (const void *a, const void *b)
-       {
-               return (*(int*)a - *(int*)b);
-       }
-
-       /* qsort compare function for descending int list */
-       int _cmp_int_descend (const void *a, const void *b)
-       {
-               return (*(int*)b - *(int*)a);
-       }
-
-       /* qsort compare function for board combination socket
-        * list */
-       int _cmp_sock (const void *a, const void *b)
-       {
-                return (sockets_cpu_cnt[*(int*)b] -
-                                sockets_cpu_cnt[*(int*)a]);
-       }
-
        if (!job_res)
                return;
 

Reply via email to