Next: , Previous: , Up: Reference manual   [Contents][Index]


7.30 Package DDO

This package provides distributed objects.

Variable: *CHECK-DISTRIBUTION-P*

If set, the distribution is checked at the beginning of each synchronization.

Variable: *COMMUNICATE-WITH-ALL-IN-FIRST-SYNCHRONIZATION*

This is constantly T at the moment, i.e. since 1.9.2017, and has the effect that the first communication (which is not large) takes place between all processors. Maybe we can relax this later on, but this change and its possible benefit should be examined very carefully, because we use it for avoiding deadlocks when errors occur on one processor.

Variable: *COMMUNICATION-REAL-TIME*

When non-nil, communication time is recorded.

Variable: *COMMUNICATION-SIZE*

When non-nil, communication size is recorded.

Variable: *DEBUG-SHOW-DATA*

When T show all data communicated between processors. This is only reasonable for toy problems.

Variable: *SYNCHRONIZATION-MERGER*

Merger for the synchronization which can be a generic function dispatching on the class of object. An example is provided by the generic function #’minimum-id-merger. Usually this dynamic variable will be bound around a call to synchronize.

Variable: *SYNCHRONIZATION-REAL-TIME*

When non-nil, communication time is recorded.

Function: ANALYZE-MPI-DEBUG-OUTPUT

Analyzes send/receive output. This is probably done better prior to synchronization by distribution-consistency-check.

Macro: DDO &BODY COMMANDS

Broadcast the given commands

Macro: DDO- &BODY COMMANDS

Call workers sequentially, mainly for debugging purposes if separate output is desired. Of course, this should only be called with commands which do not require synchronization!

Macro: DDO-CAPTURE &BODY COMMANDS

Broadcast the given commands and capture the output of all processors as a string result.

Class: DDO-CONTAINER-MIXIN

Mixin for a ‘container’ which may contain distributed and non-distributed objects.

Function: DDO-PERFORMANCE-CHECK

Checks how much time the relation handling alone, that is without any communication, needs on the currently active distributed objects.

Macro: DDOX &BODY COMMANDS

Perform the commands serially on the controller

Function: DISTRIBUTED-DATA

Only for debugging purposes: return all distributed data in a property list

Macro: DO-SEQUENTIALLY &BODY BODY

Sequential execution of the forms in body.

Function: ENSURE-DISTRIBUTED-CLASS CLASS &OPTIONAL (TYPE OBJECT)

Generates for class a distributed object/container variant.

Function: FOR-EACH-NEIGHBOR FUNC

Calls func with each neighboring rank. func should expect a processor rank of some processor not equal to the own rank which shares distributed objects.

Function: FOR-EACH-PROCESSOR FUNC

Calls func on each processor.

Function: MAKE-DISTRIBUTED-CONTAINER OBJECT

Turn the container object into a distributed container.

Function: MAKE-DISTRIBUTED-OBJECT OBJECT PROCESSORS &OPTIONAL CONTAINER-OR-SLOTS

Make OBJECT into a distributed object belonging to PROCESSORS. The change will become active only after the next synchronization!

Function: MASTERP OBJECT-OR-LOCAL-ID

The master of a distributed object is simply as the processor with minimal rank. Note that using this function somehow works against the whole DDO concept, so that its use should be avoided whenever possible.

Function: MINIMUM-ID-MERGER OBJECT ID-VALUE-PAIRS

In principle, this function should look up up the minimal id and set all distributed slots accordingly.

Function: NEIGHBORS

Returns a list of neighboring processors with which we share distributed objects.

Function: NEIGHBORS-FOR OBJECT-OR-LOCAL-ID

All processors for a distributed object

Function: RESET-DISTRIBUTED-OBJECTS &OPTIONAL DO-IT

For testing purposes! Resets all distributed-object tables.

Function: SYNCHRONIZE &OPTIONAL LABEL &REST ARGS

Synchronize distributed objects across the MPI kernel.


Next: , Previous: , Up: Reference manual   [Contents][Index]