SSE4_1 errors when running sage 3.4

7 views
Skip to first unread message

bix...@gmail.com

unread,
Mar 18, 2009, 11:20:06 AM3/18/09
to sage-support
Hi,

After using version 3 for over a year, it finally occured to me I
should upgrade. When trying to start version 3.4 I get:

----------------------------------------------------------------------
| Sage Version 3.4, Release Date: 2009-03-11 |
| Type notebook() for the GUI, and license() for information. |
----------------------------------------------------------------------

**********************************************************************
WARNING! This Sage install was built on a machine that supports
instructions that are not available on this computer. Sage will
likely fail with ILLEGAL INSTRUCTION errors! The following processor
flags were on the build machine but are not on this computer:

sse4_1

Email http://groups.google.com/group/sage-support for help.
To remove this warning and make Sage start, just delete
/home/bixbyr/Desktop/sage-3.4-linux-Ubuntu_8.10-i686-Linux/local/
lib/sage-flags.txt
**********************************************************************

I tried removing this file to see if sage will run correctly, it
doesn't seem to. For a quick stress test I did
sage: prime_pi(10^10) ... and got back
/home/bixbyr/Desktop/sage-3.4-linux-Ubuntu_8.10-i686-Linux/local/bin/
sage-sage: line 197: 8689 Segmentation fault sage-ipython "$@" -
i

It returns correctly for prime_pi(10^9), so although it's possible
that the two errors are unrelated, that seems a strange way to fail if
the issue were related to insufficient memory.

I downloaded sage-3.4-linux-Ubuntu_8.10-i686-Linux.tar.gz from the
University of Washington mirror. I'm running ubuntu 8.10, kernel
version 2.6.27-11-generic. I have 4gb of ram, though running a 32 bit
kernel effectively limits me to ~3.2 gb. Since sse4 is a cpu
instruction set (from what I understand), here it the output for cat /
proc/cpuinfo:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping : 11
cpu MHz : 1600.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2
ssse3 cx16 xtpr lahf_lm
bogomips : 4799.97
clflush size : 64
power management:
( ... it then lists 3 more processors with the same information)

Although not the newest processor, it seems like this should be recent
enough to run sage. I also tried installing the new version on my
laptop, another ubuntu 8.10 system this time with a core 2 duo
processor, and got the exact same error.

Any thoughts? Thanks a lot,

- Ryan

Johan Oudinet

unread,
Mar 18, 2009, 6:20:47 PM3/18/09
to sage-s...@googlegroups.com

Have you tried to build Sage from sources? If you also get the same
error, it will mean this is not an error related to your cpu
instruction set.


--
Johan

William Stein

unread,
Mar 18, 2009, 6:23:00 PM3/18/09
to sage-s...@googlegroups.com

Good idea. Getting


"sage-sage: line 197: 8689 Segmentation fault sage-ipython "$@" -"

suggests maybe running out of RAM or something. Instruction set
errors produce an "Illegal Instruction" error messages.

By the way, there is new code up here (not in Sage yet!) for computing
prime_pi much more quickly than the current code in Sage:

http://trac.sagemath.org/sage_trac/ticket/5130

William

bix...@gmail.com

unread,
Mar 19, 2009, 1:10:28 PM3/19/09
to sage-support
Hi,

I built sage from source and ran 'make test' on it. It failed on
sage -t "devel/sage/sage/plot/plot.py"
sage -t "devel/sage/sage/symbolic/function.pyx"
sage -t "devel/sage/sage/rings/polynomial/multi_polynomial.pyx"
sage -t "devel/sage/sage/functions/constants.py"
though the build documentation suggested that it was normal to fail on
a couple tests?

When I launch the version I compiled from source, it didn't give me
any warning about instruction sets. It appears to function exactly the
same as the binary I downloaded, once I removed the sage-flags.txt
file. So it seems that there is nothing wrong with the pre-built
version, though someone might want to look into why it claims to
require sse4_1 when it does not appear to need them (possibly it was
compiled on a machine with sse4 so it automatically assumes it is
needed?). Perhaps sse4 doesn't need to be listed in sage-flags.txt?

As for William Stein's comment, I watched memory usage as it tried to
compute pi(10^10), and it didn't rise noticeably before giving the seg
fault (it also only took a moment). Even if it is a memory issue,
doesn't sage have a more graceful and informative way to fail? I
wonder how pi(x) is computed in sage, it it is simply referencing a
pre-computed table of primes then perhaps the seg fault is an
indication that it went past the end of the table?

I looked at the entry in the tracker, what does prime_pi(k,40) do? I
thought that prime_pi was a function of a single variable, and when I
tried using it that way in sage it threw an error.

Thank you both for your help,

- Ryan

On Mar 18, 3:20 pm, Johan Oudinet <johan.oudi...@gmail.com> wrote:
> On Wed, Mar 18, 2009 at 4:20 PM, bix...@gmail.com <bix...@gmail.com> wrote:
>
> > Hi,
>
> > After using version 3 for over a year, it finally occured to me I
> > should upgrade. When trying to start version 3.4 I get:
>
> > ----------------------------------------------------------------------
> > | Sage Version 3.4, Release Date: 2009-03-11                         |
> > | Type notebook() for the GUI, and license() for information.        |
> > ----------------------------------------------------------------------
>
> > **********************************************************************
> > WARNING!  This Sage install was built on a machine that supports
> > instructions that are not available on this computer.  Sage will
> > likely fail with ILLEGAL INSTRUCTION errors! The following processor
> > flags were on the build machine but are not on this computer:
>
> > sse4_1
>
> > Emailhttp://groups.google.com/group/sage-supportfor help.

William Stein

unread,
Mar 19, 2009, 2:02:29 PM3/19/09
to sage-s...@googlegroups.com
On Thu, Mar 19, 2009 at 10:10 AM, bix...@gmail.com <bix...@gmail.com> wrote:
>
> Hi,
>
> I built sage from source and ran 'make test' on it. It failed on
>        sage -t  "devel/sage/sage/plot/plot.py"
>        sage -t  "devel/sage/sage/symbolic/function.pyx"
>        sage -t  "devel/sage/sage/rings/polynomial/multi_polynomial.pyx"
>        sage -t  "devel/sage/sage/functions/constants.py"
> though the build documentation suggested that it was normal to fail on
> a couple tests?
>
> When I launch the version I compiled from source, it didn't give me
> any warning about instruction sets. It appears to function exactly the
> same as the binary I downloaded, once I removed the sage-flags.txt
> file. So it seems that there is nothing wrong with the pre-built
> version, though someone might want to look into why it claims to
> require sse4_1 when it does not appear to need them (possibly it was
> compiled on a machine with sse4 so it automatically assumes it is
> needed?

That's true.

> ). Perhaps sse4 doesn't need to be listed in sage-flags.txt?

I think that is true. In fact, I posted a patch to remove ssse4 from
the flag list.

> As for William Stein's comment, I watched memory usage as it tried to
> compute pi(10^10), and it didn't rise noticeably before giving the seg
> fault (it also only took a moment). Even if it is a memory issue,
> doesn't sage have a more graceful and informative way to fail?

One would hope.

> I
> wonder how pi(x) is computed in sage, it it is simply referencing a
> pre-computed table of primes then perhaps the seg fault is an
> indication that it went past the end of the table?

No -- in sage <= 3.4 it uses the PARI C library to *enumerate* all
primes up to x.
--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

Ajay Rawat

unread,
Mar 20, 2009, 3:35:29 AM3/20/09
to sage-s...@googlegroups.com
ajay@ajay-desktop:~$ sage
----------------------------------------------------------------------
| Sage Version 3.2.3, Release Date: 2009-01-05                       |

| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------

**********************************************************************
WARNING!  This Sage install was built on a machine that supports
instructions that are not available on this computer.  Sage will
likely fail with ILLEGAL INSTRUCTION errors! The following processor
flags were on the build machine but are not on this computer:

sse4_1

**********************************************************************
sage: prime_pi(10^10)
455052511

fir me its working...........,
but i don't know why this error is showing.
I've built sage from the source.
--
Ajay Rawat
Kalpakkam, IGCAR

-------------------------------------------------------------------------
Save Himalayas....
-------------------------------------------------------------------------
Reply all
Reply to author
Forward
0 new messages