Sporadic Linux Test Failure¶
This page documents differences in platform architecture between two pre-release runs, in which one passed and one failed.
As for the difference, only the archspec was found different.
Passed Run¶
libmamba version : 2.3.3
micromamba version : 2.3.3
curl version : libcurl/8.14.1 OpenSSL/3.5.4 zlib/1.3.1 zstd/1.5.7 libssh2/1.11.1 nghttp2/1.67.0
libarchive version : libarchive 3.8.2 zlib/1.3.1 bz2lib/1.0.8 libzstd/1.5.7 libb2/bundled
envs directories : /home/runner/micromamba/envs
package cache : /home/runner/micromamba/pkgs
/home/runner/.mamba/pkgs
environment : tardis
env location : /home/runner/micromamba/envs/tardis
user config files : /home/runner/.mambarc
populated config files : /home/runner/work/_temp/setup-micromamba/.condarc
virtual packages : __unix=0=0
__linux=6.11.0=0
__glibc=2.39=0
__archspec=1=x86_64_v3
channels : https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
base environment : /home/runner/micromamba
platform : linux-64
Failed Run¶
libmamba version : 2.3.3
micromamba version : 2.3.3
curl version : libcurl/8.14.1 OpenSSL/3.5.4 zlib/1.3.1 zstd/1.5.7 libssh2/1.11.1 nghttp2/1.67.0
libarchive version : libarchive 3.8.2 zlib/1.3.1 bz2lib/1.0.8 libzstd/1.5.7 libb2/bundled
envs directories : /home/runner/micromamba/envs
package cache : /home/runner/micromamba/pkgs
/home/runner/.mamba/pkgs
environment : tardis
env location : /home/runner/micromamba/envs/tardis
user config files : /home/runner/.mambarc
populated config files : /home/runner/work/_temp/setup-micromamba/.condarc
virtual packages : __unix=0=0
__linux=6.11.0=0
__glibc=2.39=0
__archspec=1=x86_64_v4
channels : https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
base environment : /home/runner/micromamba
platform : linux-64
If we look closely:
2.log (FAILED) - Line 2073:
virtual packages : __unix=0=0
__linux=6.11.0=0
__glibc=2.39=0
__archspec=1=x86_64_v4 ← Intel Xeon with AVX-512
3.log (PASSED) - Line 2060:
virtual packages : __unix=0=0
__linux=6.11.0=0
__glibc=2.39=0
__archspec=1=x86_64_v3 ← AMD EPYC with AVX2
What This Means¶
x86_64_v4 vs x86_64_v3:
v4 supports AVX-512 instructions (Intel Skylake-X and newer)
v3 supports AVX2 instructions (Intel Haswell and newer)
When GitHub assigns a v4 runner, NumPy/SciPy detect AVX-512 support at runtime and use different SIMD code paths. This causes tiny numerical differences (~1e-13 relative error) that exceed our tolerance levels.