This is a parallel implementation of the Fast Fourier Transform (FFT) algorithm. The algorithm is implemented in C and provides multiple implementations using multiple backends. The backends are:
- OpenMP
- Pthreads
NOTE: This will install in /usr/local. You probably don't want that. But this is a quick start. The best thing to do is to combine this library with your other code into a larger CMake project/solution.
Install the last release with clib:
clib install ulises-jeremias/fft-parallel
or,
install from source code: First install the library ScientificC/errno. How to install the dependencies?
Then, execute the following commands on the cli:
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
sudo ./install
or you install it using different Build Options with the following commands:
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake .. <build options>
make && sudo make install
To install ScientificC/errno
you can run the following commands on the cli:
cd /tmp
# to install scic/errno
git clone https://github.com/ScientificC/errno.git
cd errno
mkdir build && cd build
cmake ..
make && sudo make install
To run the test suite from a command prompt, using a Makefile-like generator, execute the following:
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake .. <build options>
make && ctest
To run the benchmark suite from a command prompt, using a Makefile-like generator, execute the following:
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake .. <build options>
make
./build/benchmark/benchmark_scic_fft_static --times=10
# or ./build/benchmark/benchmark_scic_fft_shared --times=10
- FFT_BUILD_SHARED: (Default ON) Controls if the shared library is built
cmake .. -DFFT_BUILD_SHARED=ON
cmake .. -DFFT_BUILD_SHARED=OFF
- FFT_BUILD_STATIC: (Default ON) Controls if the static library is built
cmake .. -DFFT_BUILD_STATIC=ON
cmake .. -DFFT_BUILD_STATIC=OFF
- FFT_BUILD_TESTS: (Default ON) Build the unit tests
cmake .. -DFFT_BUILD_TESTS=ON
cmake .. -DFFT_BUILD_TESTS=OFF
- CMAKE_BUILD_TYPE: (Default Release) Set this to 'Release' or 'Debug'
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake .. -DCMAKE_BUILD_TYPE=Debug
- CMAKE_INSTALL_PREFIX: (Default /usr/local) Allows you to specify where
make install
sends the output.
cmake .. -DCMAKE_INSTALL_PREFIX=~/fft/
cmake .. -DCMAKE_INSTALL_PREFIX=~/Projects/myproject/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/