Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1991
*January
*February
*March
*August
*September
*October
*November
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1991

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

Search the Archive

Strange behavior from Compile[ ]

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Strange behavior from Compile[ ]
  • From: barry at math.ucla.edu (Barry Merriman)
  • Date: Tue, 27 Aug 91 15:46:32 PDT

I'm trying to benchmark the speed of Mma 2.0 on Compile-ed 

calculations. I've come across some strange "feature"
in the Mma compiler. Essentially, it compiles a Do loop of
< 50,000 loops fine, but can't compile it when it goes to > 50,000  
loops.
Very odd, since 50,000 is not a particularly big integer, and so
shouldn't bother the compiler.


Here what I do: (Mma 2.0 on NeXTstation)

In[30]:= (* compiled benchmark of  40,000 multiplies *)

benchmark40 = Compile[ {x0,y0}, 

                        Module[{x = x0,y = y0}, 

                               Do[ y *= x, {40000} ]; 

                               y
                        ] 

              ] 


Out[30] := (* OK *)
CompiledFunction[{x0, y0}, Module[{x = x0, y = y0}, 

                              Do[y *= x, {40000}]; y],  
-CompiledCode-]

In[31]:= (* Time our 40,000 benchmark *)

Timing @ benchmark40[1.0001, 1.0]

Out[31]:= (* not bad---0.03 MFLOPS on a 3.0 MFLOP machine *)
{1.51667 Second, 54.5872}

In[32]:= (* try a 50,000 multiply becnhmark *)

benchmark50 = Compile[ {x0,y0}, 

                       Module[{x = x0,y = y0}, 

                              Do[ y *= x, {50000} ]; 

                              y
                       ] 

              ]

Out[32]:=
CompiledFunction[{x0, y0}, Module[{x = x0, y = y0}, 

                              Do[y *= x, {50000}]; y],  
-CompiledCode-]

In[33]:= (* Time the 50,000 benchmark *)
Timing @ benchmark50[1.0001, 1.0]

CompiledFunction::cfn:                                             (*  
Trouble !!! *)
   Numerical error encountered at instruction 23
    ; proceeding with uncompiled evaluation.

Out[33]:= (* lost big on time! slowed down by factor of 60, "as  
usual" *)
{34.1 Second, 148.376}





  • Prev by Date: Re: unmap or remove header command
  • Previous by thread: Re: unmap or remove header command