 
 
 
 
 
 
Re: Compilation: Avoiding inlining
- To: mathgroup at smc.vnet.net
- Subject: [mg121497] Re: Compilation: Avoiding inlining
- From: DmitryG <einschlag at gmail.com>
- Date: Sat, 17 Sep 2011 06:27:20 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201109160946.FAA12301@smc.vnet.net> <j4vana$dal$1@smc.vnet.net>
Hi Oliver,
thank you for your response! I am interested now in the systems of
equations that are non-vectorizable. By mistake, in my first post I
have used a system of equations that can be vectorized and this turned
the discussion away from the topic. But in my second post, I have a
non-vectorizable system of equations.
I have identified three ways to define the system of equations. Below
are the results with Mathematica compilation.
1)
(* Definition of the equations *)
NN = 1000;
F = Function[{t, x}, Table[ -x[[i]] Sin[0.1 t]^2/(1 +100 Sum[x[[i +
j]], {j, 1, Min[3, NN - i]}]^2), {i, 1, NN}]];
>> Evaluation time 24.4983979 - slow execution.   No inlining. Compiled code 189 lines independently of NN. Compilation in C gives practically the same speed
2)
(* Definition of the equations *)
NN = 1000;
F = Function[{t, x}, Table[ Unevaluated[-x[[i]] Sin[0.1 t]^2/(1 +100
Sum[x[[i + j]], {j, 1, Min[3, NN - i]}]^2)], {i, 1, NN}]];
>> Evaluation time 4.7582721.   No inlining. Compiled code 93 lines independently of NN.  Compilation in C gives practically the same speed
3)
(* Definition of the equations *)
NN = 1000;
F = Function[{t, x}, Evaluate[Table[ -x[[i]] Sin[0.1 t]^2/(1 +100
Sum[x[[i + j]], {j, 1, Min[3, NN - i]}]^2), {i, 1, NN}]]];
>> Evaluation time 1.0680555 - fastest execution.   Here we have inlining of the code, the size of the compiled code increases with NN. Compilation in C is impossible.
One can see that there are many different ways with very different
results, and it is very important to find the best one - more
important than to buy a faster computer;-))
Does in make sense to introduce F as a compiled function, as you have
done in your response? We already make compilation of the RK-4
procedure with F injected into it.
Best,
Dmitry
- Follow-Ups:
- Re: Compilation: Avoiding inlining
- From: Oliver Ruebenkoenig <ruebenko@wolfram.com>
 
 
- Re: Compilation: Avoiding inlining
- References:
- Re: Compilation: Avoiding inlining
- From: DmitryG <einschlag@gmail.com>
 
 
- Re: Compilation: Avoiding inlining

