nextflow-io / nextflow

A DSL for data-driven computational pipelines
http://nextflow.io
Apache License 2.0
2.77k stars 630 forks source link

Revisit support for Spack target architectures, for best fit with Wave requirements #4523

Open marcodelapierre opened 12 months ago

marcodelapierre commented 12 months ago

We want to make sure we are able to build Wave Containers with target micro-architectures that are relevant/useful to the service.

Current status:

TO-DO:

For reference, list of Spack supported targets as of today: https://spack.readthedocs.io/en/latest/basic_usage.html#support-for-specific-microarchitectures

pditommaso commented 12 months ago

What's the difference of x86_64 vs x86_64_v3?

marcodelapierre commented 12 months ago

x86_64_v3 is a CPU family that corresponds to newer CPUs; it features a number of additional features, such as AVX2 (256 bit floating point registers for vector arithmetics). Compiling for it results in more performant binaries than for x86_64. Pretty much all CPUs marketed after 2015 fall in this family, so there is very, very little risk of incompatibility.

pditommaso commented 12 months ago

OK, but still there's the need to support the target microarchitecture then

marcodelapierre commented 12 months ago

Yes, in Spack jargon: name: 'linux/x86_64', target: 'x86_64_v3'

I have updated the original post above - indeed at first I had missed the point you have just made

pditommaso commented 12 months ago

I see. Main problem there's no support for target arch in the current request object

https://github.com/nextflow-io/nextflow/blob/d2dd216fd0c1ff0ed25863822dff0abc09501fed/plugins/nf-wave/src/main/io/seqera/wave/plugin/SubmitContainerTokenRequest.groovy#L34-L122

marcodelapierre commented 12 months ago

exactly, we will need to add it