|Mar9-12, 02:36 PM||#1|
Compiled Functions in Mathematica
I was looking at ways I could optimize a simulation I wrote in Mathematica and came across the command compile. From what I understand, it defines a function that expects a numerical value for the variable. But I don't understand how this would be any different from just ordinarily defining a function using " := "
|Mar9-12, 07:57 PM||#2|
When not inside a Compile something like + has to check
Is this a symbol, if so then do this
Is this a decimal approximation, if so then do this
Is this a matrix, if so then do this
All the checking adds a considerable overhead.
When inside a Compile the rules are very different. It invokes a much more limited set of sanity checks, if those fail it defaults back to the uncompiled code, otherwise it invokes something similar to a Java byte code machine which simulates a virtual CPU to do mostly numerical calculations.
For the right kinds of problems with a really well implemented algorithm inside Compile you can see 5-30x increase in speed. But Compile is at or near the top of the list for worst documented functions available. There are tiny little examples here and there in books and you can try to reverse engineer what the documentation should be to use it effectively. I am mostly serious with my offer to buy a cake for the first person to write a really really well done tutorial on how to write a Compile so that it will always do what I want fast and will work the first time. Thus far I have had zero nibbles on that.
You can also consider MathLink to an outside executable. If you can put almost everything you need to do into that executable and have minimal communication then that can provide you even greater speed.
|compile, compiled function, mathematica, optimize|
|Similar Threads for: Compiled Functions in Mathematica|
|Mathematica: Interpolation Functions||Math & Science Software||3|
|Definiing two functions (mathematica)||Math & Science Software||3|
|using interpolating functions in Mathematica||Math & Science Software||1|
|Mathematica functions||Math & Science Software||1|
|A list of functions in Mathematica?||Math & Science Software||3|