Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ulises-jeremias/fft-parallel
Different pure C implementations of FFT Algorithms using PThreads and OpenMP
https://github.com/ulises-jeremias/fft-parallel
Last synced: 20 days ago
JSON representation
Different pure C implementations of FFT Algorithms using PThreads and OpenMP
- Host: GitHub
- URL: https://github.com/ulises-jeremias/fft-parallel
- Owner: ulises-jeremias
- License: mit
- Created: 2019-02-24T06:08:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-21T17:06:22.000Z (over 1 year ago)
- Last Synced: 2024-10-07T02:01:43.819Z (about 1 month ago)
- Language: C
- Homepage:
- Size: 5.27 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fast Fourier Transform (FFT) algorithm
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## Table of Contents
- [Fast Fourier Transform (FFT) algorithm](#fast-fourier-transform-fft-algorithm)
- [Table of Contents](#table-of-contents)
- [Using the library](#using-the-library)
- [Install Dependencies](#install-dependencies)
- [Running Tests](#running-tests)
- [Running Benchmarks](#running-benchmarks)
- [Build Options](#build-options)## Using the library
> 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](https://github.com/clibs/clib):
```shell
clib install ulises-jeremias/fft-parallel
```or,
install from source code: First install the library [ScientificC/errno](https://github.com/ScientificC/errno). [_How to install the dependencies_](#install-dependencies)?
Then, execute the following commands on the cli:
```shell
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
sudo ./install
```or you install it using different [_Build Options_](#build-options) with the following commands:
```sh
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake ..
make && sudo make install
```### Install Dependencies
To install `ScientificC/errno` you can run the following commands on the cli:
```sh
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
```## Running Tests
To run the test suite from a command prompt, using a Makefile-like generator, execute the following:
```shell
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake ..
make && ctest
```[_Build Options_](#build-options)
## Running Benchmarks
To run the benchmark suite from a command prompt, using a Makefile-like generator, execute the following:
```sh
git clone https://github.com/ulises-jeremias/fft-parallel.git
cd fft-parallel
mkdir build
cd build
cmake ..
make
./build/benchmark/benchmark_scic_fft_static --times=10
# or ./build/benchmark/benchmark_scic_fft_shared --times=10
```## Build Options
- FFT_BUILD_SHARED: (Default ON) Controls if the shared library is built
```shell
cmake .. -DFFT_BUILD_SHARED=ON
cmake .. -DFFT_BUILD_SHARED=OFF
```- FFT_BUILD_STATIC: (Default ON) Controls if the static library is built
```shell
cmake .. -DFFT_BUILD_STATIC=ON
cmake .. -DFFT_BUILD_STATIC=OFF
```- FFT_BUILD_TESTS: (Default ON) Build the unit tests
```shell
cmake .. -DFFT_BUILD_TESTS=ON
cmake .. -DFFT_BUILD_TESTS=OFF
```- CMAKE_BUILD_TYPE: (Default Release) Set this to 'Release' or 'Debug'
```shell
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.
```shell
cmake .. -DCMAKE_INSTALL_PREFIX=~/fft/
cmake .. -DCMAKE_INSTALL_PREFIX=~/Projects/myproject/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/
```