Wednesday, April 18, 2007

Matlab 2007a for Intel Mac. Finally!

Finally, after more than one year of waiting for Matlab with support of Intel Macs there it is - Matlab 2007a (7.4.0.287). It supports also Windows Vista, and 64-bit Sun Solaris SPARC platforms. I was happy like little child to have it installed and to use it. Unfortunately it did not work from the beginning. When I try to run Matlab from console, I got:
Failed to start the Desktop:
Failure loading desktop class


In my case to make it work properly I had to update Java in my system to the latest versions available through Software Update. After doing this, Matlab environment started without any problems.

One of many new things about this edition of Matlab, is the fact that multithreading is available of core functions of Matlab. By default this option is disabled, hence one must enable it in the preference window. Unfortunately again, still you cannot write any program with multiple threads. Multithreading is only used by the core, standard Matlab functions.

Quickly I decided to test this multithreading. To test it I used quite intensive image processing algorithm analyzing images. I analyzed 34 images twice. Once with enabled and once with disabled multithreading option. I analyzed results using paired t-test to check if there is any significant (with confidence 95%) change in the execution time. Unfortunately, according to t-test, there was no significant change (P>0.05).

Moreover, new with this version of Matlab is the fact that one can run parallel algorithms in four MATLAB sessions on single desktop with Distributed Computing Toolbox.
Unfortunately, I do not have this Toolbox, and cannot check if this form of parallel execution significantly improve speed (assuming one have program that uses it).

I think that the best way for me to use two cores in my Intel Mac, is just to start to separate Matlabs. In my case it is very useful, because I work with image processing, and often I have many images to process. Thanks to two cores one Matlab can process first half of the number of images, and the second one, the second half. Consequently, I can process all images two times faster.

Finally, as usual with matlab version there are minor problems with backward comparability. Hence to run some programs on this newest version I had to make some minor changes in few algorithms. Moreover, at the moment there is problem with compiling ANCI C mex files. It is due to that I do not have latest version of Xcode. However, I believe that once I download it (over 800MB) and install, it will work.

And really final thought. Still no hash tables!