I have a mixed cluster with AMD instanbul, AMD bulldozer, and Intel sandybridge CPUs. I have been using -tp=px, but I’m wondering if there’s a better choice.
Would -tp=istanbul,bulldozer,sandybridge be better? Or should I just use the oldest (instanbul)? Will that work for sandybidge CPUs, or will I get “Illegal instruction” crashes?
By the way, instanbul is no longer listed as an option:
# pgfortran -tp --help pgfortran-Fatal-Switch -tp must have a value -tp=px|bulldozer|piledriver|zen|sandybridge|haswell|knl|skylake Select target processor px Generic x86 Processor bulldozer AMD Bulldozer processor piledriver AMD Piledriver processor zen AMD Zen architecture (Epyc, Ryzen) sandybridge Intel SandyBridge processor haswell Intel Haswell processor knl Intel Knights Landing processor skylake Intel Skylake Xeon processor
The “|” (pipe) symbol usually means “or”: the options are mutually exclusive. Are they?
(Yes, I know the instanbul nodes are very old, but they still work fine so I’m not yet willing to retire them.)
I’m using pgfortran 19.4-0 LLVM 64-bit.