swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Swarm-Support] Re: Performance issues


From: Russell Standish
Subject: [Swarm-Support] Re: Performance issues
Date: Mon, 3 Feb 2003 11:38:38 +1100 (EST)

Bill Northcott wrote:
> 
> There are three strong points in the current Apple architectures:
> 1. Multiple CPUs.*
> 2. Vector processors in the CPU cores.
> 3. Faster total disk throughput*
> 

In most areas of Scientific computing, the speed of memory or
 bus bandwidth (Front Side Bus in Intel terms) is the single most
important factor in a machine's performance. This is why machines like
the NEC SX6 (currently the world's fastest computer is an SX6) have
absolutely ginormous bus bandwidths. But sadly, you pay through the
nose for a bus like that, and most office/home users do not need that
much memory speed.

On board vector processors make little difference (you can get 20-30%
speed boost from SSE2 instructions of well vectorised code using the
Intel vectorising compiler, but that's about it). 

Multiprocessing can help when performing a lot of repetitive
operations on large vectors (a few thousand in length). Again, you
need something like the Intel compiler with its OpenMP support to do
this realistically. Again, there is a performance sweetspot - make the
vectors too short, and thread creation overhead kills you, make them
too long and you get crucified by your cache. See my paper "SMP vs
Vector: a Head-to-head comparison" for more details.

Unfortunately, Swarm being written in Objective C makes it a little
difficult to get much help from Intel's compiler, which supports C and
C++, not objective C.

In our OOHPC project, we're looking at distributing agents over
multiple processor via the MPI distributed memory
model. Unfortunately, this is a little tricky to do in Swarm, as
objects are by and large passed by pointers, which are only relevant
in a shared memory address space. We've pioneered a technique for
passing C++ objects between different address spaces, and for
performing remote method invocation. It should be possible to do
something similar for Objective C, but it would need to use ObjC's
exception handling so I don't know how efficient it would be...

                                                Cheers

----------------------------------------------------------------------------
A/Prof Russell Standish                  Director
High Performance Computing Support Unit, Phone 9385 6967, 8308 3119 (mobile)
UNSW SYDNEY 2052                         Fax   9385 6965, 0425 253119 (")
Australia                                address@hidden             
Room 2075, Red Centre                    http://parallel.hpc.unsw.edu.au/rks
            International prefix  +612, Interstate prefix 02
----------------------------------------------------------------------------
   ---------------------------------------------------------------------
   Swarm-Support has migrated to a new server, please use the new e-mail
   address: address@hidden in all future communications.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]