In this article:
Fusers can be shared between several PhotoMesh Build Managers in your organization, enabling each machine running PhotoMesh to use the combined resources of all the machines in the pool. A distributed management approach is used to manage the pool fusers, whereby each PhotoMesh Build Manager manages its own fuser needs and resources by requesting fusers from the pool when generating a build and returning the fusers when they are no longer needed. Fusers are allocated to any PhotoMesh Build Manager that requests them, as long as there are available fusers in the pool. If a manager submits a fuser request that cannot be immediately fulfilled since no fusers are available, the manager will continually check the fusers pool for a fuser that was returned to the pool, at which point it will assign the fuser to its project’s working folder.
Installing and Running PhotoMesh Master and Fusers
- Install PhotoMesh locally on each of the master computers using the PhotoMesh installation file.
- Copy the fuser folder created in the PhotoMesh installation (by default this folder is created in the following path: C:\Program Files\Skyline\PhotoMesh\Fuser) to a network drive that is accessible to all fuser computers, e.g., \\production\PM\Fuser7.6.1.
- Run the PMFuserService.exe on each fuser computer in the pool from the fuser folder on the shared network drive, e.g., \\production\PM\Fuser7.6.1\PMFuserService.exe. This service is responsible for running the required fuser (PhotoMeshFuser.exe) version for the requesting manager and assigning it to the manager’s working folder, so different PM versions can use the same fusers pool. It is recommended to configure the PMFuserService to start automatically using the Task Scheduler.
Fuser Pools
A fuser pool is a shared group of fusers that can be used by multiple PhotoMesh master computers within an organization. Each master computer’s Build Manager independently requests fusers from the pool as needed and releases them when no longer in use. This distributed management approach allows each Build Manager to handle its own fuser requirements.
Fusers are allocated on a first-come, first-served basis, i.e., the first Build Manager to request a fuser receives it, if available. The Smart Fuser Assignment mechanism can be enabled to auto-assign fusers to jobs based on hardware requirements and job priorities, thereby ensuring efficient resource utilization across distributed builds. More about: Smart Fuser Assignment >
If no fusers are free, the manager continues checking the pool until one is returned, at which point it assigns the fuser to its project’s working folder. Fusers can also be manually assigned to specific computers when needed.
The Pool Manager provides centralized tools for monitoring and managing all aspects of the fuser pool. It can be accessed from the Build Manager dialog or the Tools tab. The Pool Manager is divided into four pages, accessible from the side panel on the left:
- Fusers – View all available fusers, monitor their status and activity, manually assign them to projects, and add comments.
- Projects – Manage pool usage at the project level, adjust project priorities, and set fuser limits.
- Pool Settings – Configure machine-specific settings such as the number of fusers per machine and idle timeouts.
- IT Operations – Scan the network for available machines, add or remove them from the pool, and run administrative scripts remotely.
Setting Up and Managing a Fusers Pool
The fuser pool folder serves as the central location for pool management and holds the working folders that will be created automatically for each of the projects using the fusers pool. The folder must be on a drive with read and write access for both the PhotoMesh master and all fuser machines.
Note: If you are also using local fusers for a project, the working folder must be the one automatically created in the pool directory. It is recommended to create the working folder on a fast drive that is different from the one used for the project data, most preferably on a solid-state drive (SSD) that is shared with the master machine and other fuser machines.
Preparing the Shared PhotoMesh Environment
To ensure all machines use the same PhotoMesh version, the application must run from a shared network location:
- Copy the PhotoMesh application files from the PhotoMesh master computer to a shared network drive that is accessible to the master and all fuser computers
- On the master computer, run PhotoMesh from this shared network path.
- On each of the fuser machines in the pool, run PMFuserService.exe from the shared path. This service is responsible for running the required fuser (PhotoMeshFuser.exe) version for the requesting manager and assigning it to the manager’s working folder, enabling different PhotoMesh versions to use the same fuser pool. It is recommended to run the fuser service on startup using auto-logon. More about: Running Fusers Upon Login >
Note: PMFuserService can also be run from the fuser folder under the installation folder (.\Application Files\Fuser\PhotoMeshFuser.exe).
Creating a Pool
To create a fusers pool:
- From the Start page, open the Automation Dashboard and in the Fusers Pool section, click View Pool. More about: Automation dashboard >
The Pool Manager is displayed, showing the Configure pool folder dialog. - Select Create New Pool to create a new pool. If you want to connect to an existing pool instead, select Use Existing Pool.
- Type the Pool folder path, and click Submit.
Scanning a Network for Computers
Use the network scan to detect available machines that are not yet on the network list.
To scan a network for computers that aren't yet on the network list:
- From the Pool Management menu, select IT Operations.
- Click Scan.
- In the panel that is displayed, enter the first three octets of the IP address of the network that you want to scan (i.e., the first three numbers, such as 192.168.1) and the range for the fourth octet (e.g., 1–100).
- Click Scan. The system scans the specified range and displays information on the number of machines found.
- Click OK to add the computers to the network list.
The network list displays the following information for each computer:
- Computer name and IP address
- Online status
- Whether the computer is already in the pool
- Whether the Fuser service is ready.
- Whether the machine is ready for remote scripting
- Service version
- Number of fusers per machine
- Last running script and script success
- Number of CPU cores (with current usage percentage)
- GPU information
- Amount of available and total RAM
- Operating system (OS)
- Idle timeout setting
Adding Computers
Any computer on the network list that is running the Fuser Service (and not yet in the pool) can be added to the fuser pool.
To add a computer to the pool:
- From the Pool Management menu, select IT Operations.
- Select the required computer(s) and click Add to pool
. If you want to scan the network for additional computers, click Scan. More about: Scanning a Network for Computers >
- In the panel that is displayed, click Add.
Removing Computers
Removing a computer detaches it from the pool but retains it in the list of network machines, allowing you to re-add it later if needed.
To remove a computer from the pool:
- From the Pool Management menu, select IT Operations.
- Select the required computer(s) and click Remove from pool
.
- In the panel that is displayed, click Remove. The computer is no longer part of the active fuser pool but remains listed in the network.
Deleting Computers
If a computer should no longer be listed at all, you can delete it from the network list.
To delete a computer from the list:
- From the Pool Management menu, select IT Operations.
- Select the required computer(s) and click Delete
.
- In the panel that is displayed, click Delete. The computer is removed from the network list and will no longer be available for pool operations unless re-scanned.
Using a Fusers Pool
To use a fuser pool, PhotoMesh master must be run from a shared network drive that is accessible to all fuser computers, to enable the Fuser Service to launch the correct fuser version.
To enable pool usage:
- On the PhotoMesh master computer, in the Build Manager, toggle on Use Fusers Pool. Click Change to open the Auto Scaling Fusers Settings dialog. You can also access these settings from the Tools tab (Fuser Pool Settings command). The Automatically use new available fusers check box must also be selected, so that PhotoMesh will use the pool fusers when they become available.
- Select the Use Fusers Pool check box, and enter the following information:
- Fusers Pool Folder - This is set automatically to a folder in the pool folder,Click Change to change the location. If you are also using local fusers for a project, the working folder for the entire project, i.e. for both the local and pool fusers must be located in the pool directory.
- Fuser Folder - This folder is set, by default, to the UNC path of the folder from where PhotoMesh is currently running so that the Fuser service launches the fuser version required by the master. Make sure that this path is accessible to all the fusers, e.g., by running PhotoMesh from a file share or network drive that is accessible to all fuser computers. Click Change to change the location of the fuser folder.
- Return inactive fuser to pool after - Set the number of seconds after which inactive fusers should be returned to the pool.
- Maximum Fusers - Type the maximum number of fusers to run. If fusers are available in the pool, PhotoMesh Build Manager adds pool fusers up to the maximum number set. Make sure your pool limit does not exceed your license fuser limit, to avoid rejection of your fuser request by the pool.
- Priority - Select the priority level of this project.
- Smart Fuser Assignment - Select this check box to auto-assign fusers to jobs based on hardware requirements and job priorities. PhotoMesh uses a JSON configuration file (FusersHWRequirements.json) to define the minimum and optimal hardware specifications (CPU cores, memory, GPU requirements, etc.) for each build step. See "FusersHWRequirements Configuration" in this chapter for more information. You can customize requirements by modifying this file. Note that Smart Fuser Assignment is not supported when rebuilding projects that were originally processed using gigapixel credits. More about: Smart Fuser Assignment >
- Load Requirements From - Select the source for the hardware requirements JSON file: Pool – Load the FusersHWRequirements.json file saved in the fuser pool folder OR Custom – Load a custom FusersHWRequirements.json file from the path specified below.
- Custom Priority Path - Path of the custom FusersHWRequirements.json file.
- If you also want to use AWS fusers, select the Use AWS Instances check box, and then enter the required information. More about: Using AWS fusers >
- Click OK.
- If you want to monitor and manage all pool fusers, e.g., assign fusers to specific projects’ working folders and prevent their being restored to the pool, in the Build Manager dialog, click the Pool Manager link. More about: Managing a fusers pool >
Smart Fuser Assignment - FusersHWRequirements Configuration
When working with a fuser pool, PhotoMesh can automatically assign fusers to build tasks based on hardware capabilities and project priorities. This behavior is controlled by a JSON configuration file, FusersHWRequirements.json, which defines minimal (minRequirements) and optimal (optimalRequirements) hardware requirements - such as CPU cores, memory, and GPU resources - for each step (processGroups) of the build process.
A fuser can also be assigned exclusively to a step, using the requiresExclusive parameter, so that the machine will not run other tasks concurrently while executing that step. PhotoMesh uses these values to evaluate available machines and assign tasks to the most suitable fusers. You can customize the hardware requirements by modifying the JSON file.
This configuration file is only required when Smart Fuser Assignment is enabled. It is recommended to save the file in the fuser pool folder. More about: Setting Up and Managing a Fusers Pool >
To enable smart fuser assignment:
- On the PhotoMesh master computer, in the Build Manager, toggle on Use Fusers Pool. Click Change to open the Auto Scaling Fusers Settings dialog. You can also access these settings from the Tools tab (Fuser Pool Settings command). Note that the Automatically use new available fusers check box must also be selected, so that PhotoMesh will use the pool fusers when they become available.
- Select the Use Fusers Pool check box, and then select the Smart Fuser Assignment check box. Smart Fuser Assignment is not supported when rebuilding projects that were originally processed using gigapixel credits.
- Click OK.
FusersHWRequirements.json Example
The following example shows how hardware requirements can be defined for different build stages.
{
"version": "1.0",
"processGroups": {
"dataPreparation": {
"minRequirements": {
"cores": 999,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null,
"requiresExclusive": false
},
"optimalRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null
}
},
"aerotriangulation": {
"minRequirements": {
"cores": 8,
"memoryGb": 64,
"gpuMemoryGb": null,
"networkMbps": null,
"requiresExclusive": true
},
"optimalRequirements": {
"cores": 16,
"memoryGb": 128,
"gpuMemoryGb": null,
"networkMbps": null
}
},
"pointCloud": {
"minRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null,
"requiresExclusive": false
},
"optimalRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null
}
},
"model": {
"minRequirements": {
"cores": 99,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null,
"requiresExclusive": false
},
"optimalRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": null,
"networkMbps": null
}
},
"texture": {
"minRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": 4,
"networkMbps": null,
"requiresExclusive": false
},
"optimalRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": 8,
"networkMbps": null
}
},
"output": {
"minRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": 4,
"networkMbps": null,
"requiresExclusive": false
},
"optimalRequirements": {
"cores": 8,
"memoryGb": 16,
"gpuMemoryGb": 8,
"networkMbps": null
}
}
}
}Managing Fusers
The Fusers page offers a comprehensive view and control over all fusers in the pool. The Pool Summary Bar at the top of the page displays summary totals, including the count of online, offline, and active fusers, as well as the number of projects in production and in queue. The Fusers table displays key details including:
- Fuser name and IP address
- Status (Available, Offline, Working, Private)
- Manager and project assigned to each fuser
- Current step that the fuser is executing and percentage of the step that has been completed
- Hardware of machine used by fuser (cores, GPU, RAM)
- Number of fusers running on each machine
- Comments (editable text)
To make it easy to identify machines with potential performance or availability issues, the Fusers table highlights fusers in red if they have either high RAM usage or low disk space:
- RAM usage exceeds 95% (e.g., 12.12 GB used out of 15.88 GB total)
- Free disk space falls below 10% (e.g., only 3.5% of disk space remaining)
Manually Assigning Fusers to Projects and Adding Comments
Fusers are allocated on a first come first served basis, i.e., to the first PhotoMesh Build Manager that requests fusers from the pool. If a subsequent manager submits a request for a user, but no fusers are currently available in the pool, the manager continually checks the fusers pool for a fuser that was returned to the pool, at which point it assigns the fuser to its project’s working folder. If you want to manually assign fusers, you can do so from the Pool Management - Fusers page.
To assign fusers to a manager:
- From the Pool Management menu, select Fusers.
- Select the required fuser(s) and click Assign .
- In the panel that is displayed, do the following:
- Select a manager from the dropdown list.
- If you want to prevent these fusers from being restored to the pool after completing their current tasks, select the Keep private check box..
- Click Assign to confirm the assignment.
To add comments for specific fusers:
- From the Pool Management menu, select Fusers.
- Select the required fuser(s) and click Add Comment .
- In the panel that is displayed, type the comment, and click Add Comment.
- Select a manager from the dropdown list.
- If you want to prevent these fusers from being restored to the pool after completing their current tasks, select the Keep private check box..
- Click Assign to confirm the assignment.
Prioritizing Projects
The Projects page allows management of the pool at the project level. All active or queued projects that have had at least one working pool fuser are listed. The Projects table includes the following information:
- Project name and name of Build Manager’s computer
- IP address of computer
- Project status (Running, Queued)
- Project’s priority (High, Medium, Low)
- Current project phase (e.g., AT, Image Processing)
- Allocated and working fusers
- Maximum allowed fusers (local and AWS)
To adjust project priority or fuser limits:
- From the Pool Management menu, select Projects.
- Select the required project(s) and click Properties .
- In the panel that is displayed, do the following:
- Set Priority to High / Medium / Low. Higher-priority projects can preempt fusers from lower-priority ones.
- Set Maximum Fusers and AWS Max Fusers.
- Click Save.
Editing a Computer's Configuration
The Pool Settings page displays details of each of the computers in the pool:
- Computer name and IP address
- Online/offline status
- Number of fuser instances per machine
- Computer hardware (cores, GPU, RAM)
- Computer operating system
- Idle timeout (before computer’s fuser is returned to pool)
To edit a computer’s configuration:
- From the Pool Management menu, select Pool Settings.
- Select the required computer(s) and then click Properties .
- In the panel that is displayed, do the following:
- Set number of Fusers per Machine
- Set the Idle Timeout (in minutes) - number of seconds after which inactive fusers should be returned to the pool.
- Click Set.