Lib-DVM library
Interface description
* February 2001 *

DVM-system (English)
first page

Documentation

- last edited 29.04.01 -


Contents

1 Introduction
2 Run-Time System initialization and completion
3 Creating abstract machine representations

3.1 Requesting current abstract machine
3.2 Creating abstract machine representation
3.3 Requesting reference to an element of abstract machine representation
3.4 Deleting abstract machine representation

4 Processor systems

4.1 Requesting reference to the processor system
4.2 Creating subsystem of specified processor system
4.3 Reconfiguring (changing shape of) processor system
4.4 Deleting processor system
4.5 Weights of processor system elements
4.6 Specifying coordinate weights of processors using their loading weights
4.7 Virtual processor systems (processor systems of user program)

5 Mapping abstract machine

5.1 Mapping abstract machine representation onto processor system (resource distribution)
5.2 Remapping abstract machine representation onto processor system (resource redistribution)
5.3 Requesting map
5.4 Specifying abstract machine representation mapping according to map
5.5 Remapping abstract machine representation according to the map
5.6 Deleting map
5.7 Imbalanced block distribution

6 Distributed array creating and deleting

6.1 Creating distributed array
6.2 Deleting distributed array
6.3 Creating additional header of distributed array
6.4 Deleting distributed array header

7 Mapping distributed array

7.1 Aligning distributed array
7.2 Alignments superposition
7.3 Realigning distributed array
7.4 Requesting map
7.5 Specifying distributed array mapping according to map
7.6 Realigning distributed array according to map
7.7 Deleting map
7.8 Requesting reference to abstract machine representation, specified distributed array is mapped on

8 Program block definition

8.1 Block beginning
8.2 Block end

9 Parallel loop defining

9.1 Creating parallel loop
9.2 Mapping parallel loop
9.3 Reordering parallel loop execution
9.4 Inquiry of continuation of parallel loop execution
9.5 Terminating parallel loop
9.6 Specifying information about data dependence between parallel loop iterations
9.7 Measuring execution time of parallel loop iterations

9.7.1 Issuing time measuring request
9.7.2 Requesting results of measuring (requesting array of loading coordinate weights)
9.7.3 Using results of measuring for dynamic balance of processor loading
9.7.4 Global tracing of execution times of parallel loop iterations

10 Representation of the program as a set of subtasks executed in parallel

10.1 Mapping abstract machine (subtask creation)
10.2 Starting subtask (activation)
10.3 Completing (stopping) current subtask

11 Reduction

11.1 Creating reduction variable
11.2 Specifying type of index variables, defining coordinates of local maximum or minimum of reduction variable
11.3 Creating reduction group
11.4 Including reduction in reduction group
11.5 Storing values of reduction variables
11.6 Starting reduction group
11.7 Waiting for completion of reduction group
11.8 Deleting reduction group
11.9 Deleting reduction
11.10 Supporting asynchronous reduction during parallel loop execution

12 Renewing shadow edges of distributed array

12.1 Creating shadow edge group
12.2 Including shadow edge in the group
12.3 Starting shadow edge group renewing
12.4 Initializing receiving imported elements of specified shadow edge group
12.5 Initializing sending of exported elements of specified shadow edges group
12.6 Initializing receiving of local elements of distributed arrays of specified shadow edge group
12.7 Initializing sending boundary elements of distributed arrays of specified shadow edge group
12.8 Waiting for completion of shadow edge group renewing
12.9 Deleting shadow edge group

13 Access to distributed array elements

13.1 Coping distributed array element

13.1.1 Reading distributed array element and assigning value to element
13.1.2 Copying one element of distributed array to another
13.1.3 Unified coping of element of distributed array

13.2 Coping distributed arrays
13.3 Asynchronous coping distributed arrays
13.4 Access to elements of local part of distributed array

13.4.1 Requesting if array element is allocated in local part of distributed array
13.4.2 Requesting initial and last index values of local part of distributed array
13.4.3 Reading element of local part of distributed array
13.4.4 Assigning value to element of local part of distributed array
13.4.5 Coping element of local part of distributed array to element of local part of other distributed array
13.4.6 Requesting address of element of local part of distributed array

13.5 Macros to access elements of local part of distributed array of rank from1 to 7
13.6 Sequential requesting index values of distributed array elements.

14 Regular access to remote data

14.1 Creating remote element buffer of distributed array
14.2 Initializing loading remote element buffer of distributed array
14.3 Waiting for completion of loading remote element buffer of distributed array
14.4 Deleting remote element buffer of distributed array
14.5 Access to distributed array elements, allocated in remote element buffer
14.6 Creating group of remote element buffers
14.7 Including remote element buffer in the group
14.8 Starting loading remote element buffers of specified group
14.9 Waiting for completion of loading remote element buffers of specified group
14.10 Deleting group of remote element buffers
14.11 Requesting type of distributed array element access

15 Non-regular access to remote data

15.1 Creating remote element buffer of non-regular access
15.2 Starting loading remote element buffer of non-regular access
15.3 Waiting for completion of loading remote element buffer of non-regular access
15.4 Deleting remote element buffer of non-regular access
15.5 Access to remote elements, allocated in the buffer
15.6 Creating group of remote element buffers of non-regular access
15.7 Including remote element buffer of non-regular access in the group
15.8 Starting loading remote element buffers of specified group
15.9 Waiting for completion of loading remote element buffers of specified group
15.10 Deleting group of remote element buffers of non-regular access

16 Input/Output

16.1 Analogies to functions of C language standard library

16.1.1 High level input/output functions
16.1.2 Low lewel I/O functions
16.1.3 Operations with directories and files

16.2 Reading from file to sub-array of distributed array
16.3 Writing sub-array of distributed array to file

17 Miscellaneous functions

17.1 Requesting size of object
17.2 Requesting size of object dimension
17.3 Requesting if object is distributed array
17.4 Requesting size of distributed array element
17.5 Deleting object
17.6 Requesting whether current processor is I/O processor
17.7 Sending memory areas of I/O processor

18 Using Run-Time System in Fortran language
19 Examples of programs using Run-Time System functions

19.1 Solution of Laplas equation by Jacobi method
19.2 Parallel loop with regular data dependence between iterations


Lib-DVM interface description (contents) Part 1
(1-5)
Part 2
(6-7)
Part 3
(8-11)
Part 4
(12-13)
Part 5
(14-15)
Part 6
(16-18)
Part 7
(19)