Difference between revisions of "LSF"
Jump to navigation
Jump to search
Line 88: | Line 88: | ||
#BSUB -S 50 | #BSUB -S 50 | ||
− | ### | + | ### Request 24 compute slots (in this case: threads) |
+ | #BSUB -n 24 | ||
+ | |||
+ | ### Execute as shared-memory job | ||
+ | #BSUB -a openmp | ||
### Change to working directory | ### Change to working directory | ||
Line 97: | Line 101: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | This OpenMPI job will start the [[Parallel_Programming|parallel program]] "myapp.exe" with 4 processes. | ||
+ | <syntaxhighlight lang="zsh"> | ||
+ | #!/usr/bin/env zsh | ||
+ | |||
+ | ### Job name | ||
+ | #BSUB -J MPIJOB | ||
+ | |||
+ | ### File where the output should be written | ||
+ | #BSUB -o MPIJOB_OUTPUT | ||
+ | |||
+ | ### Time your job needs to execute, e. g. 30 min | ||
+ | #BSUB -W 0:30 | ||
+ | |||
+ | ### Memory your job needs, e. g. 1024 MB | ||
+ | #BSUB -M 1024 | ||
+ | |||
+ | ### Stack limit per process, e. g. 50 MB | ||
+ | #BSUB -S 50 | ||
+ | |||
+ | ### Request 4 compute slots (in this case: processes) | ||
+ | #BSUB -n 4 | ||
+ | |||
+ | ### Execute as distributed-memory job with OpenMPI | ||
+ | #BSUB -a openmpi | ||
+ | |||
+ | ### Change to working directory | ||
+ | cd /home/user/mywork | ||
+ | |||
+ | ### Execute your application | ||
+ | myapp.exe | ||
+ | </syntaxhighlight> | ||
== References == | == References == | ||
[https://doc.itc.rwth-aachen.de/display/CC/Example+scripts More jobscript examples] | [https://doc.itc.rwth-aachen.de/display/CC/Example+scripts More jobscript examples] |
Revision as of 15:13, 28 March 2018
#BSUB Usage
If you are writing a jobscript for an LSF batch system, the magic cookie is "#BSUB". To use it, start a new line in your script with "#BSUB". Following that, you can put one of the parameters shown below, where the word written in <...> should be replaced with a value.
Basic settings:
Parameter | Function |
-J <name> | job name |
-o <path> | path to the file where the job output is written |
-e <path> | path to the file for the job error output (if not set, it will be written to output file as well) |
Requesting resources:
Parameter | Function | Default |
-W <runlimit> | runtime limit in the format [hour:]minute; once the time specified is up, the job will be killed by the scheduler | 00:15 |
-M <memlimit> | memory limit per process in MB | 512 |
-S <stacklimit> | limit of stack size per process in MB | 10 |
Parallel programming (read more here):
Parameter | Function |
-a openmp | start a parallel job for a shared-memory system |
-n <num_threads> | number of threads to execute OpenMP application with |
-a openmpi | start a parallel job for a distributed-memory system |
-n <num_procs> | number of processes to execute MPI application with |
Jobscript Examples
This serial job will run a given executable, in this case "myapp.exe".
#!/usr/bin/env zsh
### Job name
#BSUB -J MYJOB
### File where the output should be written
#BSUB -o MYJOB_OUTPUT.txt
### Time your job needs to execute, e. g. 1 h 20 min
#BSUB -W 1:20
### Memory your job needs, e. g. 1000 MB
#BSUB -M 1000
### Stack limit per process, e. g. 20 MB
#BSUB -S 20
### The last part consists of regular shell commands:
### Change to working directory
cd /home/user/mywork
### Execute your application
myapp.exe
This OpenMP job will start the parallel program "myapp.exe" with 24 threads.
#!/usr/bin/env zsh
### Job name
#BSUB -J OMPJOB
### File where the output should be written
#BSUB -o OMPJOB_OUTPUT
### Time your job needs to execute, e. g. 15 min
#BSUB -W 0:15
### Memory your job needs, e. g. 1000 MB
#BSUB -M 1000
### Stack limit per process, e. g. 50 MB
#BSUB -S 50
### Request 24 compute slots (in this case: threads)
#BSUB -n 24
### Execute as shared-memory job
#BSUB -a openmp
### Change to working directory
cd /home/user/mywork
### Execute your application
myapp.exe
This OpenMPI job will start the parallel program "myapp.exe" with 4 processes.
#!/usr/bin/env zsh
### Job name
#BSUB -J MPIJOB
### File where the output should be written
#BSUB -o MPIJOB_OUTPUT
### Time your job needs to execute, e. g. 30 min
#BSUB -W 0:30
### Memory your job needs, e. g. 1024 MB
#BSUB -M 1024
### Stack limit per process, e. g. 50 MB
#BSUB -S 50
### Request 4 compute slots (in this case: processes)
#BSUB -n 4
### Execute as distributed-memory job with OpenMPI
#BSUB -a openmpi
### Change to working directory
cd /home/user/mywork
### Execute your application
myapp.exe