Using metashape on Ibex
This page details the needed steps to run metashape on Ibex
Metashape Distributed processing architecture
To run metashape on Ibex you’ll need to have:
A client installed on your personal workstation.
Metashape (Linux version) downloaded to your Ibex Filesystem.
A master node (compute node) to control the jobs.
At least one worker/processing node (GPU node) to process the data.
A Directory on Ibex for your projects that’s visible to your client, worker and master nodes.
Setup steps:
Download and install Metashape on your workstation and activate using your license number
https://www.agisoft.com/downloads/installer/
You’ll also need to download the linux version to a location with enough space on your Ibex File system
and extract the compressed file there
Next, you’ll need to place your project files in a directory on Ibex and mount that directory to your workstation as it needs to be accessible to the worker nodes and the client.
Follow these steps in the following link according to your OS to mount Ibex File system on Workstation
https://www.hpc.kaust.edu.sa/ibex/transfering_data
Next, you’ll need to reserve a master node (CPU node) to communicate jobs between client and workers
using this job script:
#!/bin/bash
#SBATCH --job-name=metashape_server
#SBATCH --output=%x-%j.out
#SBATCH --error=%x-%j.out
#SBATCH --nodes=1
#SBATCH --time=1:00:00
module load gcc
master_addr=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1)
echo ${master_addr} > master_addr.ip
cd <path-to-metashape-directory-on-ibex>
./metashape.sh --server --host ${master_addr} -platform offscreen
use watch squeue -u your-username
to monitor the job, once a compute node is allocated as show below you can now start adding worker nodes
To reserve worker nodes, follow this job script.
You’ll need to add your license number and the path to metashape directory and the project directory on Ibex
#!/bin/bash
#SBATCH --job-name=metashape_workers
#SBATCH --output=%x-%j.out
#SBATCH --error=%x-%j.out
#SBATCH --nodes=2
#SBATCH --gres=gpu:1
#SBATCH --constraint=[v100]
#SBATCH --time=1:00:00
sleep 30s
module load gcc
master_addr=$(head -n 1 master_addr.ip)
cd <path-to-metashape-directory-on-ibex>
#Number after -N must equal number of reserved nodes
srun -N 2 ./metashape.sh --activate <License-number>
srun -N 2 ./metashape --node --host ${master_addr} --root "path-to-project-dir-on-ibex" -platform offscreen
You can find the ip adress of the master node (underlined) in the .out file from this script
After a minute, the worker nodes should be ready
Next we need to setup connection between client and master node
In the metashape client go to tools → preferences → network
Check “enable network processing” box
Enter the master node ip obtained as shown above
Enter the path to project directory as mounted on your workstation
After Applying these settings you should be ready to run your jobs on metashape
Please note that Network processing mode doesn’t support .psz projects, You should use .psx format instead