Suggestions for -tp option for my mix of CPUs

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

Hi Bart,

The “|” (pipe) symbol usually means “or”: the options are mutually exclusive. Are they?

Yes, they are mutually exclusive. We weren’t yet able to carry forward the unified binary feature in the LLVM based compilers. Hopefully we’ll be able to add it back in the future, but it was a little used feature so is a lower priority.

Or should I just use the oldest (instanbul)? Will that work for sandybidge CPUs, or will I get “Illegal instruction” crashes?

I’m not entirely sure but believe a binary built targeting Istanbul will run correctly on a SandyBridge. Though please test. Worst case, fall back to the px option.

By the way, instanbul is no longer listed as an option:

Correct. Due to it’s age, we no longer officially support Istanbul systems, which means that we don’t test on these systems any longer nor would fix any issues specific to this architecture. The option will still be accepted, it’s just been hidden in the help messages.

Hope this helps,
Mat