3 ms·
> single-threaded downloads are severely inefficient in the age of multithreaded CPUs Is the CPU typically the bottleneck when downloading things from the Inte
by bityard 5y ago
> single-threaded downloads are severely inefficient in the age of multithreaded CPUs
Is the CPU typically the bottleneck when downloading things from the Internet?
- toyg 5y agoIf the app uses a single execution thread, the OS will likely be unable to distribute work across different CPU threads. Whereas if you create multiple threads, the OS can max out CPU and I/O resources efficiently.
- Szpadel 5y agobut with today CPUs this becomes an issue with speeds at least 25gbps
- KennyBlanken 5y agoYeah. Twenty year old CPUs had 1600MB/sec memory. 4-5 years later memory speed doubled. In 2010 it doubled again. The Ryzen in my current desktop has memory that tops out at 25GB/sec.
- KennyBlanken 5y agoNope. Starting at the NIC, it's not "single-threaded." Intel NIC drivers on most platforms service the multiple buffers using several available physical cores. Even if it were single-threaded, memory bandwidth over a decade ago was around 3GB/sec. Download "acceleration" is snake oil and all "acceleration" does is consume unnecessary resources on both ends. Download "managers" that can queue up a list of downloads, schedule downloads (say for when you're asleep), automatically retry/partial-resume a big download, throttle a download to a low rate, and so on? That's useful for some folks. Edit: it's written in java. I'm laughing my ass off.
- dspillett 5y ago> Download "acceleration" is snake oil and all "acceleration" does is consume unnecessary resources on both ends. If there are any network bottlenecks, including at the host, that are enough to stop you saturating your own last-mile link with a single stream, that is simply not true. Or if the sending end sets per-stream limits. Downloading multiple streams from the same source can significantly speed up the process. Maybe it often doesn't, but that doesn't make it snake-oil. > memory bandwidth over a decade ago was around 3GB/sec Memory bandwidth is practically irrelevant if the main bottleneck is the remote network or something between you and it.