| 409 | | See [https://wiki.hpc.tulane.edu/trac/wiki/Workshops/cypress/JobDependency here] for more about job-dependency. |
| | 409 | See [https://wiki.hpc.tulane.edu/trac/wiki/Workshops/cypress/JobDependency here] for more about job dependency. |
| | 410 | |
| | 411 | === Many-task computing === |
| | 412 | If you have many tasks and each task needs a few cores, it may be beneficial to pack several tasks into one job. |
| | 413 | For example, |
| | 414 | |
| | 415 | {{{ |
| | 416 | #!/bin/bash |
| | 417 | #SBATCH --qos=normal # Quality of Service |
| | 418 | #SBATCH --job-name=many-task # Job Name |
| | 419 | #SBATCH --time=24:00:00 # WallTime |
| | 420 | #SBATCH --nodes=1 # Number of Nodes |
| | 421 | #SBATCH --ntasks-per-node=1 # Number of tasks (MPI presseces) |
| | 422 | #SBATCH --cpus-per-task=20 # Number of processors per task OpenMP threads() |
| | 423 | |
| | 424 | # Our custom function |
| | 425 | cust_func(){ |
| | 426 | echo "Do something $1 task" |
| | 427 | sleep 1 |
| | 428 | } |
| | 429 | # For loop 20 times |
| | 430 | date |
| | 431 | for i in {1..20} |
| | 432 | do |
| | 433 | cust_func $i & # Put a function in the background |
| | 434 | done |
| | 435 | |
| | 436 | ## Put all cust_func in the background and bash |
| | 437 | ## would wait until those are completed |
| | 438 | ## before displaying all done message |
| | 439 | wait |
| | 440 | echo "All done" |
| | 441 | date |
| | 442 | }}} |
| | 443 | |
| | 444 | See [https://wiki.hpc.tulane.edu/trac/wiki/Workshops/cypress/ManyTaskComputing here] for more about Many Task Computing. |
| | 445 | |