Skip to main content

Perform FFT on data set that does not fit into memory

Project description

# out_of_core_fft <a href=”https://travis-ci.org/moble/out_of_core_fft”><img align=”right” hspace=”3” alt=”Status of automatic build and test suite” src=”https://travis-ci.org/moble/out_of_core_fft.svg?branch=master”></a> <a href=”https://github.com/moble/out_of_core_fft/blob/master/LICENSE”><img align=”right” hspace=”3” alt=”Code distributed under the open-source MIT license” src=”http://moble.github.io/spherical_functions/images/MITLicenseBadge.svg”></a>

Fourier transforms are highly nonlocal, which can cause problems when dealing with very large data sets. In particular, standard algorithms cannot work with data sets too large to fit into memory. On the other hand, the classic Cooley-Tukey FFT algorithm shows that discrete Fourier transforms can be split up into smaller sub-problems. This module provides functions for FFTs that can work with the data directly on disk, extracting small subsets that fit into memory, working on each individually, and then combining back onto disk to get the final result. This implementation is based on the algorithm presented by Thomas H. Cormen in “Algorithms for parallel processing” (1999). A nontrivial part of the implementation involves transposing the data on disk, for which I created a relatively simple, but fairly fast, function included here simply as transpose.

## Usage

These functions assume that the data to be manipulated are stored in HDF5 files. The FFT and inverse FFT are called with something like

`python import out_of_core_fft out_of_core_fft.fft('input.h5', 'x', 'output.h5', 'X') out_of_core_fft.ifft('input2.h5', 'X', 'output2.h5', 'x') `

Here, x and X are names for the datasets within the HDF5 files. Note that nothing is returned, because the result is stored on disk, as requested.

See the docstrings for more details.

## Acknowledgments

The work of creating this code was supported in part by the Sherman Fairchild Foundation and by NSF Grants No. PHY-1306125 and AST-1333129.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

out-of-core-fft-1.0.tar.gz (11.5 kB view details)

Uploaded Source

File details

Details for the file out-of-core-fft-1.0.tar.gz.

File metadata

  • Download URL: out-of-core-fft-1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for out-of-core-fft-1.0.tar.gz
Algorithm Hash digest
SHA256 0d608954fceb8a65a5d46d66a3f3bad94060127f9b1ea474d70412657247d50f
MD5 8b9d4409934a8e19dfb231164d153e16
BLAKE2b-256 aa0832015df6f269a90942112502063e75eec946a5300b0bc3c6aef135312b26

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page