Choosing the right computer hardware for a given workstation depends heavily on the specific workflow requirements for a given project. There are some important questions to ask before purchasing a new computer or deciding to upgrade specific components.
The first step is to consider how processing intensive a typical project will be in the foreseeable future. This means estimating a few things like
- The average number of images per project (will a typical project be 500 images or 5000?).
- The resolution of the images being processed (will images be 12 megapixels, 20MP, 45MP?).
- Required project outputs. Consider what outputs are required. Will a typical project only be processed through step 2 for the point cloud or mesh or will step 3 data products also be required?
- Desired level of detail. Not all projects require maximum processing settings. If the results of processing at lower settings are acceptable, then it may be worth saving the processing time and money required for processing at higher quality settings.
- What is the frequency of processing? is it important to be able to complete several projects a week or just a few projects per month?
- How fast does the workflow need to be? Not every use case requires that outputs be generated as fast as possible. For some workflows, time is more of a constraint than others and this should be considered when deciding how to invest in new hardware.
- What is the hardware budget? Does the budget require components that prioritize value or performance? There are diminishing returns to processing speed when going for the most high-end components and this should be considered when looking to minimize costs.
Increasing any one of first 6 aspects will be more taxing computationally and will require the use of better hardware. As most every project and workflow is distinct, it would be impossible for Pix4D to recommend a specific build in this article, but we can provide you with some guidelines that can help determine what solution may be right for a given need.
Each element in the previous list should serve as a checkbox. For each element that is increased, computer requirements move towards the realm of premium workstation components and away from stock desktop configurations.
Once the project needs have been generally evaluated, then take the time to review the available support articles related to hardware and processing in Pix4D. These articles will provide general information about what kind of hardware may suit a particular need.
- Hardware components usage when processing with Pix4D
- Processing speed
- System requirements
- Hardware case study
There are other non-Pix4D related sources of information as well. One useful resource are the articles published by Puget Systems. There they have tested the actual impact of various hardware components on processing time. This information will be helpful especially for balancing cost vs performance.
The first and most affordable improvement you can make to an existing computer is to use an SSD to run your OS and to store the data being processed.
After you have upgraded to an SSD you then should consider the following.
- How much RAM does the project require? To get an idea of how much RAM should be installed, check the "System Requirements" article.
- What CPU/ GPU should be used? For the CPU, both the number of cores and clock speed are important for optimum processing in Pix4D. It is better to invest in a single high-end CPU rather than in a dual socket system. The same is true for GPUs. Because of latency in inter-card computation, it is better to invest in a single high-end card rather than two low/ medium GPU cards. Reference the"Which hardware to buy" and the "Puget Systems Workstations" articles above for more information.
After going over this information consider reaching out to other community members to request feedback on a potential build or specific component.
To ask about a specific hardware component consider creating a new post and pose the question to see if anyone has been able to test.
A useful tool when comparing hardware is the Puget Systems benchmark tool. This is helpful when attempting to compare base processing speed between similar builds and components.