1 | | = Welcome to Trac 0.12 = |
2 | | |
3 | | Trac is a '''minimalistic''' approach to '''web-based''' management of |
4 | | '''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress. |
5 | | |
6 | | All aspects of Trac have been designed with the single goal to |
7 | | '''help developers write great software''' while '''staying out of the way''' |
8 | | and imposing as little as possible on a team's established process and |
9 | | culture. |
10 | | |
11 | | As all Wiki pages, this page is editable, this means that you can |
12 | | modify the contents of this page simply by using your |
13 | | web-browser. Simply click on the "Edit this page" link at the bottom |
14 | | of the page. WikiFormatting will give you a detailed description of |
15 | | available Wiki formatting commands. |
16 | | |
17 | | "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created |
18 | | a new Trac environment, containing a default set of wiki pages and some sample |
19 | | data. This newly created environment also contains |
20 | | [wiki:TracGuide documentation] to help you get started with your project. |
21 | | |
22 | | You can use [wiki:TracAdmin trac-admin] to configure |
23 | | [http://trac.edgewall.org/ Trac] to better fit your project, especially in |
24 | | regard to ''components'', ''versions'' and ''milestones''. |
25 | | |
26 | | |
27 | | TracGuide is a good place to start. |
28 | | |
29 | | Enjoy! [[BR]] |
30 | | ''The Trac Team'' |
31 | | |
32 | | == Starting Points == |
33 | | |
34 | | * TracGuide -- Built-in Documentation |
35 | | * [http://trac.edgewall.org/ The Trac project] -- Trac Open Source Project |
36 | | * [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions |
37 | | * TracSupport -- Trac Support |
38 | | |
39 | | For a complete list of local wiki pages, see TitleIndex. |
| 1 | = PSNC DRMAA for SLURM = |
| 2 | == Introduction == |
| 3 | |
| 4 | PSNC DRMAA for [#slurm Simple Linux Utility for Resource Management (SLURM)] is an implementation of [#open_grid_forum Open Grid Forum] [#drmaa DRMAA 1.0] (Distributed Resource Management Application API) [#specification specification] |
| 5 | for submission and control of jobs to [#slurm Simple Linux Utility for Resource Management (SLURM)]. Using DRMAA, |
| 6 | grid applications builders, portal developers and ISVs can use the same |
| 7 | high-level API to link their software with different cluster/resource |
| 8 | management systems. |
| 9 | |
| 10 | This software also enables the integration of [#smoa_comp SMOA Computing] with the |
| 11 | underlying SLURM system for remote multi-user job submission and control |
| 12 | over Web Services. |
| 13 | |
| 14 | |
| 15 | == Installation == |
| 16 | |
| 17 | To compile and install the library just go to main source directory |
| 18 | and type:: |
| 19 | {{{ |
| 20 | #!sh |
| 21 | $ ./configure [options] && make |
| 22 | $ sudo make install |
| 23 | }}} |
| 24 | The library was tested with Simple Linux Utility for Resource Management version 2.1.13. |
| 25 | If you encountered any problems using the library on the different systems, please use |
| 26 | the contact e-mails for reporting the problem. |
| 27 | |
| 28 | Notable `./configure` script options: |
| 29 | |
| 30 | `--with-slurm-inc` SLURM_INCLUDE_PATH |
| 31 | Path to SLURM header files (i.e. directory containing `slurm/slurm.h` ). By default the library tries |
| 32 | to guess the `SLURM_INCLUDE_PATH` and `SLURM_LIBRARY_PATH` based on location |
| 33 | of the `srun` executable. |
| 34 | |
| 35 | `--with-slurm-lib` SLURM_LIBRARY_PATH |
| 36 | Path to SLURM libraries (i.e. directory containing `libslurm.a` ). |
| 37 | |
| 38 | `--prefix` INSTALLATION_DIRECTORY |
| 39 | Root directory where PSNC DRMAA for SLURM shall be installed. |
| 40 | When not given library is installed in `/usr/local`. |
| 41 | |
| 42 | `--enable-debug` |
| 43 | Compiles library with debugging enabled (with debugging symbols not |
| 44 | stripped, without optimizations, and with many log messages enabled). |
| 45 | Useful when you are to debug DRMAA enabled application |
| 46 | or investigate problems with DRMAA library itself. |
| 47 | |
| 48 | There are no unusual requirements for basic usage of library: ANSI C |
| 49 | compiler and standard make program should suffice. If you have taken |
| 50 | sources directly from SVN repository or wish to run test-suite you would |
| 51 | need additional [#dev_tools developer tools]. For further information regarding |
| 52 | GNU build system see the INSTALL file. |
| 53 | |
| 54 | |
| 55 | == Configuration == |
| 56 | |
| 57 | During DRMAA session initialization (`drmaa_init`) library tries to |
| 58 | read its configuration parameters from locations: `/etc/slurm_drmaa.conf`, |
| 59 | `~/.slurm_drmaa.conf` and from file given in `SLURM_DRMAA_CONF` environment |
| 60 | variable (if set to non-empty string). If multiple configuration |
| 61 | sources are present then all configurations are merged with values |
| 62 | from user-defined files taking precedence (in following order: |
| 63 | `$SLURM_DRMAA_CONF`, `~/.slurm_drmaa.conf`, `/etc/slurm_drmaa.conf`). |
| 64 | |
| 65 | Currently recognized configuration parameters are: |
| 66 | |
| 67 | cache_job_state |
| 68 | According to DRMAA specification every `drmaa_job_ps()` call should |
| 69 | query DRM system for job state. With this option one may optimize |
| 70 | communication with DRM. If set to positive integer `drmaa_job_ps()` |
| 71 | returns remembered job state without communicating with DRM for |
| 72 | `cache_job_state` seconds since last update. By default library |
| 73 | conforms to specification (no caching will be performed). |
| 74 | |
| 75 | Type: integer, default: 0 |
| 76 | |
| 77 | job_categories |
| 78 | Dictionary of job categories. It's keys are job categories names |
| 79 | mapped to [#native_specification native specification] strings. Attributes set by job |
| 80 | category can be overridden by corresponding DRMAA attributes or |
| 81 | native specification. Special category name `default` is used when |
| 82 | `drmaa_job_category` job attribute was not set. |
| 83 | |
| 84 | Type: dictionary with string values, default: empty dictionary |
| 85 | |
| 86 | |
| 87 | === Configuration file syntax === |
| 88 | |
| 89 | Configuration file is in form a dictionary. |
| 90 | Dictionary is set of zero or more key-value pairs. |
| 91 | Key is a string while value could be a string, an integer |
| 92 | or another dictionary. |
| 93 | |
| 94 | {{{ |
| 95 | configuration: dictionary | dictionary_body |
| 96 | dictionary: '{' dictionary_body '}' |
| 97 | dictionary_body: (string ':' value ',')* |
| 98 | value: integer | string | dictionary |
| 99 | string: unquoted-string | single-quoted-string | double-quoted-string |
| 100 | unquoted-string: [^ \t\n\r:,0-9][^ \t\n\r:,]* |
| 101 | single-quoted-string: '[^']*' |
| 102 | double-quoted-string: "[^"]*" |
| 103 | integer: [0-9]+ |
| 104 | }}} |
| 105 | |
| 106 | [=#native_specification] |
| 107 | == Native specification == |
| 108 | |
| 109 | DRMAA interface allows to pass DRM dependent job submission options. |
| 110 | Those options may be specified directly by setting `drmaa_native_specification` job |
| 111 | template attribute or indirectly by the `drmaa_job_category` job template attribute. |
| 112 | The legal format of the native options looks like:: |
| 113 | {{{ |
| 114 | -A My_job_name -s -N 1=10 |
| 115 | }}} |
| 116 | |
| 117 | ||= Native specification =||= Description =|| |
| 118 | || `-A, --account=`\name || Charge job to specified accounts || |
| 119 | || `--acctg-freq` || Define the job accounting sampling interval || |
| 120 | || `--comment` || An arbitrary comment || |
| 121 | || `-C, --constraint=`\list || Specify a list of constraints || |
| 122 | || `--contiguous` || If set, then the allocated nodes must form a contiguous set || |
| 123 | || `--exclusive` || Allocate nodenumber of tasks to invoke on each nodes in exclusive mode when cpu consumable resource is enabled || |
| 124 | || `--mem=`\MB || Minimum amount of real memory || |
| 125 | || `--mem-per-cpu=`\MB || Maximum mount of real memory per allocated cpu required by a job || |
| 126 | || `--mincpus=`\n || Minimum number of logical processors (threads) per node || |
| 127 | || `-N, --nodes=`\N || Number of nodes on which to run (N = min[-max]) || |
| 128 | || `--ntasks-per-node=`\n || Number of tasks to invoke on each node || |
| 129 | || `-p, --partition=`\partition || Partition requested || |
| 130 | || `--qos=`\qos || Quality of Serice || |
| 131 | || `--requeue` || If set, permit the job to be requeued || |
| 132 | || `--reservation=`\name || Allocate resources from named reservation || |
| 133 | || `-s, --share` || Job allocation can share nodes with other running jobs || |
| 134 | || `-w, --nodelist=`\hosts || Request a specific list of hosts || |
| 135 | |
| 136 | |
| 137 | Description of each parameter can be found in `man sbatch`. |
| 138 | |
| 139 | == Release notes == |
| 140 | |
| 141 | * 1.0.0 - first public release |
| 142 | |
| 143 | === Known bugs and limitations === |
| 144 | |
| 145 | |
| 146 | Library covers all [#specification DRMAA 1.0 specification] with exceptions listed |
| 147 | below. It was successfully tested with [#slurm Simple Linux Utility for Resource Management (SLURM) 2.1.13] on Linux and passes 44/44 tests of the [#testsuite official DRMAA test-suite] (running as SLURM administrator). |
| 148 | Using regular user account SLURM DRMAA passes 40/44 tests of the official DRMAA test-suite. |
| 149 | |
| 150 | Known limitations: |
| 151 | |
| 152 | * `drmaa_control` options `DRMAA_CONTROL_HOLD`, `DRMAA_CONTROL_SUSPEND`, `DRMAA_CONTROL_RELEASE`, `DRMAA_CONTROL_RESUME` are only available for users being SLURM administrators |
| 153 | * `drmaa_wct_slimit` not implemented |
| 154 | * optional attributes `drmaa_deadline_time`, `drmaa_duration_hlimit`, `drmaa_duration_slimit`, `drmaa_transfer_files` not implemented |
| 155 | |
| 156 | |
| 157 | === Authors === |
| 158 | |
| 159 | The library was developed by: |
| 160 | |
| 161 | * Michal Matloka - core implementation |
| 162 | |
| 163 | This library relies heavily on the ''Fedstage DRMAA utils'' code developed by: |
| 164 | |
| 165 | * Lukasz Ciesnik. |
| 166 | |
| 167 | [=#dev_tools] |
| 168 | === Developer tools === |
| 169 | |
| 170 | Although not needed for library user the following tools may be required |
| 171 | if you intend to develop PSNC DRMAA for SLURM: |
| 172 | |
| 173 | * GNU autotools (autoconf, automake, libtool), |
| 174 | * [#bison Bison] parser generator, |
| 175 | * [#docutils Docutils] for processing this `README`, |
| 176 | * [#latex LaTeX] for creating documentation in PDF format, |
| 177 | * [#doxygen Doxygen] for generating source code documentation. |
| 178 | |
| 179 | === Links === |
| 180 | |
| 181 | [=#bison] Bison: http://www.gnu.org/software/bison/ \\ |
| 182 | [=#docutils] Docutils: http://docutils.sourceforge.net/ \\ |
| 183 | [=#latex] LaTeX: http://www.latex-project.org/ \\ |
| 184 | [=#doxygen] Doxygen: http://www.stack.nl/~dimitri/doxygen/ \\ |
| 185 | [=#drmaa] DRMAA: http://www.drmaa.org/ \\ |
| 186 | [=#open_grid_forum] Open Grid Forum: http://www.gridforum.org/ \\ |
| 187 | [=#specification] DRMAA 1.0 specification: http://www.ogf.org/documents/GFD.133.pdf \\ |
| 188 | [=#testsuite] Official DRMAA test-suite: http://drmaa.org/testsuite.php \\ |
| 189 | [=#smoa_comp] SMOA Computing: http://larix.man.poznan.pl/wiki/SMOA_Computing \\ |
| 190 | [=#slurm] Simple Linux Utility for Resource Management (SLURM): https://computing.llnl.gov/linux/slurm/ \\ |
| 191 | |
| 192 | |
| 193 | === License === |
| 194 | |
| 195 | Copyright (C) 2009-2010 Poznan Supercomputing and Networking Center |
| 196 | |
| 197 | This program is free software: you can redistribute it and/or modify |
| 198 | it under the terms of the GNU General Public License as published by |
| 199 | the Free Software Foundation, either version 3 of the License, or |
| 200 | (at your option) any later version. |
| 201 | |
| 202 | This program is distributed in the hope that it will be useful, |
| 203 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 204 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 205 | GNU General Public License for more details. |
| 206 | |
| 207 | You should have received a copy of the GNU General Public License |
| 208 | along with this program. If not, see http://www.gnu.org/licenses/. |