Users often ask us for advice on the type of machine they should use to better meet particular purposes. For example, applications from the Silverstack product family get primarily used for the purpose of facilitating fast and secure camera offloads. Hence, DITs are often looking for and aiming to work with a machine that is especially powerful in terms of copying files.
However, it’s impossible to make a universally valid recommendation as a range of factors need to be considered in that decision. What we can do, though, is provide you with all the essential information you need to make a smart choice yourself. And that’s exactly what we’re going to do in this article!
One by one, we will look at the main components of a computer (CPU, GPU, RAM) and evaluate their respective roles within the copy process. Thus, we’ll reach a comprehensive overview – just like we did in a previous article that examined which processing power you should boost to improve transcoding speed.
We’ll also cover a few additional factors to consider and conclude with a clear ranking that highlights which of the discussed components plays the main role in the copy process.
After reading this post, you should have a better idea about which component to spend money on when selecting a good machine for a fast copy performance.
About the Copy Process in General
Before thinking about how to improve copy performance, let’s take a quick look at the process in general. Basically, copying a file means creating an identical duplicate, usually in another location. To make sure the duplicate file is identical to the source, a unique file hash is used.
As we described in our post about source verification, the secure copy of a file involves the following steps:
First: A checksum is created while reading the source file. This checksum is stored.
Second: After the (hopefully identical) destination file is written, the destination file is read again, and its checksum (also called hash) is created.
Third: The two checksums are compared. If they are identical, you can be sure the files on source and destination are also identical.
The Roles of CPU, RAM, and GPU in the Copy Process
Now that we reminded ourselves of the steps involved, let’s look at three key components of a computer and their respective roles in that process.
- The role of the CPU in the copy process:
- The central processing unit is at the core of steering the processes of a computer. CPU resources are crucial for the copy process; however, the copy process itself does not require very heavy lifting: It’s rather the calculation of the hash (required for a secure copy of the files) that demands more CPU resources.
- Also, keep in mind that the required resources further depend on the type of hash algorithm that is used: For example, calculating an MD5 hash requires more CPU power and can even limit copy performance, while xxHash requires less CPU power and usually doesn’t limit the copy performance.
- The role of RAM in the copy process:
- The random access memory is also involved in the copy process. As the bits and bytes of the files are transferred in small chunks from the source to the destination, they pass the RAM in smaller parts of several MB, and so there’s no specific need for it to be very large.
- The role of the GPU in the copy process:
- The graphics processing unit plays no specific role in the copy process.
Conclusion: What Component to Spend Money on to Improve Copy Speeds
Here’s the ranking for the most important hardware components for copying:
- CPU: The CPU plays the main role in copying, especially concerning the hashing of files.
- RAM: It’s always good to have solid RAM in a computer machine – however, it will have practically no crucial effect on speeding up the copy process.
- GPU: This component is not involved in the copy process at all.
Beyond CPU: Other Components and Specialties of the Copy Tasks
We just highlighted the importance of internal hardware components for optimizing copy speed. However, there are other factors that also come into play and therefore shouldn’t be disregarded. To give you a comprehensive understanding of how to improve copy speed, we won’t let them go unmentioned in this article. So let’s take a look:
Fast interfaces in the machine (e.g., Thunderbolt 3) make fast copy transfers of files possible in the first place. This is true for attached destination drives as well as for the attached camera card readers, which usually offer a variety of connection interfaces with very different speed possibilities.
Of course, the native speed of external drives is also important. The CPU can be as powerful as it gets; if a slow drive causes the bottleneck, it won’t compensate for it. For more information on this aspect, check out our article on how to determine copy speed for drives.
When a RAID or a network share (e.g., SMB share) is involved, the native circumstances of those devices also play a role: This is true for the internal processing of the controller in a hardware RAID or the implementation of a specific samba share, for example.
Summarized, one can say that it’s important to think through all involved components (including their state and performance) from source to destination.
Furthermore, you should also pay attention to the nature of your copy requirements: Are you copying many small files or one very large file? On another level, this will also influence copy performance. Copying many small files usually results in a slower process than copying one large file – even if the total file size is the same for both copy jobs. This is mainly caused by the overhead that the file handling requires per se, each time for the many single files.
In conclusion, this article outlined how to reach fast copy performance by evaluating a few critical components. In case you’re still struggling with your machine’s copy performance, we recommend checking out this article on troubleshooting slow copy speeds.
If you would like to read more about this topic, you should check out the links to previous articles that we incorporated in the text above.
If you want to dig even deeper and dive into the technical details, this article in our KnowledgeBase is a good starting point: