How to queue relion_reconstruct_mpi

Hi all
Apologies for the relion question, but yeah relion forums are scarce.

I am kind of new to queueing jobs to hpc in relion; we use a slurm submission script to allocate resources ect, and i normally use relion through GUI. However i want to run a relion_reconstruct_mpi job which as far as i can tell must be run through the terminal.

In the GUI, i provide the path to the “standard submission script” and provide a “Queue name” when i run jobs to correctly allocate compute resources. I have looked at the relion help page, and asked chatgpt to no avail regarding how to submit these variables in the relion_reconstruct_mpi in terminal. We also normally use gpu acceleration, also unsure how to submit this variable. Any other tips on this front would be welcome.

As i say, new to submission scripts and remote compute allocation like this so if this is an obvious one apologies!

Thanks all for their time :slight_smile:
James.

Read the submission script for syntax to call the HPC scheduler, and click “print command” to see what command RELION runs when a job is started. Exactly how you need to do this will depend on the scheduler in question (SLURM, TORQUE, etc…)

relion_reconstruct (and it’s MPI variant) do not use the GPU, so that’s one less headache.

You’ll probably get more help if you ask on either the 3DEM or CCP-EM mailing lists.

1 Like

I had tried the print command option to see if i could establish how Relion was integrating this information, but i saw no paths or referenced to the queue name or submission script path.

I will have a suss of the submission script as recommended thanks :slight_smile:

And that is good to know regarding the no-gpu issue.

Thanks so much for your response :slight_smile:

Sorry I can’t be more help. The last time I set up clustering with a queue manager was too long ago to really be of help, as current lab doesn’t really do large-scale clustering.

Probably easiest to write the RELION command(s) in a simple bash script, then submit that with something like qsub my_relion_reconstruct_script.sh

1 Like

I was thinking of doing something like this. Might have more of a tinker with that idea. In the end i just ran it without clustering; took a while but it finished. My concern is in future if i want to do this with larger boxes!

Cheers again,
James.

Hi James,

Relion should dynamically execute relion_reconstruct or relion_reconstruct_mpi depending on the number of mpi processes you request in the “Running” tab. You can verify this using the check command button.

If you have run jobs successfully from the GUI you can find the submitted script inside the project directory (something like /project/Class3D/job012/run_submit.script). This script gets submitted using the input from “Queue submit command”. For example this needs to be sbatch in order to start an sbatch script.

You can reference the “Set-up queue job submission” section of the installation documentation to see the template script variables.

Here is an example sbatch script template that I use for executing a multi-GPU job using slurm.

`#!/usr/bin/bash

#SBATCH --partition=gpu
#SBATCH --gres=gpu:4
#SBATCH --ntasks=XXXmpinodesXXX
#SBATCH --cpus-per-task=XXXthreadsXXX
#SBATCH --time=48:00:00
#SBATCH --err=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX

module load relion-5.0.0

srun -u XXXcommandXXX`

Best of luck!