PETSc runs slower on a shared memory machine than on a cluster
Shi Jin
jinzishuai at yahoo.com
Wed Feb 7 10:27:48 CST 2007
Thank you very much, Satish.
You are right. From the log_summary, the communication
takes slightly more time on the shared memory than the
cluster even after using the taskset.
This is still hard to understand since I think
in-memory operations have to been orders of magnitude
faster than network opertations(gigabit ethernet).
By the way, I took a look my the specs of my
shared-memory machine( Sun Fire Server 4600).
It seems that each CPU socket has its own DIMMS of
RAM.
I wonder if there is a speed issue if one has to copy
data from the RAM of one CPU to another.
Thanks.
Shi
--- Satish Balay <balay at mcs.anl.gov> wrote:
> A couple of comments:
>
> - with the dual core opteron - the memorybandwith
> per core is now
> reduced by half - so the performance suffers.
> However memory
> bandwidth across CPUs is scalable. [6.4 Gb/s per
> each node or 3.2Gb/s
> per core]
>
> - Current generation Intel Core 2 duo appears to
> claim having
> sufficient bandwidth [15.3Gb/s per node = 7.6Gb/s
> per core?] so from
> this bandwidth number - this chip might do better
> than the AMD
> chip. However I'm not sure if there is a SMP with
> this chip - which
> has scalable memory system [across say 8 nodes - as
> you currently
> have..]
>
> - Older intel SMP boxes has a single memory bank
> shared across all the
> CPUs [so effective bandwidth per CPU was pretty
> small. Optrons'
> scalable architecture looked much better than the
> older intel SMPs]
>
> - From previous log_summary - part of the
> inefficiency of the SMP box
> [when compared to the cluster] was in the MPI
> performance. Do you
> still see this effect in the '-np 8' runs? If so
> this could be the
> [part of the] reason for this 30% reduction in
> performance.
>
> Satish
>
> On Mon, 5 Feb 2007, Shi Jin wrote:
>
> > Hi there,
> >
> > I have made some new progress on the issue of SMP
> > performance. Since my shared memory machine is a 8
> > dual-core Opteron machine. I think the two cores
> on a
> > single CPU chip shares the memory bandwidth.
> > Therefore, if I can avoid using the same core on
> the
> > chip, I can get some performance improvement.
> Indeed,
> > I am able to do this by the linux command taskset.
>
> > Here is what I did:
> > petscmpirun -n 8 taskset -c 0,2,4,6,8,10,12,14
> ../spAF
> > This way, I specifically ask the processes to be
> run
> > on the first core on the CPUs.
> > By doing this, my performance is doubled compared
> with
> > the simple petscmpirun -n 8 ../spAF
> >
> > So this test shows that we do suffer from the
> > competition of resources of multiple processes,
> > especially when we use 16 processes.
> >
> > However, I should point out that even with the
> help
> > taskset, the shared-memory performance is still
> 30%
> > less than that on the cluster.
> >
> > I am not sure whether this problem exists
> specifically
> > for the AMD machines or it applys to any
> shared-memory
> > architecture.
> >
> > Thanks.
> > Shi
> >
> > --- Shi Jin <jinzishuai at yahoo.com> wrote:
> >
> > > Hi there,
> > >
> > > I am fairly new to PETSc but have 5 years of MPI
> > > programming already. I recently took on a
> project of
> > > analyzing a finite element code written in C
> with
> > > PETSc.
> > > I found out that on a shared-memory machine
> (60GB
> > > RAM,
> > > 16 CPUS), the code runs around 4 times slower
> > > than
> > > on a distributed memory cluster (4GB Ram,
> > > 4CPU/node),
> > > although they yield identical results.
> > > There are 1.6Million finite elements in the
> problem
> > > so
> > > it is a fairly large calculation. The total
> memory
> > > used is 3GBx16=48GB.
> > >
> > > Both the two systems run Linux as OS and the
> same
> > > code
> > > is compiled against the same version of MPICH-2
> and
> > > PETSc.
> > >
> > > The shared-memory machine is actually a little
> > > faster
> > > than the cluster machines in terms of single
> process
> > > runs.
> > >
> > > I am surprised at this result since we usually
> tend
> > > to
> > > think that shared-memory would be much faster
> since
> > > the in-memory operation is much faster that the
> > > network communication.
> > >
> > > However, I read the PETSc FAQ and found that
> "the
> > > speed of sparse matrix computations is almost
> > > totally
> > > determined by the speed of the memory, not the
> speed
> > > of the CPU".
> > > This makes me wonder whether the poor
> performance of
> > > my code on a shared-memory machine is due to the
> > > competition of different process on the same
> memory
> > > bus. Since the code is still MPI based, a lot of
> > > data
> > > are moving around inside the memory. Is this a
> > > reasonable explanation of what I observed?
> > >
> > > Thank you very much.
> > >
> > > Shi
> > >
> > >
> > >
> > >
> >
>
____________________________________________________________________________________
> > > Do you Yahoo!?
> > > Everyone is raving about the all-new Yahoo! Mail
> > > beta.
> > > http://new.mail.yahoo.com
> > >
> > >
> >
> >
> >
> >
> >
>
____________________________________________________________________________________
> > Expecting? Get great news right away with email
> Auto-Check.
> > Try the Yahoo! Mail Beta.
> >
>
http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html
>
> >
> >
>
>
____________________________________________________________________________________
Don't get soaked. Take a quick peak at the forecast
with the Yahoo! Search weather shortcut.
http://tools.search.yahoo.com/shortcuts/#loc_weather
More information about the petsc-users
mailing list