I am running OpenBLAS-enabled R in a Singularity container. I used version 0.3.18 as packaged by Debian but I noticed that on some of our SLURM nodes R gives a wrong result (a genomic kinship matrix is reported as not being positive definite when it actually is). Also, I saw really strange and clearly invalid PCA (principal component analysis) results on that node.
More specifically, on nodes that have the CPU architecture "skylake" the result was wrong whereas on nodes with architectures "nehalem", "haswell" and "ivybridge" the result was correct.
To follow up on this, I compiled OpenBLAS myself. The problem only occurs with the make argument DYNAMIC_ARCH=1. I included TARGET=GENERIC but that didn't change anything. But if using make TARGET=GENERIC without DYNAMIC_ARCH, the problem does not occur. The problem also only occurs if I compile on ivybridge and run on skylake, not vice versa.
I did a git bisect using make TARGET=GENERIC DYNAMIC_ARCH=1 and found that the first commit that shows this problem is d71fe4e.
I am running OpenBLAS-enabled R in a Singularity container. I used version 0.3.18 as packaged by Debian but I noticed that on some of our SLURM nodes R gives a wrong result (a genomic kinship matrix is reported as not being positive definite when it actually is). Also, I saw really strange and clearly invalid PCA (principal component analysis) results on that node.
More specifically, on nodes that have the CPU architecture "skylake" the result was wrong whereas on nodes with architectures "nehalem", "haswell" and "ivybridge" the result was correct.
To follow up on this, I compiled OpenBLAS myself. The problem only occurs with the make argument
DYNAMIC_ARCH=1. I includedTARGET=GENERICbut that didn't change anything. But if usingmake TARGET=GENERICwithoutDYNAMIC_ARCH, the problem does not occur. The problem also only occurs if I compile on ivybridge and run on skylake, not vice versa.I did a
git bisectusingmake TARGET=GENERIC DYNAMIC_ARCH=1and found that the first commit that shows this problem is d71fe4e.