francislewis / chillychicken

Parallel implementations of the Cooley-Turkey FFT algorithim in C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chillychicken

Parallel implementations of the Cooley-Turkey Fast Fourier Transform (FFT) algorithm in C for my University of Bristol masters unit in Advanced Computational Physics, and as a way to teach myself C.

There is a serial approach along with three parallel approaches. A shared memory approach which uses OpenMP is included, along with a distributed memory approach using MPI. A combination of these approaches is also included, although this is limited to 1D.

The effectiveness of these approaches are investigated using the Blue Crystal 4 Supercomputer.

Data on the speed of approach as a function of dimension, problem size and number of threads/proceses is included, alongside a notebook for guided analysis.

My full report can be found under reports/

Requirements

Compilation

Compilation instructions are included in compilation_instructions.txt. Instructions are provided for gcc and icc, although any compiler supporting the c99 standard will suffice.

About

Parallel implementations of the Cooley-Turkey FFT algorithim in C

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 94.4%Language:C 5.5%Language:Shell 0.2%