Let's have the following assumption:

  • PC1 - computer used to run the network processing from GUI only, has IP 111.111.111.111 (let's call it CLIENT)
  • WORKER1 - computer that will be used as a processing node for the distributed computations, has IP 222.222.222.222 (let's call it WORKER)
  • /mnt/FOLDER/ - a shared folder, to easy the procedure we  recommend to use the same network name for it on all the computers  involved in the network processing. (let's call it STORAGE)
  • SERVER1 - a computer that will be used as a server for the network processing - doesn't perform any processing tasks and is only controlling the jobs and distributes the tasks, so shouldn't be a powerful computer and also doesn't require Metashape license. In principle, you can run a server instance of Metashape Professional on the same computer where the worker is started, however, it may affect the stability of the server. The IP  address is 333.333.333.333 (let's call it SERVER)

 

So the procedure should be the following:


1. Run Metashape Professional in the network in the server worker. To do that on SERVER execute the following command:

./metashape.sh --server --control 333.333.333.333 --dispatch 333.333.333.333

 

2. Run Metashape Professional in node mode on all the computers that would be performing the jobs, in our case it is WORKER:

./metashape.sh --worker --dispatch 333.333.333.333 --root /mnt/FOLDER/


So here you can see, that we are using IP address of the SERVER


Also, we recommend to use:

--root argument 

and on all the nodes specify the path to the same network folder (STORAGE). It shouldn't be the exact location of the project file, just some up-dir where all the projects are stored.


In case the machine where the processing node is started doesn't have a graphical interface, use additional:

-platform offscreen command 


line parameter:

./metashape.sh --worker -platform offscreen --dispatch 333.333.333.333 --root /mnt/FOLDER/

 

3. Here you can run Agisoft Network Monitor (./monitor.sh), connect to the SERVER by it's IP: 333.333.333.333 leaving the default port 5840 for communication, and see that the nodes are connected - they will be displayed in the bottom frame of the Monitor window.

 

4. Run Metashape Professional on the CLIENT in GUI mode, create a new project and save it in PSX format somewhere on STORAGE.


5. On the CLIENT machine open Tools Menu > Preferences > Network tab and specify the following:

  • Check on Enable network processing feature. 
  • For the Host name field specify SERVER IP address: 333.333.333.333
  • Use default port number for communication: 5840 
  • In the Root field specify the path to the STORAGE - it should be pointing to the same folder that is mounted as /mnt/FOLDER/ on the WORKER.
  • Enable Fine Level Task Distribution for all the tasks. 


Note that for unchecked tasks and non-specified tasks the processing will be performed on a single worker, irrespective of the number of available idling workers.



 Click OK to apply the changes


 After that in the bottom-right corner of the GUI window on CLIENT you will see connected to server icon.

 

6. Again using CLIENT's GUI open the Batch Processing, define the processing stages and parameters and click OK to run. You'll be asked,  if you want to run the processing via network, click OK and the small network processing progress dialog will appear. 



After that you can press  Disconnect on the CLIENT's side and close GUI, since the processing is being on the WORKER now - you can confirm it via Network Monitor and also reading the logs in the terminal both on SERVER and WORKER sides.




Appendix



Here are the commands of starting the workers from different OS (server can be started in a similar way):


Linux:

./metashape.sh --worker --dispatch 333.333.333.333 --root /mnt/FOLDER/


Windows:

metashape.exe --worker --dispatch 333.333.333.333 --root //Storage/FOLDER/


macOS:

MetashapePro.app/Contents/MacOS/MetashapePro --worker --dispatch 333.333.333.333 --root /Volumes/FOLDER/