LCS, FTLE, and CUDA

Summer 2009, I participated in the Freshman Summer Research Institute at Caltech under the guidance of Joris Vankerschaver. FSRI offers incoming Caltech freshmen a five week research job and a primer math course that helps with Math 1a.

I studied accelerating the computation of FTLE fields and LCS by parallel processing using nVidia CUDA. Here's the final paper (PDF, 3.1M). I was able to achieve a 1000x speedup over a naive FTLE implementation, so a comparable real-world speedup would be 50-100x.

But, the most interesting things are the pictures and videos and software:

cuda_ftle

Download

cuda_ftle-0.9.tar.bz2 (16M) contains all of the source code and most of the documentation you'll need to get going. Released August 14, 2009.

Features of this software include a performance boost from CUDA, a fast data plotter (graph_data), the ability to make frames in a batch easily, and the ability to plot tracers that just follow the liquid.

Prerequisites: CUDA (and hardware), libgd, (optionally) PLPlot

If you have any questions/comments/bug reports/complaints, please send email to: raymondj@caltech.edu

Examples

I've uploaded some YouTube videos to illustrate; high-bandwidth connection recommended! Please ask if you would like to see originals (1024x1024 @ 30fps!); arrangements can be made. All pictures with axis labels were created with PLPlot; those without were created with the included graph_data utility.