SUMMARY: Multiprocessing with a Sparc-10/Q90

From: Michael R. Zika (zika@trinity.tamu.edu)
Date: Thu Feb 02 1995 - 09:23:58 CST


  Apologies for the delay on the summary. Just as the responses
started to dwindle off, our copy of Solaris 2.4 arrived and we upgraded
from 4.1.3 to 5.4 -- still recovering from that move...

  The original E-mail is attached below. Basically, the responses
pointed out that Solaris 2.x allows for multi-threading but does _not_
(and, upon reflection, shouldn't be able to) automatically multi-thread
an executable at run time. That feature may be built into an
application at compile time; however, the OS fully supports multi-
processing, so four copies of the same job finish in about the same
time as one copy (given no other jobs, plenty of RAM, blah, blah,
blah). The suggestions provided by the list include:

o Explore the Apogee compilers. As an educational institution, we
  get a great deal on the SunPro compilers, so we didn't bother
  pursuing this suggestion.

o Hand code your application to access the thread libraries so that
  execuation is performed in parallel. To get the best performance,
  this is probably the best approach. The thread libraries are
  available under versions 2.0.1 and 3.0.1 of the SunPro compilers.

o Use iMPact available with version 3.0.1 of the SunPro compilers.
  This package has options for the automatic parallelization of source
  code -- we have played with this in the Fortran compiler and
  obtained some pretty impressive results (especially considering
  that it's an _automatic_ parallelization option).

  To date, we are satisfied with version 3.0.1 of the compilers. It
allows for some gains through parallelization, and an opportunity to
hand code our applications using the thread libraries to get the
full performance we're after. Also, our usage pattern has typically
been such that this machine has a high enough load average that the
multi-processing features are being well-utilized.

  Many thanks to everybody for their answers:

craigw@Ceram.COM
jonsg@diss.hyphen.com Jon Green
mark@ccifl.com Mark Sigler
elfchief@lupine.org That Whispering Wolf...
szh@zcon.com Syed Zaeem Hosain
paulo@dcc.unicamp.br Paulo Licio de Geus
stern@sunrise.East.Sun.COM Hal Stern - NE Area Systems Engineer
fan@tammy.cath.upmc.edu Ningping Fan
rnf@spitfire.tbird.com Rick Fincher
jayl@lattice.com Jay Lessert
ted@ssl.Berkeley.EDU Ted Rodriguez-Bell
sean@xway.com Sean McInerney
danny@esaserv1.dseg.ti.com Danny Johnson
tom@sees.bangor.ac.uk Mr T Crummey (DIJ)
James.Ashton@anu.edu.a James Ashton
thomas@wiwi.hu-berlin.de Thomas Koetter
Phil.Race@UK.Sun.COM Phil Race - Sun UK - Answer Centre

--Michael Zika Nuclear Engineering
  System Administrator Texas A&M University
  (409) 862-1158 zika@trinity.tamu.edu

---------------------->8 Original Mail 8<-----------------------------
> We are the (new) proud owners of a Sparc-10 with four 90MHz
> HyperSparc modules running Solaris 2.3. Being the curious sort, I
> wanted to check out just what this machine could do on Fortran source
> code written in house and compiled with the SunPro Fortran compiler
> version 2.0.1.
>
> I ran a simple test of a Richardson Iteration code on a Sparc-10/40
> and the Sparc-10/Q90. The code primarily does a bunch of matrix-
> vector multiplies which are looped and referenced so that several
> instructions could be launched in parallel. The results are:
>
> SS-10/40 40 CPU sec.
> SS-10/Q90 22 CPU sec.
>
> This is not nearly the performace I expected. A single HyperSparc-90
> should be about 1.8 times the speed of a single SuperSparc-40
> (estimating from the SpecMarks).
>
> So, I dug into this a bit more. When I run a single job on the
> Sparc-10/Q90, mpstat tells me:
>
> % mpstat 1
[deletions]
>
> So, it finds all four of the processors, but the job is only running
> on one of the CPUs. That explains the timing obtained above.
>
> The question is: how do I take advantage of all four CPUs when only
> one job is running? I was under the impression that Solaris 2.3 would
> automatically multi-thread an executable. Is version 2.0.1 of the
> compilers sufficient to take advantage of multiple CPUs? I couldn't
> find any command line options for the compiler that would explicitly
> prepare a multi-threaded executable. Would version 3.0.1 of the
> compilers help?
>
> I've also heard of the "iMPact" tool from SunPro which is supposed
> to aid in multi-processing. Is this what we're after? Anybody have
> any experience with this tool? Are there any other tools out there
> that we should be looking into?
>
> Thanx in advance for your responses. This is pretty important --
> we've invested heavily in this product and need to make sure we can
> take full advantage of its capabilities before the return guarantee
> expires. As always, I'll summarize all responses.
---------------------->8 Original Mail 8<-----------------------------



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:10:15 CDT