Hi Douglas,

As per tradition, some little extra information follows.

The long and short of it is:
> Any node before AVX microarchitecture either got phased out or setup in a 
> special queue (i.e. avoid them)
...
> By default, builds would go on AVX microarchitecture (f.i. ivybridge happened 
> to be the common denominator)

Effectively, this using `:avx:`was an opportunity related to circumstances 
around the tick-tock product cycles of Intel silicon at the time: YMMV.
N.B. It was convenient, in the given context, to provide the default EasyBuild 
trees under the avx regime (see URL sent earlier, about avoiding gcc's `march`).

> Builds were done on dedicated queues and the supported scheme involved using 
> SGE's features, as needed, to steer the builds where they should go, per 
> microarchitecture.
> On that last one, nodes have been tagged, each with a corresponding 
> `cpuflags` tag. f.i. `:avx:avx2:avx512cd:avx512f:f16c:fma:lm:sse:sse4_2:` - 
> if you have SGE [...]

The invisible work done here was behind choosing judiciously the 
CPU_FLAGS_LIST, 
since effectively it is what the linux kernel exposes in relation to 
microarchitecture features and allows large scale automation with both current 
and future nodes. 
It is important because some software can get very picky on this: OpenBLAS 
comes to mind now, but there were more.

> And the name of the game is to watch out your allocation of CPU horsepower 
> and check if there is some user who needs further help to optimise code.

i.e. if you keep a close watch on the top10 or top20 global usage, you can 
arrive to very levels of efficiency without unjustifiably increasing the 
complexity for all users of the HPC platforms or, imposing on them any 
artificial incompatibilities with using the cloud.

Which, actually, makes me turn this into a question:
* Q. Have people in this list faced the need of (arch) compatibility between 
HPC and vendor clouds and how did you go about it? Anything to share?

enjoy the weekend to all,
F.

--
echo "sysadmin know better bash than english" | sed s/min/mins/ \
        | sed 's/better bash/bash better/' # Yelling in a CERN forum

Reply via email to