Architecture Guide
1 Architecture
1. Single-Container Deployment
1. The business system prepares the device scan data to be processed as input in the working data directory according to the documentation requirements;
2. The business system calls the interface provided by the LCC Docker image over HTTP to start the execution of the reconstruction algorithm:
e.g.: http://xxx/api { --pass in the input data folder path --pass in the input configuration parameters --pass in the results folder path }
3. The business system can poll the API to check whether the reconstruction execution has finished; after it finishes, it retrieves the result data from the results folder path.
4. The address of the reconstruction progress callback API can be passed in via the hookUrl parameter.
2. Multi-Container Deployment Architecture
Docker containers on a multi-GPU server can each mount one GPU, forming multiple LCC reconstruction container nodes.
Multiple container nodes support two management modes:
1) Independent Multi-Container
Each container can be treated as an independent node, providing an independent API port, with task management and scheduling handled by the external business system itself.
Each container serves only as an LCC reconstruction compute node, independent of one another. This is equivalent to repeating multiple single-container deployments.
2) Container Cluster ( Single-Machine Multi-GPU *)
Multiple containers on the local machine can be managed as a cluster through the Consul registry.
During deployment, one container node must be designated as the master node, and the reconstruction tasks within multiple nodes are controlled by calling the master node's API.
At the same time, the master node provides a platform-based management interface for direct graphical management (reference: WebUI Trial Guide).
* Note
Multiple container nodes must be able to access the same /work disk directory in order to work in parallel and collaboratively to accelerate the completion of a single reconstruction task (because during an LCC reconstruction task, a large number of disk cache files are shared). Therefore, in the current version, it is recommended to create a multi-container cluster on a single-machine multi-GPU server.
3. Cluster Task Scheduling Strategy
1) Multiple Container Nodes Complete a Single Task in Parallel
An LCC reconstruction task takes a long time, but some of its steps can be split and handed off to multiple container nodes to complete in parallel, thereby shortening the overall completion time of the task.
* Note
The container nodes in the current version use a preemptive strategy. If you want to complete a certain task with the highest priority as quickly as possible, it is recommended not to execute other tasks in the cluster first. This way, when the task needs to run in parallel, more available nodes can be obtained.
In subsequent versions, a more complex priority configuration strategy will be upgraded.
2) Multiple Container Nodes Complete Multiple Tasks in Parallel
When there are a large number of tasks, it is recommended to schedule them in a way where each container node processes one task.
This maximizes the number of tasks executed simultaneously and ensures that every container node is working at all times.
* Note
The cluster in the current version uses strategy 1) Multiple Container Nodes Complete a Single Task in Parallel by default.
In subsequent versions, more complex strategy configuration parameters will be upgraded.