MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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