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.orgasitis but 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 at > http://groups.google.com/group/sage-devel > URL: http://www.sagemath.org > -- William Stein Professor of Mathematics University of Washington http://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