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.
Thanks,
Bart