[Date Index]
[Thread Index]
[Author Index]
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
Prev by Date:
**Re: Texture in version 8, fine, but don't export...?**
Next by Date:
**Re: CDF files now on Gyre&Gimble (math blog)**
Previous by thread:
**Re: Compilation: Avoiding inlining**
Next by thread:
**Re: Compilation: Avoiding inlining**
| |