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