5 | | == Example of co-allocated MUSCLE job == |
| 5 | == Example (Fusion - Transport Turbulence Equilibrium) == |
| 6 | * Install your application on every cluster you wish to use |
| 7 | * register it on every cluster using [http://apps.man.poznan.pl/trac/qcg-computing/wiki/ComunityModules QCG Community Modules (QCE)] mechanism: |
| 8 | {{{ |
| 9 | qcg-module-create -g plggmuscle Fusion/Turbulence |
| 10 | }}} |
| 11 | The module must bear the same name on every cluster. Inside the module you can set/prepend any environment variable, add dependencies to other modules, e.g.: |
| 12 | {{{ |
| 13 | #%Module 1.0 |
| 14 | |
| 15 | |
| 16 | proc ModulesHelp { } { |
| 17 | puts stderr "\tName: Fusion/Turbulence" |
| 18 | puts stderr "\tVersion: 0.1" |
| 19 | puts stderr "\tMaintainer: plgmamonski" |
| 20 | } |
| 21 | |
| 22 | module-whatis "Fusion/Turbulence, 0.1" |
| 23 | |
| 24 | #add path to the native MUSCLE kernels |
| 25 | prepend-path PATH /home/plgrid-groups/plggmuscle/fusionkernels/bin/ |
| 26 | |
| 27 | set curMod [module-info name] |
| 28 | |
| 29 | if { [ module-info mode load ] } { |
| 30 | puts stderr "$curMod load complete." |
| 31 | } |
| 32 | |
| 33 | if { [ module-info mode remove ] } { |
| 34 | puts stderr "$curMod unload complete." |
| 35 | } |
| 36 | }}} |
| 37 | You can set there two environment variables interpreted by the MUSCLE framework: |
| 38 | * MUSCLE_CLASSPATH |
| 39 | * MUSCLE_LIBPATH |
| 40 | to set Java classpath and the path of dynamically loadable libraries. Thanks to this mechanism you can use single abstract CxA that do not contain any site-specific paths. Also you can load the module in interactive QCG job: |
| 41 | {{{ |
| 42 | bash-4.1$ module load Fusion/Turbulence |
| 43 | Fusion/Turbulence load complete |
| 44 | }}} |
| 45 | * Prepare XML job description: |