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''. |
| 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 !LoadLeveler version 3.5. (for AIX operating systems). |
| 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-ll-inc` LL_INCLUDE_PATH |
| 31 | Path to LL header files (i.e. directory containing `llapi.h` ). By default the library tries |
| 32 | to guess the `LL_INCLUDE_PATH` and `LL_LIBRARY_PATH` based on location |
| 33 | of the `llsubmit` executable. |
| 34 | |
| 35 | `--with-ll-lib` LL_LIBRARY_PATH |
| 36 | Path to LL libraries (i.e. directory containing `libllapi.a` ). |
| 37 | |
| 38 | `--prefix` INSTALLATION_DIRECTORY |
| 39 | Root directory where PSNC DRMAA for !LoadLeveler shall be installed. |
| 40 | When not given library is installed alongside with LL. |
| 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. |
39 | | For a complete list of local wiki pages, see TitleIndex. |
| 68 | cache_job_state |
| 69 | According to DRMAA specification every `drmaa_job_ps()` call should |
| 70 | query DRM system for job state. With this option one may optimize |
| 71 | communication with DRM. If set to positive integer `drmaa_job_ps()` |
| 72 | returns remembered job state without communicating with DRM for |
| 73 | `cache_job_state` seconds since last update. By default library |
| 74 | conforms to specification (no caching will be performed). |
| 75 | |
| 76 | Type: integer, default: 0 |
| 77 | |
| 78 | job_categories |
| 79 | Dictionary of job categories. It's keys are job categories names |
| 80 | mapped to [=#native_specification native specification] strings. Attributes set by job |
| 81 | category can be overridden by corresponding DRMAA attributes or |
| 82 | native specification. Special category name `default` is used when |
| 83 | `drmaa_job_category` job attribute was not set. |
| 84 | |
| 85 | Type: dictionary with string values, default: empty dictionary |
| 86 | |
| 87 | terminate_job_on_vacated |
| 88 | Attribute which determines if job should be terminated just after entering the `vacated` state. |
| 89 | |
| 90 | Type: integer, default: 1 |
| 91 | |
| 92 | === Configuration file syntax === |
| 93 | |
| 94 | Configuration file is in form a dictionary. |
| 95 | Dictionary is set of zero or more key-value pairs. |
| 96 | Key is a string while value could be a string, an integer |
| 97 | or another dictionary. |
| 98 | |
| 99 | |
| 100 | {{{ |
| 101 | configuration: dictionary | dictionary_body |
| 102 | dictionary: '{' dictionary_body '}' |
| 103 | dictionary_body: (string ':' value ',')* |
| 104 | value: integer | string | dictionary |
| 105 | string: unquoted-string | single-quoted-string | double-quoted-string |
| 106 | unquoted-string: [^ \t\n\r:,0-9][^ \t\n\r:,]* |
| 107 | single-quoted-string: '[^']*' |
| 108 | double-quoted-string: "[^"]*" |
| 109 | integer: [0-9]+ |
| 110 | }}} |
| 111 | [=#native_specification] |
| 112 | == Native specification == |
| 113 | |
| 114 | DRMAA interface allows to pass DRM dependent job submission options. |
| 115 | Those options may be specified directly by setting `drmaa_native_specification` job |
| 116 | template attribute or indirectly by the `drmaa_job_category` job template attribute. |
| 117 | The legal format of the native options looks like:: |
| 118 | {{{ |
| 119 | @ll_cmd_keyword1 = value @ll_cmd_keyword2 = value1 value2 value3 |
| 120 | }}} |
| 121 | where the `ll_cmd_keyword` can be any of the [=#keyword keyword] accepted by the !LoadLeveler. It is user |
| 122 | responsibility to provide legal combination of the `drmaa_native_specification`/`drmaa_job_category` |
| 123 | and the other DRMAA attributes. |
| 124 | |
| 125 | == Release notes == |
| 126 | |
| 127 | * 1.0.1 - first public release |
| 128 | |
| 129 | === Known bugs and limitations === |
| 130 | |
| 131 | Library covers all [#drmaa_specification DRMAA 1.0 specification] with exceptions listed |
| 132 | below. It was successfully tested with [#LoadLeveler IBM Tivoli LoadLeveler 3.5.0.5] on AIX |
| 133 | OS and passes 43/44 tests of the [#test_suite official DRMAA test-suite]. All mandatory and |
| 134 | nearly all optional job attributes (except job run duration soft limit, job run duration hard limit, |
| 135 | drmaa_transfer_files and drmaa_deadline_time) are implemented. |
| 136 | |
| 137 | Known limitations: |
| 138 | |
| 139 | * `drmaa_control()` - `DRMAA_CONTROL_RESUME` and `DRMAA_CONTROL_SUSPEND` are not implemented as suspending jobs in !LoadLeveler requires administrator privileges. |
| 140 | |
| 141 | === Authors === |
| 142 | |
| 143 | The library was developed by: |
| 144 | |
| 145 | * Michal Matloka - core implementation |
| 146 | * Mariusz Mamonski - AIX portability issues |
| 147 | |
| 148 | This library relies heavily on the ''Fedstage DRMAA utils'' code developed by: |
| 149 | |
| 150 | * Lukasz Ciesnik. |
| 151 | |
| 152 | === Acknowledgments === |
| 153 | |
| 154 | We would like to thank [#loni Louisiana Optical Network Initiativ] for providing us access to the clusters managed by !LoadLeveler. |
| 155 | |
| 156 | [=#dev_tools] |
| 157 | === Developer tools === |
| 158 | |
| 159 | Although not needed for library user the following tools may be required |
| 160 | if you intend to develop PSNC DRMAA for !LoadLeveler: |
| 161 | |
| 162 | * GNU autotools (autoconf, automake, libtool), |
| 163 | * [#Bison Bison] parser generator, |
| 164 | * [#docutils Docutils] for processing this `README`, |
| 165 | * [#latex LaTeX] for creating documentation in PDF format, |
| 166 | * [#doxygen Doxygen] for generating source code documentation. |
| 167 | |
| 168 | === Links === |
| 169 | |
| 170 | [=#Bison] Bison: http://www.gnu.org/software/bison/ \\ |
| 171 | [=#docutils] Docutils: http://docutils.sourceforge.net/ \\ |
| 172 | [=#latex] LaTeX: http://www.latex-project.org/ \\ |
| 173 | [=#doxygen] Doxygen: http://www.stack.nl/~dimitri/doxygen/ \\ |
| 174 | [=#DRMAA] DRMAA: http://www.drmaa.org/ \\ |
| 175 | [=#drmaa_specification] DRMAA 1.0 specification: http://www.ogf.org/documents/GFD.133.pdf \\ |
| 176 | [=#test_suite] Official DRMAA test-suite: http://drmaa.org/testsuite.php \\ |
| 177 | [=#smoa_computing]SMOA Computing: http://larix.man.poznan.pl/wiki/SMOA_Computing \\ |
| 178 | [=#LoadLeveler] IBM Tivoli !LoadLeveler: http://www-03.ibm.com/systems/software/loadleveler/index.html \\ |
| 179 | [=#loni] Louisiana Optical Network Initiative: http://loni.org/ \\ |
| 180 | [=#keyword] !LoadLeveler Keywords: http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/topic/com.ibm.cluster.loadl.doc/loadl33/am2ug30223.html#jobkey \\ |