Am thinking about upgrading my old computer which I've held off for several years. I'm considering an AMD Threadripper, can the Intel VS Fortran 1017 support one of those chips.
Yes, absolutely. Just avoid the /Qx option (other than /QxHost, which would be a good choice for processor selection.) In general, Intel Fortran is better than other Fortran compilers for AMD processors. Is your application something that can take advantage of lots of slower threads?
Got things up and running quickly, 1920X that uses 24 threads. Yes it has slow threads. Software was originally developed for Cray XMP so aimed at vector processing. I've significantly update it but it is far from perfect. Resource manager shows many of the cores do little work.
Spent time testing compiler options and looks like these are the best options right now.
/nologo /O2 /Qopt-prefetch=2 /assume:buffered_io /Qip /Qopt-matmul /assume:nocc_omp /reentrancy:threaded /Qopenmp-offload- /extend_source:132 /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /libs:dll /threads /c
Tried the autoparallel and that slows things significantly. I assume it is waiting a lot of that time.
First, I would recommend -xHost if you are also compiling on the AMD system. I don't know which of the Intel instruction sets that processor supports, but you could try -msse4.2 which I think will work. Did you try -O3? Also I would expect -Qipo for whole-program optimization would help a lot.
Yes, -03 wasn't much different. Qipo isn't a major difference, less than 1% overall run time. Biggest improvement with QxHost and arch:AV at ~5% reduced run time.
You may already know this but just in case. I found this site (http://www.cpu-world.com/CPUs/Zen/AMD-Ryzen%20Threadripper%201920X.html) that indicates what instruction sets various cpus run.
Thanks - I had done a web search but hadn't come across anything that detailed. So the Ryzen supports AVX and AVX2. Enabling these may or may not help. (Use -arch AVX or -arch CORE-AVX2 for these, -m doesn't go up that far.) I see you found -arch AVX already. -xHost should pick the right option.
Intel VTune Amplifier XE has nice graphs that show where threads are waiting or idle. You'd do well, if threads are sitting idle, finding ways to give fewer threads more work.
There were reports of teething problems related to how Windows 10 schedules work on principal and virtual threads on Ryzens. Please see if you need to install the AMD drivers mentioned at https://www.digitaltrends.com/computing/amd-driver-update-adds-power-plan-for-optimized-performance/ .
I’m not a VTune expert, but I have seen others use this feature. You could ask in the VTune forum or maybe read the Intel product description which has lots of example output.