| <!--#include virtual="header.txt"--> |
| |
| <h1>Maui Scheduler Integration Guide</h1> |
| <h2>Overview</h2> |
| <p>Maui configuration is quite complicated and is really beyond the scope |
| of any documents we could supply with SLURM. |
| The best resource for Maui configuration information is the |
| online documents at Cluster Resources Inc.: |
| <a href="http://www.clusterresources.com/products/maui/docs/mauiadmin.shtml"> |
| http://www.clusterresources.com/products/maui/docs/mauiadmin.shtml</a>. |
| |
| <h2>Configuration</h2> |
| <p>First, download the Maui scheduler kit from their web site |
| <a href="http://www.clusterresources.com/pages/products/maui-cluster-scheduler.php"> |
| http://www.clusterresources.com/pages/products/maui-cluster-scheduler.php</a>. |
| Note: maui-3.2.6p9 has been validated with SLURM, other versions |
| should also work properly. |
| We anticipate the Maui Scheduler to be upgraded to utilize a more |
| extensive interface to Slurm in early 2007. |
| The newer Maui Scheduler will be able to utilize a more ful featured |
| interface to Slurm as descripted in the |
| <a href="moab.html">Moab Cluster Suite Integration Guide</a>. |
| This guide will be upgrade at that time.</p> |
| |
| <h3>Maui configuration</h3> |
| <p>Make sure that SLURM is installed and running before building Maui. |
| Then build Maui from its source distribution. This is a two step process:</p> |
| <ol> |
| <li>./configure --with-key=42 --with-wiki |
| <li>gmake |
| </ol> |
| <p>The key of 42 is arbitrary. You can use any value, but will need to |
| specify the same value as a SLURM configuration parameter.</p> |
| |
| <p>Update the Maui configuration file <i>maui.conf</i> (Copy the file |
| maui-3.2.6p9/maui.cfg.dist to maui.conf). Add the following configuration |
| paramters to maui.conf:</p> |
| <pre> |
| RMCFG[host] TYPE=WIKI |
| RMPORT 7321 # selected port |
| RMHOST host |
| RMAUTHTYPE[host] NONE |
| </pre> |
| <p><i>host</i> is the hostname where the SLURM controller is running. |
| This must match the value of <i>ControlMachine</i> configured in |
| slurm.conf. Note that <i>localhost</i> doesn't work. If you run Maui |
| and SLURM on the same machine, you must specify the actual host name. |
| The above example uses a TCP port number of 7321 for |
| communications between SLURM and Maui, but you can pick any port that |
| is available and accessible. You can also set a polling interval with</p> |
| <pre> |
| RMPOLLINTERVAL 00:00:20 |
| </pre> |
| <p>It may be desired to have Maui poll SLURM quite often -- |
| in this case every 20 seconds. |
| Note that a job submitted to an idle cluster will not be initiated until |
| the Maui daemon polls SLURM and decides to make it run, so the value of |
| RMPOLLINTERVAL should be set to a value appropriate for your site |
| considering both the desired system responsiveness and the overhead of |
| executing Maui daemons too frequently.</p> |
| |
| <p>In order for Maui to be able to access your SLURM partition, you will |
| need to define in maui.conf a partition with the same name as the SLURM |
| partition(s). For example if nodes "linux[0-3]" are in SLURM partition |
| "PartA", slurm.conf includes a line of this sort:</p> |
| <pre> |
| PartitionName=PartA Default=yes Nodes=linux[0-3] |
| </pre> |
| <p>The add the corresponding lines to maui.cfg:</p> |
| <pre> |
| PARTITIONMODE ON |
| NODECFG[linux0] PARTITION=PartA |
| NODECFG[linux1] PARTITION=PartA |
| NODECFG[linux2] PARTITION=PartA |
| NODECFG[linux3] PARTITION=PartA |
| </pre> |
| |
| <p>Set the following environment variables and path: |
| <pre> |
| set path=(/root/MAUI/maui-3.2.6p9/bin $path) |
| setenv MAUIHOMEDIR /root/MAUI/maui-3.2.6p9 |
| </pre> |
| |
| <p class="footer"><a href="#top">top</a></p> |
| |
| <h3>SLURM configuration</h3> |
| <p>Set the slurm.conf scheduler parameters as follows:</p> |
| <pre> |
| SchedulerType=sched/wiki |
| SchedulerPort=7321 |
| SchedulerAuth=42 (for Slurm version 1.1 and earlier only) |
| </pre> |
| <p>In this case, "SchedulerAuth" has been set to 42, which was the key |
| specified when Maui was configured above. Just make sure the numbers match. |
| The Maui folks have assured us that the key won't always be a compiled-in |
| feature.</p> |
| |
| <p>For Slurm version 1.2 or higher, the authentication key |
| is stored in a file specific to the wiki-plugin named |
| <i>wiki.conf</i>. |
| This file should be protected from reading by users. |
| It only needs to be readable by <i>SlurmUser</i> (as configured |
| in <i>slurm.conf</i>) and only needs to exist on computers |
| where the <i>slurmctld</i> daemon executes. |
| More information about wiki.conf is available in |
| a man page distributed with SLURM, although that |
| includes a description of keywords presently only |
| supported by the sched/wiki2 plugin for use with the |
| Moab Scheduler.</p> |
| |
| <p>The wiki.conf keywords currently supported by Maui include:</p> |
| |
| <p><b>AuthKey</b> is a DES based encryption key used to sign |
| communications between SLURM and Maui or Moab. |
| This use of this key is essential to insure that a user |
| not build his own program to cancel other user's jobs in |
| SLURM. |
| This should be no more than 32-bit unsigned integer and match |
| the the encryption key in Maui (<i>--with-key</i> on the |
| configure line) or Moab (<i>KEY</i> parameter in the |
| <i>moab-private.cfg</i> file). |
| Note that SLURM's wiki plugin does not include a mechanism |
| to submit new jobs, so even without this key nobody could |
| run jobs as another user.</p> |
| |
| <p><b>ExcludePartitions</b> is used to identify partitions |
| whose jobs are to be scheduled directly by SLURM rather |
| than Maui. |
| These jobs will be scheduled on a First-Come-First-Served |
| basis. |
| This may provide faster response times than Maui scheduling. |
| Maui will account for and report the jobs, but their initiation |
| will be outside of Maui's control. |
| Note that Maui controls for resource reservation, fair share |
| scheduling, etc. will not apply to the initiation of these jobs. |
| If more than one partition is to be scheduled directly by |
| Slurm, use a comma separator between their names.</p> |
| |
| <p><b>HidePartitionJobs</b> identifies partitions whose jobs are not |
| to be reported to Maui. |
| These jobs will not be accounted for or otherwise visible to Maui. |
| Any partitions listed here must also be listed in <b>ExcludePartitions</b>. |
| If more than one partition is to have its jobs hidden, use a comma |
| separator between their names.</p> |
| |
| <p>Here is a sample <i>wiki.conf</i> file</p> |
| <pre> |
| # wiki.conf |
| # SLURM's wiki plugin configuration file |
| # |
| # Matches Maui's --with-key configuration parameter |
| AuthKey=42 |
| # |
| # SLURM to directly schedule "debug" partition |
| # and hide the jobs from Maui |
| ExcludePartitions=debug |
| HidePartitionJobs=debug |
| </pre> |
| </p> |
| |
| <p class="footer"><a href="#top">top</a></p> |
| |
| <p style="text-align:center;">Last modified 17 September 2007</p> |
| |
| <!--#include virtual="footer.txt"--> |