Does anyone know whether the iMac Pro's SSD reads data much faster? We are running simulations and loading files that are 2-4 GB huge. My iMac late 2017 with 512 GB SSD needs roughly 50 seconds to load such files. We are aiming for under 10 seconds...
On the Blackmagic speed test, my 10-core iMac Pro with 2TB SSD does about 2,900 MB/sec write, 2,400 MB/sec read. My 2017 iMac 27 with 2TB SSD does about 1800 MB/sec write, 2,200 MB/sec read.
That is sequential IO transfer speed. The rate of IOs per sec will vary based on several parameters. Mac Performance Guide did some testing of iMac Pro vs iMac SSD performance:
https://macperformanceguide.com/iMacPro_2017-flashDriveSSD.html
If your app is taking 50 sec to load 2-4 GB of data, that is only 40-80 MB/sec. This implies it is not issuing IOs efficiently, and maybe no available SSD would help. However maybe you mean the individual files are that size and the app must load many of them.
The lack of IO efficiency might be from issuing small random IOs, or maybe there are processing delays or thread synchronization issues.
In general you obtain the highest IO transfer performance by using large sequential IOs and pre-fetching the data into a memory array. The sequential IOs have high transfer rate and reduce per-IO overhead. Keeping the fetched data in RAM avoids physical IO, no matter how fast the SSD is. A Mac can have 64GB or more RAM so an app can programmatically declare a large array and read in multi-GB files using (say) 1MB or larger sequential reads. It's also important to issue overlapped or async IOs from multiple threads to keep the IO system saturated.
If you have, say, 10 files of 2GB size each, those could all be read into RAM on a 64GB Mac and subsequent references would be to that memory-resident array. However if your algorithm randomly reads 100 files of 2GB each, this wouldn't be possible.
Likewise if the app is issuing small random IOs within a group of 2GB files, the overall transfer rate will be much lower.
A 2017 iMac or iMac Pro should be able to read a 2GB file within about 1 sec if doing large sequential reads.
You are running Windows not macOS so maybe there is some lack of optimization in how it uses Mac hardware. You could try running dual-platform benchmarks on Windows and Mac to see if there's any difference.
One big advantage of Windows is PerfMon has excellent IO monitoring tools which are not available on macOS. E.g, you can monitor disk queue depth and various other parameters. This can show whether the IO system is saturated due to many small IOs or maybe it's not being utilized due to waiting on CPU or thread synchronization. You can also determine the average IO size which might indicate if any efficiency improvement is possible from an app standpoint.
For more info see:
https://blogs.technet.microsoft.com...-performance-monitor-disk-counters-explained/