Main Features:
* userfriendly and GUI based PIV tool
* multi-pass, multi-grid window deformation technique
* import bmp/ tiff/ jpeg image pairs/ series
* multiple image sequencing styles
* individual image masking and region of interest
* image pre-processing
* two different sub-pixel estimators
* multiple vector validation methods
* magnitude/ vorticity/ divergence/ shear / ...
* data smoothing, vector field highpass
* multiple colormaps
* streamlines
* extensive data extraction tools
* statistics
* synthetic PIV image generator
* Many data export features
* main features accessible via comand line scripting

Thursday, November 24, 2011

A quick note on processing speed

Soon, I will need to analyze a large dataset (441.000 image pairs), so I did some tests to speed up the data processing. When using a QuadCore computer (actually 8 virtual cores in this case), up to eight Matlab instances can run in parallel to increase speed. Running more instances will result in a decrease in speed.
A similar effect is also possible with a DualCore computer. Running two Matlab instances in parallel increases the speed by almost 100%.
If you also need to save time, you might try to split your data and run as many Matlab instances as there are (virtual) CPU cores on your computer. Starting the PIV analysis from the commandline (see example in PIVlab_commandline.m), and starting Matlab with the "-nodesktop" command will additionally increase speed.
Processing time for the analysis of one large image pair with multiple passes on different systems


  1. I was checking the speed of piv_FFTmulti subroutine. In fact, cross-correlation is pretty fast (~ 6% of computational time), but the interpolation of the velocity vector (interp2 subroutine) takes in total 85% of computational time. Isn't there a way to perform this interpolation faster?

    In fact, I would like to use this subroutine separately to treat huge amount of data, and optimization of the code would be of great help...

  2. Dear Jiří Vejražka, That is true, the interpolation is pretty slow in Matlab. I was thinking about doing the interpolation on my graphics card using the Nvidia CUDA extension. But up to now, I didn't have the time to try it. If you have the parallel computing toolbox, you could try to run the interp2 interpolation in parallel.

  3. berikut referensi mengenai penggunaan matlab :

  4. I have found 3 alternatives to interp2 that claim to be faster, but haven't tried them out.