Speed up processing


#1

I just started experimenting with CellProfiler and found out that it has many built in features for cell analysis plus the possibility of adding more functions. As I understand it has been developed under MATLAB 7 and compiled for distribution. Is it true that if I want to add in a few functions and then execute the pipeline at its maximum speed, that I would need MATLAB 7 and MATLAB Image Processing Toolbox for development and MATLAB Compiler to enhance the execution speed and to generate MATLAB independence executables to run on different computers.

In processing a pipeline, I noticed that it takes a long time to perform its segmentation. Has these algorithms been optimized? Do you know if the MMX, SSE or SSE2 instructions set of the Intel processors are being used? Any suggestions that you may have in speeding up the pipeline would be most useful.


#2

Hi Steven,

At least for small image sets (~20 images), I have noticed that the compiled versions are actually SLOWER then the source code run in MATLAB. Most functions in MATLAB have already been compiled and therefore can not go any faster.

Segmentation can take a long time. The slowest part of segmentation is the initial thresholding which when using our Automatic methods requires using many loops. Loops are notoriously slow in MATLAB. If someone were to port these functions in to C, it is possible they would run faster.

As for making use of MMX, SSE or SSE2, this is a question for MATLAB and how they compile their software. However, I doubt it because MATLAB uses Java which make’s it easier to run on all operating systems, which would not always be run on Intel processors.

Regards,
Mike