MathGroup Archive 2012

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

Search the Archive

Re: V8 slow like a snail

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127763] Re: V8 slow like a snail
  • From: Andrzej Kozlowski <akozlowski at gmail.com>
  • Date: Mon, 20 Aug 2012 21:28:03 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <k0fjaj$q71$1@smc.vnet.net> <20120820081346.EFF8367FE@smc.vnet.net>

On 20 Aug 2012, at 10:13, David Bailey <dave at removedbailey.co.uk> wrote:

> On 15/08/2012 08:32, Dr. Wolfgang Hintze wrote:
>> Great disappointment on my side with 8.0.4.0 Home edition which I
>> installed yesterday!
>> My first impression: looks good, many nice features ... but =
incredibly
>> slow in comparision to my good old 5.2.
>> I then carried out a modest benchmark test the results of which I'll
>> show below and which I like to express in terms of a "snail
>> factor" ( = time in v5.2/ time in v8).
>>
>> Consider this integral for which we can safely expect Mathematica to
>> be expert in solving:
>>
>> f1[n_, m_] :=
>>  Integrate[n t^m Exp[-n t] (Exp[t] - 1)^(n - 1), {t, 0, \[Infinity]},
>>   Assumptions ->  {{n, m} \[Element] Integers, m>= 0, n>  0}]
>>
>> I carried out Timing[f1[n, m]] for m=0,1,2,3,10 in both versions. =
Here
>> are the results in the format
>>
>> {m, V5.2 f1 first call, V5.2 second call, V8 first call, V8 second
>> call, snail factor first call, snail factor second call}
>>
>> {
>> { 0, 0.328, 0.078, 2.122, 2.044, 6.46951, 26.2051},
>> { 1, 0.109,  0.063, 30.202, 30.483, 277.083, 483.857},
>> { 2, 0.421, 0.11,  30.42, 30.17, 72.2565, 274.273},
>> { 3, 0.452, 0.156, 31.528, 31.325, 69.7522, 200.801},
>> {10, 5.366, 5.382, 42.448, 42.682, 7.91055, 7.93051}
>> }
>>
>> Even if we compare only the first calls the range of the snail factor
>> goes up to 277 at m = 1, is 72 for m = 2, and is still close to 8 =
for
>> larger m.
>>
>> This is my story in other words: I own a very old car, and have
>> considered for a long time to change to a newer one - although it
>> still can go at 200 km/h on the Autobahn.
>> So now I am proud owner of the new brilliant car, and I must learn =
the
>> on important tours (m=1) =EDts maximum speed turns out to be less =
than 1
>> km/h,  about 3 km/h (m=2) or at most about 30 km/h. Who laughes? Me
>> not! Obviously I'll definitely keep the old car!
>>
>> Ok, maybe I have chosen the wrong example (though in other test runs =
a
>> similar pictures emerged and this example is just the type I'm using
>> Mathematica for). Are there perhaps acknowleged benchmarks for such a
>> comparison of versions?
>>
>> Finally, dear group, as you might have noticed, I'm asking for
>> consolation. Please comment and give me useful hints. Many thanks in
>> advance.
>>
>> Best regards,
>> Wolfgang
>>
>
> It is important to realise two things:
>
> 1)     The home edition is the same code as the normal version.
>
> 2)     The speed of Mathematica depends on what calculation you are
> interested in - many things have speed-ed up since 5.2. A lot of extra=

> analysis was added to symbolic integrals (at v6.0) to ensure that the=

> result was always valid. This slowed down symbolic integration
> (particularly definite integrals), but is presumably worth it. There =
is
> an option to Integrate that will stop at least some of this extra CPU=

> time: GenerateConditions->False
>
> David Bailey
> http://www.dbaileyconsultancy.co.uk
>
>
>
>

There is a third thing one should add to this. Improvements to functions 
like Integrate that usually consist of making sure that it only uses 
methods that always lead to valid answers sometimes (used to be quite 
often in the past) as a side effect result in Integrate not being able 
to obtain answers to problems that it used to give valid answers to 
before the new checks were introduced. There are a number of ways this 
could happen. The worst case is when it turns out that Mathematica got 
the old (correct) answer by applying a transformation that is invalid in 
general and just happened to work in this particular case. Probably more 
often the transformation that was applied was valid only for a narrower 
class of cases and in the newer version this class was restricted too 
far (thus excelling the case in question). In any case, it should be 
obvious to anyone that no one is trying to make Mathematica deliberately 
slower and that examples like this are almost certainly unfortunate 
"side effects" of genuine improvements.
It does not mean, of course, that such problems should not be fixed - 
they definitely should, but to claim that functions like Integrate have 
overall become less usable in higher version displays both ignorance of 
how such things work and lack of experience with the newer version 
(there are a vast number of integrals that version 8 can do that version 
5 can't or where version 5 gives wrong answers).

Andrzej Kozlowski



  • Prev by Date: Drawing a Line From One Plot to Another
  • Next by Date: Re: How to make fitting code using NDSolve?
  • Previous by thread: Re: V8 slow like a snail
  • Next by thread: Re: V8 slow like a snail