Sharedwww / comparison.htmlOpen in CoCalc

This computer,, is a two-processor Pentium 933 Mhz machine with 2 gigabytes of main memory. William Stein built it from parts using grant money of Barry Mazur. As of 22 February 2001, it is running RedHat Linux 7.0 with kernel version 2.4.2.

It's fairly stable (when I'm lazy as sysadmin):

[[email protected] was]$ date
Fri Aug 10 14:23:08 EDT 2001
[[email protected] was]$ uptime
2:23pm  up 98 days,  4:54,  3 users,  load average: 3.26, 3.32, 3.16


                        William A. Stein
                         1 October 2000

It is difficult or impossible to make correct general comparisons
between computers with vastly different architectures.  However, it is
very easy to make specific and correct but possibly misleading
comparisons.  In this short note, we do just that.

At present, my primary high-powered computer use involves memory and processor
intensive modular symbols computations in Magma.  Thus I chose some
representative computations, and ran them on each of four
Magma-equipped computers.  I also compare the list prices of the four

The computers are as follows:

miro     Sun Ultra 450E Quad w/ 4GB RAM    (     Magma V2.7-2
shimura  Dual 450Mhz Celeron w/ 512MB RAM  (  Magma V2.7-1
z505     Sony Z505HE Laptop, 1 PIII 450, 192MB RAM                      Magma V2.7-1
modular  Dual PIII 933 w/ 2GB RAM          (modular at harvard)         Magma V2.7-1


0. List price
1. Computing "S_2(Gamma_0(512))"
2. q-expansions
3. Characteristic Polynomial over Q
4. Modular symbols over finite fields

0. List price

miro           $77477
shimura        $ 2200 (est., some assembly required)
z505           $ 2500 
modular        $ 5000 (some assembly required)
modular(2)     Modular, but with Magma V2.8 instead of V2.7.  
               V2.8 has lots of changes, which sometimes make 
               things faster, and sometimes *slower* (but less buggy!).

Note: The list price for a Dual processor SUN Enterprise E450 w/ 2GB RAM is $44,447.00.  

1. Computing "S_2(Gamma_0(512))"

> time M:=NewformDecomposition(CuspidalSubspace(ModularSymbols(512,2)));

miro            35.390
shimura         36.000
z505            30.000
modular         14.669
modular(2)      19.730

2. q-expansions

Continuing from (3) above:

> time f:=qEigenform(M[1],997);

miro            40.630
shimura         36.270
z505            36.490
modular         18.789
modular(2)       9.750

3. Characteristic Polynomial over Q

> M:=ModularSymbols(5,50,+1);T:=HeckeOperator(M,11);time f:=CharacteristicPolynomial(T);

miro            43.919
shimura         36.900
z505            39.359
modular         18.249
modular(2)      13.020

4. Modular symbols over finite fields

> NextPrime(20000);
> time M:=ModularSymbols(20011,2,GF(2003),+1);

miro            42.740
shimura         32.210
z505            Segmentation fault  (uses 313MB, swaps heavily, dies)
modular         15.779 
modular(2)      16.700

> time T2:=HeckeOperator(M,2);

miro            50.860
shimura         51.189
z505            --
modular         24.949
modular(2)      20.370

> time f:=CharacteristicPolynomial(T2);
miro            511.860
shimura         349.040
z505            --
modular         189.200
modular(2)      185.590

5. Bonus: Hard drive access speed
[[email protected] was]# /sbin/hdparm -t /dev/hda     
 Timing buffered disk reads:  64 MB in  ... seconds = ...

miro            N/A           (but probably fast, since it's ULTRA SCSI)
shimura         12.36 MB/sec
z505            12.33 MB/sec
modular         35.56 MB/sec  (60GB IBM GXP-75 Deskstar)

6. Bonus 2: Timings comparison with a mystery Alpha box.

This is an email from Helena Verrill:

OK, the machine, which is a 600Mhz DEC alpha, 
the machine for running computing stuff like magma, we have:
Anyway, I'll start the same computation, on both gram and
your modular computer...

time M80:=ModularSymbols(80,8); 
         modular:                   gram:
         Time: 25.980               Time: 46.366 
         modular(2) 40.350 s
 (the following finds space of trasportable symbols 
 for W_N trick with matrix [1,0;80,1]. Returns the space
 and it's dimension)
time V1,d1:=FINDSUBSPACE(M80,[1,0,80,1]);
        modular:                   gram:
         Time: 0.509                Time: 0.933 

 (the following finds union of above subspaces
 for all matrices [*,*;*,d]. Returns space and it's dimension)
 (37 is the first prime where this function returns the full 
  space of cuspidal symbols)
time W37,d37:=VVV(M80,37);
        modular:                   gram:
         Time: 305.699              Time: 390.850 

Well, the above is not so great without the stats of gram to give
it more meaning; but it does seem modular is about 2 times as
fast as gram.  That's quite a lot!  though not 2 times as fast on
the last function - I wonder why?

 another couple of examples:
time V2,d2:=FINDSUBSPACE(M80,mat(80*6,37));
        modular:                   gram:
         Time: 1.329                Time: 2.050

time M90:=ModularSymbols(90,6);
        modular:                   gram:
         Time: 9.819                Time: 22.233 
        modular(2): 19.380

time M90c:=CuspidalSubspace(M90);
        modular:                   gram:
         Time: 0.149                Time: 0.533 

time VVV(M90,29);
        modular:                   gram:
         Time: 230.569              Time: 278.033