Skip to Content.
Sympa Menu

charm - Re: [charm] charm++ compiling problem

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] charm++ compiling problem


Chronological Thread 
  • From: Phil Miller <mille121 AT illinois.edu>
  • To: Haowei Huang <huangh AT in.tum.de>
  • Cc: Charm Mailing List <charm AT cs.illinois.edu>
  • Subject: Re: [charm] charm++ compiling problem
  • Date: Tue, 1 Jun 2010 13:23:12 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

On Fri, May 28, 2010 at 15:02, Haowei Huang
<huangh AT in.tum.de>
wrote:
> 2010/5/28 Phil Miller
> <mille121 AT illinois.edu>
>>
>> On Fri, May 28, 2010 at 14:11, Haowei Huang
>> <huangh AT in.tum.de>
>> wrote:
>> > yes, you are right, it is a AOS and SOA problem. To solve this
>> > problem,
>> > we could use
>> > Compute object for Computation between Patches as showed in your
>> > publication. The
>> > message sent to Compute object is SOA, right? Is that a way you design
>> > to
>> > fix the locality
>> > problem?
>>
>> The problem is still there, though partially mitigated. When your
>> Patch objects sum the forces on the particles as they come back from
>> Computes, the force variables being written to will still be spread
>> out through memory. The same problem will also arise when integrating
>> the motion of the particles; for each Particle, you read its force
>> variables and write its velocity and position variables, thus ending
>> up with interspersed reads and writes of things that aren't operated
>> on in a nice vector fashion.
>
>    Ok. It is a problem in your Spatial and Force decomposition strategy,
> right?

This is not a problem of the parallel decomposition strategy. It's
purely a problem of data representation. If you send or store arrays
of structures (AOS, as you write it), then the data will be laid out
as AOS, and accessed as AOS, with the problems that implies. If you
send and stores a set of arrays, each holding a particular data
element for all of the represented entities (particles, here), then
you will get the locality benefits from SOA.





Archive powered by MHonArc 2.6.16.

Top of Page