Hi Alexey
I think here should be more information regarding firewall configuration, ports, and command-line options.
You can run the rlm server and job manager on any server or workstation but it needs to be accessible by all of your cluster nodes. If the nodes can access a dedicated windows or linux server in your office or data center then I would use it. Put the rlm server and the Photoscan job manager on the same machine since they do not use any resources. The only real requirement is that it is reliable and always up. A linux machine would be better to use than a Windows server that does automatic updates and reboots...
Once the rlm server is running you connect to it via web browser.
http://your.hostname.edu:5054/The service that's running is a simple program that's listening on port 5054 by default. That means that any firewall on the server/workstation where rlm and the job manager are running needs to have the firewall configured to allow connections to the appropriate ports. What you might want to do is allow connections from only the ip addresses of the cluster nodes and your own desktop. If anyone can connect to those ports then anyone who knows about it can setup a bunch of computers with Photoscan and use your licenses!
Configure the firewall or turn it off for testing. Start the rlm service and try to connect from some other computer using a web browser. Configure the rlm server with your information.
I use Windows PCs to do my project creation and such that require the graphical interface (GUI) and Windows PCs and Linux nodes to do network rendering.
There are several parameters that are very important to make this work. You should use --root to point every Photoscan instance to the same directory where the project files are located.
You use --dispatch to say where the job manager is
You use --platform offscreen to tell Photoscan not to use QT or X11 (headless mode)
A basic command that has everything you need is
./photoscan.sh --root /data/shared --dispatch my.job-manager-hostname.edu --node --cpu_enable 1 --gpu_mask 15 --capability any --platform offscreen
If the cluster node does not have a gpu then you should leave out the gpu_mask option.
In this example, /data/shared would be a samba share or some other network share that is mounted on every node, even Windows PCs. of course, windows PCs will not mount a share into a directory like /data/share so the --root will be different for them.
Here is a sample Windows shortcut link that starts Photoscan as a render node. "C:\Program Files\Agisoft\PhotoScan Pro\photoscan.exe" --node --dispatch my.job-manager-hostname.edu --root \\nas22.mydomain.edu\DEPT\Data --cpu_enable 1 --gpu_mask 3
You may have trouble connecting to the rlm license server from any of the computers or nodes. That is due to the way it searches by default.
That is whey Agisfot says this
As for the client side for the floating licenses, on Windows usually licenses are broadcast automatically, alternatively you can put single-line license file to PhotoScan Pro installation folder.
The file should have .lic extension, like server.lic, for example, and should contain the following line:
HOST FLS_address any the_port_number
For example:
HOST 127.0.0.1 any 5053
FLS_address - could be computer name or IP address,
the port number - 5053 by default.
the bold words ("HOST" and "any") shouldn't be changed.
Also, there is no need to ask anyone to install Photoscan on the cluster nodes. You can have many copies or only one in your own home directory and run Photoscan on any cluster node that mounts your home directory. It would be a very unusual HPC if it does not have access to your home directory or files while executing your job...
The key to running Photoscan on cluster nodes is using the parameters with correct settings and having the files available in a predictable location on every node, and every node must be able to connect to the Photoscan job manager.
To start Photoscan in manager mode, use the --server option.
Windows Shortcut
"C:\Program Files\Agisoft\PhotoScan Pro\photoscan.exe" --server
or
Linux command
./photoscan.sh --server
The parameters
--control
--dispatch
let you change the ports used by the job manager. I'm using 5840 and 5841. I think it may be the default. Anyway, the firewall has to allow connections to these ports from every node too.
That means every cluster node must be able to connect to 5840, 5841, 5053, and 5054 on your job manager / rlm server in order for the node to get a license and tasks.