diff --git a/MPI/fftw/README b/MPI/fftw/README new file mode 100644 index 0000000..f7675db --- /dev/null +++ b/MPI/fftw/README @@ -0,0 +1,7 @@ +FFTW +==== + +FFTW is highly optimized, but downgrades if run on an older processor. It +should be built compiled on a system with SSE2 and AVX2 support (e.g. merlin). + +This module requires PMODULE_VERSION > 1.0.0 to compile. diff --git a/MPI/fftw/build b/MPI/fftw/build new file mode 100755 index 0000000..7334359 --- /dev/null +++ b/MPI/fftw/build @@ -0,0 +1,25 @@ +#!/usr/bin/env modbuild +# Needs to be built with SSE2 and AVX2 support, but should run on architectures without this + +pbuild::add_to_group 'MPI' + +pbuild::set_download_url "http://www.fftw.org/fftw-$V.tar.gz" +pbuild::set_sha256sum "fftw-3.3.8.tar.gz:6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303" + +pbuild::install_docfiles 'COPYRIGHT' 'COPYING' 'README' 'NEWS' + +pbuild::pre_configure() { + pbuild::add_configure_args "CC=${MPICC}" + pbuild::add_configure_args "CXX=${MPICXX}" + + # Multithreading. Enabling both is fine + pbuild::add_configure_args "--enable-threads" + pbuild::add_configure_args "--enable-openmp" + + # MPI support + pbuild::add_configure_args "--enable-mpi" + + # CPU optimizations + pbuild::add_configure_args "--enable-sse2" + pbuild::add_configure_args "--enable-avx2" +} diff --git a/MPI/fftw/files/variants b/MPI/fftw/files/variants new file mode 100644 index 0000000..fa8f4ad --- /dev/null +++ b/MPI/fftw/files/variants @@ -0,0 +1 @@ +fftw/3.3.8 unstable gcc/{7.3.0,8.2.0} mpich/3.2.1 openmpi/3.1.3 diff --git a/MPI/fftw/modulefile b/MPI/fftw/modulefile new file mode 100644 index 0000000..c8cc91b --- /dev/null +++ b/MPI/fftw/modulefile @@ -0,0 +1,15 @@ +#%Module + +module-whatis "Fastest Fourier Transform in the West" +module-url "http://www.fftw.org/" +module-license "GPL; http://www.fftw.org/doc/License-and-Copyright.html" +module-maintainer "Spencer Bliven " + +module-help " +FFTW is a C subroutine library for computing the discrete Fourier transform +(DFT) in one or more dimensions, of arbitrary input size, and of both real and +complex data (as well as of even/odd data, i.e. the discrete cosine/sine +transforms or DCT/DST). +" + +