Ah, the culprit was the preparser. Thank you; disregard my previous comments.
On Nov 21, 6:50 pm, William Stein <wst...@gmail.com> wrote: > On Sun, Nov 21, 2010 at 4:53 PM, Eviatar <eviatarb...@gmail.com> wrote: > > It is actually slower, not just feels like it. Here is a specific > > example: > > > On Sage Notebook (locally): > > > "from numpy import zeros > > from random import randint > > > def cellular(rule, N, initial='Single-cell'): > > '''Yields a matrix showing the evolution of a Wolfram's cellular > > automaton > > > rule: determines how a cell's value is updated, depending on > > its neighbors > > N: number of iterations > > initial: starting condition; can be either single-cell or a > > random binary row > > ''' > > M=zeros( (N,2*N+2), dtype=int) > > if initial=='Single-cell': > > M[0,N]=1 > > else: > > M[0]=[randint(0,1) for a in range(0,2*N+2)] > > > for j in range(1,N): > > for k in range(0,2*N): > > l = 4*M[j-1,k-1] + 2*M[j-1,k] + M[j-1,k+1] > > M[j,k]=rule[ l ] > > return M[:,:-1] > > > def num2rule(number): > > if not 0 <= number <= 255: > > raise Exception('Invalid rule number') > > binary_digits = number.digits(base=2) > > return binary_digits + [0]*(8-len(binary_digits)) > > > import time > > > initial=time.clock() > > m=cellular(num2rule(90), 100) > > print time.clock()-initial" > > > In Notebook, this returns 5.06. In command-line the same code produces > > an output of 0.11 seconds. > > This has absolutely nothing to do with the notebook. You can't have > this happen if you are actually running the same code. I just tried > this and I get about 5 seconds both in the notebook and on the command > line. *Precisely* how are you running the code on the command line? > You can't just paste it in, since it isn't formatted for that. So > maybe you are saving it to a .py file, then using load or import? If > you do that, then you'll get much, much different times, because of > the Sage preparser, which is not being used on .py files. > > Try the following in the notebook: > > (1) Make a cell with exactly this content, and evaluate it: > > %python > from numpy import zeros > from random import randint > > def cellular(rule, N, initial='Single-cell'): > '''Yields a matrix showing the evolution of a Wolfram's cellular > automaton > > rule: determines how a cell's value is updated, depending on > its neighbors > N: number of iterations > initial: starting condition; can be either single-cell or a > random binary row > ''' > M=zeros( (N,2*N+2), dtype=int) > if initial=='Single-cell': > M[0,N]=1 > else: > M[0]=[randint(0,1) for a in range(0,2*N+2)] > > for j in range(1,N): > for k in range(0,2*N): > l = 4*M[j-1,k-1] + 2*M[j-1,k] + M[j-1,k+1] > M[j,k]=rule[ l ] > return M[:,:-1] > > def num2rule(number): > if not 0 <= number <= 255: > raise Exception('Invalid rule number') > binary_digits = number.digits(base=2) > return binary_digits + [0]*(8-len(binary_digits)) > > (2) Make another cell with this content and evaluate it: > > import time > initial=time.clock() > m=cellular(num2rule(90), 100) > print time.clock()-initial > > You'll get a fast timing. > > It would be good for you to learn about the Sage preparser more, since > in some cases turning it off (or at least explicitly not using it) can > lead to better performance, especially for numerical code. Turning it > off can also lead to much slower (or wrong) code, but usually in the > context of symbolic (not numerical) computation. > > William > > > > > > > > > > > > > On Nov 21, 2:27 pm, William Stein <wst...@gmail.com> wrote: > >> On Sun, Nov 21, 2010 at 2:25 PM, William Stein <wst...@gmail.com> wrote: > >> > On Sun, Nov 21, 2010 at 1:33 PM, Eviatar <eviatarb...@gmail.com> wrote: > >> >> I don't know if this is related, but I've noticed even the local Sage > >> >> Notebook is slower than command-line, specifically NumPy operations. > > >> > It makes absolutely no sense that that could happen. Please give a > >> > specific example. > > >> More precisely, please define exactly what you mean by "slower". Do you > >> mean: > > >> (1) it "feels" slower, > >> (2) the time from press shift-enter until you see output is longer, or > >> (3) When you use "time a_specific_command(...)", it takes longer. > > >> What I don't think could happen is (3). Obviously (1) or (2) could > >> happen, due to the client server architecture. > >> However, this would have absolutely nothing to do with numpy, and you > >> would notice the same slowdown with > >> any code in Sage. > > >> William > > >> > -- William > > >> >> On Nov 21, 12:30 pm, William Stein <wst...@gmail.com> wrote: > >> >>> On Sun, Nov 21, 2010 at 5:23 AM, tuxiano <tuxi...@gmail.com> wrote: > >> >>> > Please, don't disablewww.sagenb.org > >> >>> > I'm not an administrator of my office PC so I can't install SAGE and > >> >>> > my company filters connections not on port 80 or 8080 so > >> >>> > www.sagenb.org > >> >>> > is the only Sage implementation that I can use. > > >> >>> There is alsohttp://demo.sagenb.organdhttp//demo2.sagenb.org. > > >> >>> William > > >> >>> > Perhaps other people > >> >>> > are in my condition. > > >> >>> > Thanks > > >> >>> > Tiziano > > >> >>> > On Nov 21, 3:18 am, Jeroen Demeyer <jdeme...@cage.ugent.be> wrote: > >> >>> >> On 2010-11-20 22:45, William Stein wrote: > > >> >>> >> > (1) I simply totally disablewww.sagenb.org, > > >> >>> >> Maybe keepwww.sagenb.orgasitisbut remove the link from the Sage > >> >>> >> front page? > > >> >>> > -- > >> >>> > To post to this group, send an email to sage-devel@googlegroups.com > >> >>> > To unsubscribe from this group, send an email to > >> >>> > sage-devel+unsubscr...@googlegroups.com > >> >>> > For more options, visit this group > >> >>> > athttp://groups.google.com/group/sage-devel > >> >>> > URL:http://www.sagemath.org > > >> >>> -- > >> >>> William Stein > >> >>> Professor of Mathematics > >> >>> University of Washingtonhttp://wstein.org > > >> >> -- > >> >> To post to this group, send an email to sage-devel@googlegroups.com > >> >> To unsubscribe from this group, send an email to > >> >> sage-devel+unsubscr...@googlegroups.com > >> >> For more options, visit this group > >> >> athttp://groups.google.com/group/sage-devel > >> >> URL:http://www.sagemath.org > > >> > -- > >> > William Stein > >> > Professor of Mathematics > >> > University of Washington > >> >http://wstein.org > > >> -- > >> William Stein > >> Professor of Mathematics > >> University of Washingtonhttp://wstein.org > > > -- > > To post to this group, send an email to sage-devel@googlegroups.com > > To unsubscribe from this group, send an email to > > sage-devel+unsubscr...@googlegroups.com > > For more options, visit this group > > athttp://groups.google.com/group/sage-devel > > URL:http://www.sagemath.org > > -- > William Stein > Professor of Mathematics > University of Washingtonhttp://wstein.org -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org