⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
💻
字号:
                           Parallel FFTW for CilkThis directory contains routines for doing parallel transforms in oneor more dimensions on machines with the Cilk language and runtime.Cilk is a superset of C that allows easy creation of efficient parallelprograms.  More information on Cilk can be found at the Cilk homepage:		  http://supertech.lcs.mit.edu/cilk-----------------------------------------------------------------------Installation:Typing "make" will create the libfftw_cilk.a library.  Before doingthis, you must have built the libfftw.a library in the fftw/directory, and all the object files must still be in that directory!"make tests" will generate two programs, test_cilk and time_cilk,which test the subroutines for correctness and benchmark them againstthe uniprocessor versions, respectively.  The outputs of time_cilk arethe times in microseconds / n lg n for a single transform."make install" will install the libfftw_cilk.a library and thefftw_cilk.cilh header file in the locations specified by the prefix,LIBDIR, and INCLUDEDIR Makefile variables.You will probably have to modify the Makefile to reflect the locationof Cilk on your machine.  The software was developed under Cilk-5.  Itmay work under Cilk-4, but no guarantees are provided.-----------------------------------------------------------------------Usage:The usage is nearly identical to that of the uniprocessor FFTW.* Before doing any transforms, you must create plans viafftw_create_plan or fftwnd_create_plan.  (The plans are of the sametype as the uniprocessor plans, and are created by the same routines.In fact, you can use the same plan for both the uniprocessor FFTW andthe Cilk FFTW.)* To perform a parallel 1D transform you call the fftw_cilk procedure,which has identical arguments to the fftw subroutine.  It is a Cilkprocedure, so you have to call it using spawn:   spawn fftw_cilk(plan,howmany,in,istride,idist,out,ostride,odist);Be sure to perform a sync before you try to make use of the results ofthis procedure.* Parallel 1D transforms use the fftwnd_cilk procedure, which hasthe same arguments as the fftwnd subroutine:   spawn fftwnd_cilk(plan,howmany,in,istride,idist,out,ostride,odist);Again, be sure to sync before using the results.-----------------------------------------------------------------------Notes:* It is safe to spawn fftw_cilk or fftwnd_cilk multiple times inparallel using the same plan.  Spawn away!* It is *not* safe to call the uniprocessor fftwnd in parallel withitself using the same plan.  You have been warned.* If you use howmany > 1, fftw_cilk and fftwnd_cilk will perform thehowmany transforms in parallel.  It is the caller's responsibility toinsure that the outputs don't overlap each other or any of the inputs,lest race conditions result.* For in-place transforms using fftw_cilk, the out parameter isignored.  (Unlike the uniprocessor case, where the out parameter canbe used to specify a temporary work array.)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -