These subpackages are not shipped in RHEL, so there is little value in
building them. A few build fixes were needed for when both are
disabled, since enviroment-modules isn't installed then either.
FFTW needs to measure plan speeds to find an optimal plan. There isn't
cycle counter support on ARM by default. This causes FFTW to silently
fall back to always running in estimate mode.
The CNTVCT_EL0 counter works by default on Linux now, so enable it.
There's an FFTW issue, https://github.com/FFTW/fftw3/issues/287, to make
this the default, but it has not been acted on.
In my tests, this results in a huge speedup of 2x to 3x.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
If both mpich and openmpi are not used (via --without options) the build
fails. The list of mpi types is undefined in this case, and it is not
referenced correctly to be treated as an empty list.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
The MPI tests use up to four processes. By default, OpenMPI won't allow
more processes than processors and the tests will fail on a two
processor VM. Using the --oversubscribe option will allow the tests to
run.
mpich doesn't have this limit by default and doesn't need or support
this option.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
Use the same list of precision names when building MPI versions as well
as the install and check stages.
Instead of having two for loops, one for quad support and one without,
just have one loop and make the number of precisions a macro.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
The original reason NEON was disabled was lack of runtime detection. It
should be runtime detected on Linux.
NEON is also required for ARMv8, so it's reasonable to expect every
aarch64 host to have it. FFTW should still work without NEON, but I
don't know of any aarch64 CPU without it to test this on.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
FFTW does runtime detection of CPU features on x86, so this change does
not require AVX2 support to use the libraries, but does allow FFTW to
use the AVX2 code when the CPU supports it.
Signed-off-by: Trent Piepho <tpiepho@gmail.com>
Enable NEON on aarch64
Clean up precision list
Fix for OpenMPI build with < 4 processors
Fix building with no enabled MPI types
Enable single precision Altivec on PPC
Enable CNTVCT_EL0 cycle counter support on aarch64
Signed-off-by: David Cantrell <dcantrell@redhat.com>
* Add missing BuildRequires on environment-modules, used in 43b91c1c ("Build
mpich and openmpi versions") without explicit BR dependency
* Add new cmake files to %files