Sample Flux Script
Below is the example.flux script file:
#!/bin/sh
#Submit using flux batch <filename>
#flux: --job-name=EXAMPLE
#flux: --output='EXAMPLE.{{id}}.out'
#flux: --error='EXAMPLE.{{id}}.err'
#flux: -N 1
#flux: -l # Add task rank prefixes to each line of output.
#flux: --setattr=thp=always # Enable Transparent Huge Pages (THP)
#flux: -t 20
#flux: -q pbatch # other available queues: pdebug
export MPICH_GPU_SUPPORT_ENABLED=1
export HSA_XNACK=1
# Check if THP are enabled
#cat /sys/kernel/mm/transparent_hugepage/enabled
flux run -N1 -n 4 --verbose --exclusive --setopt=mpibind=verbose:1 ./example.out
#flux run -N1 -n4 -x -l -g1 ./example
#flux run -N1 -n4 -x -l -g1 ./exampleThis file can be submitted to the flux scheduler with:
flux batch example.flux
Sample Flux Job via Python
Below is an example of interacting with flux job submission via the python interface, file flux-example.py
#!/usr/bin/python3
import sys
import os
import flux
from flux.job import JobspecV1
def main():
handle = flux.Flux()
jobspec = JobspecV1.from_command(
command=["./a.out"], num_tasks=4, num_nodes=1,
)
jobspec.cwd = os.getcwd()
jobspec.exclusive=1
jobspec.t=5
jobspec.environment = dict(os.environ)
jobspec.stdout="PYEXAMPLE.{{id}}.out"
jobspec.stderr="PYEXAMPLE.{{id}}.err"
print(flux.job.submit(handle, jobspec))
if __name__=="__main__":
main()This should be run directly such as:
./flux-example.py