Hello, I am developing a Spank plugin which starts a privileged process once per node. This process will perform some work that require privileges like write frequency, read devices, etc.
I know I have the option of run it when Slurm Daemon is started in a node and loads the Spank plugin. But I would prefer just to run it when its necesary using some flag (srun --flag). Because I want to start it one time per node I'm thinking which could be the best way to achieve that. In remote context I have the function slurm_spank_task_init_privileged(), but it's executed by every node task and I want to start it just once, just one process instance. These are my possibilies: 1) Using little maths to get the number of tasks per node and calc the minimum task number, which would be my selected task. For example, 4 tasks and 2 nodes, the tasks 0 and 2 would run my privileged process. But I'm not pretty sure that task numbers will follow always this pattern. And of course is someone runs 3 tasks in first node and 1 in the second one, this has no sense. 2) Some kind of inter process sync, or file block... to prevent that no other task in the same machine has started my process yet. Any better ideas? Thank you, Jordi. http://bsc.es/disclaimer