Search This Blog

Friday, August 27, 2010

Parallel Object

Parallel Object. What this term may refer in the context of object-oriented programming languages?

A natural way to define a parallel object is to implicitly distribute parts of the object and give access to data without programmers' knowledge of its location, synchronization handled by the runtime system on a transparent way and in order to facilitate the programmer's experience its access syntax can be implemented as a shared-memory model on top of the underlying distributed system.

After this attempt to describe a parallel object a question arise: Is this definition proper to High Performance Computing(HPC)?

In my opinion, the answer is no. Spatial locality is critical on HPC applications. Reducing control beyond a certain level may reduce severely the expected performance and cause an almost invisible bottleneck. The programmer will need to know how the runtime execution distribute data and this "transparent" access will be useless at all. A different definition is needed...

This blog is an attempt to discuss about Parallel Object-Oriented Programming Languages. I will try to post something about this subject once a week. See ya.

2 comments:

  1. What about allowing the developers to define classes with rules about data distribution? For example, if an object has an attribute that is to be shared among all accessing processes, it can be defined in the class with a replication policy.

    ReplyDelete
  2. João Marcelo,
    In my opinion, this is an interesting approach. Definitions of parallel objects need to give complete distribution rules, principally to HPC applications. If we think about different niches as Grid or Multi-core computing, maybe a simpler and less explicit data distribution fit.

    ReplyDelete