The task prolog is executed with the same environment as the user tasks to be initiated. The standard output of that program is read and processed as follows: export name=value sets an environment variable for the user task unset name clears an environment variable from the user task print ... writes to the task's standard output. The above functionality is limited to the task prolog script.
You should also have in mind, that the task-prolog runs for EVERY task, something, we had to learn painfully.
Best Marcus Am 13.05.2020 um 17:18 schrieb Ellestad, Erik:
Woo! Thanks Marcus, that works. Though, ahem, SLURM/SchedMD, if you're listening, would it hurt to cover this in the documentation regarding prolog/epilog, and maybe give an example? https://slurm.schedmd.com/prolog_epilog.html Just a thought, Erik -- Erik Ellestad Wynton Cluster SysAdmin UCSF -----Original Message----- From: slurm-users <slurm-users-boun...@lists.schedmd.com> On Behalf Of Marcus Wagner Sent: Tuesday, May 12, 2020 10:08 PM To: slurm-users@lists.schedmd.com Subject: Re: [slurm-users] Reset TMPDIR for All Jobs Hi Erik, the output of task-prolog is sourced/evaluated (not really sure, how) in the job environment. Thus you don't have to export a variable in task-prolog, but echo the export, e.g. echo export TMPDIR=/scratch/$SLURM_JOB_ID The variable will then be set in job environment. Best Marcus Am 12.05.2020 um 17:40 schrieb Ellestad, Erik:I was wanted to set TMPDIR from /tmp to a per job directory I create in local /scratch/$SLURM_JOB_ID (for example) This bug suggests I should be able to do this in a task-prolog. https://bugs.schedmd.com/show_bug.cgi?id=2664 However adding the following to task-prolog doesn’t seem to affect the variables the job script is running with. unset TMPDIR export TMPDIR=/scratch/$SLURM_JOB_ID It does work if it is done in the job script, rather than the task-prolog. Am I missing something? Erik -- Erik Ellestad Wynton Cluster SysAdmin UCSF
smime.p7s
Description: S/MIME Cryptographic Signature