C-DVM
Version 2.0
Language description
* April 2001 *

DVM-system (English)
first page

Documentation

- last edited 06.10.02 -


Contents

1 Introduction
2 Language overview

2.1 Programming model and model of parallelism
2.2 Syntax of DVM-directives

3 Virtual processor arrangements. PROCESSORS directive
4 Data Mapping

4.1 DISTRIBUTE and REDISTRIBUTE directives

4.1.1 Format BLOCK
4.1.2 Format GEN_BLOCK
4.1.3 WGTBLOCK format
4.1.4 Format []
4.1.5 Multidimensional distributions

4.2 Multidimensional dynamic arrays

4.2.1 Dynamic arrays in C program
4.2.2 Using C-style multidimensional arrays
4.2.3 Simulation of multidimensional arrays via one-dimensional ones

4.3 Distributing by aligning

4.3.1 ALIGN and REALIGN directives
4.3.2 TEMPLATE and CREATE_TEMPLATE directives

4.4 Undistributed data

5 Distribution of computations

5.1 Parallel loops

5.1.1 Parallel loop definition
5.1.2 Distribution of loop iterations. PARALLEL directive
5.1.3 Private variables
5.1.4 Reduction operations and variables. REDUCTION specification

5.2 Calculations outside parallel loop

6 Remote data specification

6.1 Remote reference definition
6.2 Remote references of SHADOW type

6.2.1 Specification of array with shadow edges
6.2.2 Specification of independent references of SHADOW type for one loop
6.2.3 ACROSS specification of dependent references of SHADOW type for single loop
6.2.4 Asynchronous specification of independent references of SHADOW type

6.3 Remote references of REMOTE type

6.3.1 REMOTE_ACCESS directive
6.3.2 Synchronous specification of remote references of REMOTE type
6.3.3 Asynchronous specification of remote references of REMOTE type

6.4 Remote references of REDUCTION type

6.4.1 Synchronous specification of remote references of REDUCTION type
6.4.2 Asynchronous specification of remote references of REDUCTION type

7 Task parallelism

7.1 Description of task group
7.2 Mapping tasks on processors. MAP directive
7.3 Array distribution on tasks
7.4 Distribution of computations. TASK_REGION directive
7.5 Data localization in tasks
7.6 Fragment of static multi-block problem
7.7 Fragment of dynamic multi-block problem

8 Procedures
9 Input/output
10 Restrictions on C language usage
11 The difference between CDVM versions 1.0 and 2.0

11.1 Array section copy

References

Appendix 1. Examples of C-DVM programs

Example 1. The Gauss elimination algorithm
Example 2. Jacobi algorithm
Example 3. Jacobi Algorithm (asynchronous version)
Example 4. Red-Black Successive Over-Relaxation
Example 5. Multigrid method program
Example 6. Task Parallelism for Multiblock Code

Appendix 2. Syntax summary


C-DVM - contents Part 1(1-4) Part 2 (5-11) Part 3 (Appendixes)