Option to allow dependency being built with compiler that is not aware of newest micro-architecture?

5 views
Skip to first unread message

Björn Dick

unread,
Nov 28, 2020, 8:27:37 PM11/28/20
to Spack
Hi all,

to the best of my knowledge, Spack does not allow to build dependencies with a compiler that can not produce optimized code for the respective micro-architecture if target is specified. If specifying an older target for the dependency, everything up to the root spec is built for this micro-architecture (and hence not fully optimized).
While being absolutely reasonable in most scenarios, there might be others that would benefit from the opportunity to relax this policy. Envision e.g. the following scenarios:

1) Profiling tool depending on PAPI: PAPI should not be critical w.r.t. micro-architecture optimization. It's hence sufficient to build it with the GCC provided by the OS and link this to the different specs built for different compiler+MPI combinations. This would avoid building PAPI for every spec again and again.

2) Custom build for a user who is fine with satisfying a dependency by a rather old (and un-optimized!) version provided by the OS as he/she knows that the respective dependency does not contain any hotspot routines.

Given such a scenario, is there an option to relax the policy described above, i.e. to satisfy a dependency by a spec that is optimized for an older/generic micro-architecture?

Best,
Björn
Reply all
Reply to author
Forward
0 new messages