Copyright (C) 2000-2012 |
GNU Info (fftw.info)Parallel FFTWParallel FFTW ************* In this chapter we discuss the use of FFTW in a parallel environment, documenting the different parallel libraries that we have provided. (Users calling FFTW from a multi-threaded program should also consult Note: Thread safety.) The FFTW package currently contains three parallel transform implementations that leverage the uniprocessor FFTW code: * The first set of routines utilizes shared-memory threads for parallel one- and multi-dimensional transforms of both real and complex data. Any program using FFTW can be trivially modified to use the multi-threaded routines. This code can use any common threads implementation, including POSIX threads. (POSIX threads are available on most Unix variants, including Linux.) These routines are located in the `threads' directory, and are documented in Note: Multi-threaded FFTW. * The `mpi' directory contains multi-dimensional transforms of real and complex data for parallel machines supporting MPI. It also includes parallel one-dimensional transforms for complex data. The main feature of this code is that it supports distributed-memory transforms, so it runs on everything from workstation clusters to massively-parallel supercomputers. More information on MPI can be found at the MPI home page (http://www.mcs.anl.gov/mpi). The FFTW MPI routines are documented in Note: MPI FFTW. * We also have an experimental parallel implementation written in Cilk, a C-like parallel language developed at MIT and currently available for several SMP platforms. For more information on Cilk see the Cilk home page (http://supertech.lcs.mit.edu/cilk). The FFTW Cilk code can be found in the `cilk' directory, with parallelized one- and multi-dimensional transforms of complex data. The Cilk FFTW routines are documented in `cilk/README'. automatically generated by info2www version 1.2.2.9 |