Next Previous Contents

## 21. SMP.

Ouaich, SMP is supported, and I am sure that ROSS's dual CPU modules are supported as you can see by yourself:

    piou@ywing:~ > cat /proc/cpuinfo
    cpu             : ROSS HyperSparc RT625 or RT626
    fpu             : ROSS HyperSparc combined IU/FPU
    promlib         : Version 3 Revision 2
    prom            : 2.25
    type            : sun4m
    ncpus probed    : 2
    ncpus active    : 2
    Cpu0Bogo        : 125.33
    Cpu1Bogo        : 125.33
    MMU type        : ROSS HyperSparc
    invall          : 0
    invmm           : 0
    invrnge         : 0
    invpg           : 0
    contexts        : 4096
    CPU0            : online
    CPU1            : online
    piou@ywing:~ >

The SparcStation 10 and SparcStations 20 are SMP capable computers and according to the FAQABOSS the following combinations are known to work :

- 2xSM40 ( model 402 )
- 2xSM41 ( model 412 )
- 2xSM51 ( model 512 )
- 2xSM512 ( model 514 )
- 2xSM61 ( model 612 )
- 2xSM71 ( model 712 )
- 2xSM81 ( model 812 )

And, as stated earlier, CPU modules in SparcStations 10 and can run a different clock speeds, the following ones __SHOULD__ work:

- 2xSM50
- SM41, SM51
- SM41, SM61
- SM51, SM61
- SM71, SM81

How does it performs? Well, it is fast, really fast. Some of the java Demos can run faster on a dual HyperSparc 125Mhz 128MB ( `ywing` ) than on a dual celeron BP6 433@433Mhz 192MB ( `calimero` ). The same applies for the Gimp. When it comes to compiling `calimero` runs faster than `ywing`. Both computers running 2.2.16 kernel and `calimero`'s hard disk subsystem is full SCSI.

One important detail when you plan to have different CPU modules in your computer is to have the same kind of modules, you cannot mix SuperSparc and HyperSparc for example, but you can have an odd number of CPUs, for example 3. They are said to be able to run modules at different clock speed as written in this article form AcesHardware , but I have not witnessed it.

`ywing` has been upgraded to quad-CPU. You can read the kernel's message:

    cpu             : ROSS HyperSparc RT625 or RT626
    fpu             : ROSS HyperSparc combined IU/FPU
    promlib         : Version 3 Revision 2
    prom            : 2.25
    type            : sun4m
    ncpus probed    : 4
    ncpus active    : 4
    Cpu0Bogo        : 125.33
    Cpu1Bogo        : 125.33
    Cpu2Bogo        : 125.33
    Cpu3Bogo        : 125.33
    MMU type        : ROSS HyperSparc
    invall          : 0
    invmm           : 0
    invrnge         : 0
    invpg           : 0
    contexts        : 4096
    CPU0            : online
    CPU1            : online
    CPU2            : online
    CPU3            : online

and its main memory is now 256MB:

    total:    used:    free:  shared: buffers:  cached:
    Mem:  263028736 29114368 233914368 22958080  1695744 12779520
    Swap: 133849088        0 133849088
    MemTotal:    256864 kB
    MemFree:     228432 kB
    MemShared:    22420 kB
    Buffers:       1656 kB
    Cached:       12480 kB
    BigTotal:         0 kB
    BigFree:          0 kB
    SwapTotal:   130712 kB
    SwapFree:    130712 kB

So I have performed an empirical `proftpd` compilation test using the `make -JN`. The results are:

    with make
    real    3m27.466s
    user    3m15.670s
    sys     0m12.030s

    with make -j2

    real    1m52.670s
    user    3m27.210s
    sys     0m15.310s

    with make -j3

    real    1m22.560s
    user    3m43.910s
    sys     0m18.070s

    with make -j4
    real    1m13.582s
    user    4m2.200s
    sys     0m22.830s

    with make -j5
    real    1m13.445s
    user    4m4.060s
    sys     0m22.640s

    with make -j8

    real    1m15.550s
    user    4m1.840s
    sys     0m22.960s

    with make -j 10
    real    1m20.091s
    user    4m2.440s
    sys     0m22.170s

As expected the best results are with make -j5 ( one instance per CPU + one ready to enter when a cache miss occurs ); then N increasing the results are starting to worsen.

As a conclusion, those `sun4m` SMP systems will be very interesting when Gimp 2.0 will be available because of multitreading and paralelization of algorithms.

If you want to learn more about SMP and Linux you can read the `SMP-HOWTO` http://www.tldp.org/HOWTO/SMP-HOWTO.html

Next Previous Contents