28.10.2014 Views

Synergy User Manual and Tutorial. - THE CORE MEMORY

Synergy User Manual and Tutorial. - THE CORE MEMORY

Synergy User Manual and Tutorial. - THE CORE MEMORY

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Synergy</strong> <strong>User</strong> <strong>Manual</strong> <strong>and</strong> <strong>Tutorial</strong><br />

In comparison, <strong>Synergy</strong> uses dynamic tuple binding at the expense of increased<br />

communication overhead by using dynamic tuple space daemons. In the full SLM<br />

implementation, this overhead will be reduced by a distributed tuple matching engine.<br />

Practical computational experiments indicate that synchronization overhead (due to load<br />

imbalance) logged more time than communication. Thus <strong>Synergy</strong>'s load balancing<br />

advantage can be used to offset its increased communication overhead.<br />

Parallel Programming <strong>and</strong> Processing in <strong>Synergy</strong><br />

A parallel programmer must use the passive objects for communication <strong>and</strong><br />

synchronization purposes. These operations are provided via the language injection<br />

library (LIL). LIL is linked to source programs at compilation time to generate hostless<br />

binaries that can run on any binary compatible platforms.<br />

After making the parallel binaries the interconnection of parallel programs (IPC graph)<br />

should be specified in CSL (Configuration Specification Language). Program ``prun''<br />

starts a parallel application. Prun calls CONF to process the IPC graph <strong>and</strong> to complete<br />

the program/object-to-processor assignments automatically or as specified. It then<br />

activates DAC to start appropriate object daemons <strong>and</strong> remote processes (via remote<br />

cid's). It preserves the process dependencies until all processes are terminated.<br />

Building parallel applications using <strong>Synergy</strong> requires the following steps:<br />

1. Parallel program definitions. This requires, preferably, establishing timing models<br />

for a given application. Timing model analysis provides decomposition<br />

guidelines. Parallel programs <strong>and</strong> passive objects are defined using these<br />

guidelines.<br />

2. Individual program composition using passive objects.<br />

3. Individual program compilation. This makes hostless binaries by compiling the<br />

source programs with the <strong>Synergy</strong> object library (LIL). It may also include<br />

moving the binaries to the $HOME/bin directory when appropriate.<br />

4. Application synthesis. This requires a specification of program-to-program<br />

communication <strong>and</strong> synchronization graph (in CSL). When needed, user preferred<br />

program-to-processor bindings are to be specified as well.<br />

5. Run (prun). At this time the program synthesis information is mapped on to a<br />

selected processor pool. Dynamic IPC patterns are generated (by CONF) to guide<br />

the behavior of remote processes (via DAC <strong>and</strong> remote cid's). Object daemons are<br />

started <strong>and</strong> remote processes are activated (via DAC <strong>and</strong> remote cid's).<br />

6. Monitor <strong>and</strong> control (pcheck).<br />

122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!