Fortran-DVM
Version 2.0
Language description

* April, 2001 *
DVM-system (English)
first page

Documentation

- last edited 06.10.02 -


Contents

1 Introduction

1.1 Parallel programming models
1.2 DVM-approach to parallel program development

2 Language overview

2.1 Programming model and model of parallelism
2.2 Syntax of FDVM directives

3 Virtual processor arrangements. PROCESSORS directive

4 Data mapping

4.1 DISTRIBUTE and REDISTRIBUTE directives

4.1.1 BLOCK format
4.1.2 GEN_BLOCK format
4.1.3 WGT_BLOCK format
4.1.4 Format of *
4.1.5 Multidimensional distributions

4.2 Distribution of dynamic arrays

4.2.1 Dynamic arrays in Fortran 77 program
4.2.2 Dynamic arrays in FDVM model. POINTER directive
4.2.3 DISTRIBUTE and REDISTRIBUTE directives for dynamic arrays

4.3 Distributing by aligning

4.3.1 ALIGN and REALIGN directives
4.3.2 TEMPLATE directive
4.3.3 Aligning dynamic arrays

4.4 DYNAMIC and NEW_VALUE directives
4.5 Default distribution

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. NEW clause
5.1.4 Reduction operations and variables. REDUCTION clause

5.2 Computations outside parallel loop

6 Remote data specification

6.1 Remote references definition
6.2 SHADOW type references

6.2.1 Specification of array with shadow edges
6.2.2 Synchronous specification of independent references of SHADOW type for single loop
6.2.3 SHADOW_COMPUTE Computing values in shadow clause edges
6.2.4 ACROSS specification of dependent references of SHADOW type for single loop
6.2.5 Asynchronous specification of independent references of SHADOW type

6.3 REMOTE type references

6.3.1 REMOTE_ACCESS directive
6.3.2 Synchronous specification of REMOTE type references
6.3.3 Asynchronous specification of REMOTE type references
6.3.4 Asynchronous copying by REMOTE type references

6.3.4.1 Loop and copy-statements
6.3.4.2 Asynchronous coping directives

6.3.4.2.1 ASYNCID directive
6.3.4.2.2 F90 directive
6.3.4.2.3 ASYNCHRONOUS and END ASYNCHRONOUS directives
6.3.4.2.4 ASYNCWAIT directive

6.4 REDUCTION type references

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

7 Task parallelism

7.1 Declaration of task array
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 COMMON and EQUIVALENCE
9 Procedures
10 Input/Output
11 Compatibility with HPF
12 The difference between FDVM1.0 and FDVM2.0 versions
References
Annex 1. Syntax rules
Annex2. Code examples

Example 1. Gauss elimination algorithm
Example 2. Jacobi algorithm
Example 3. Jacobi algorithm (asynchronous version)
Example 4. Successive over-relaxation
Example 5. Red-black successive over-relaxation
Example 6. Static tasks (parallel sections)
Example 7. Dynamic tasks (task loop)


Fortran-DVM - contents Part 1 (1-4) Part 2 (5-6) Part 3 (7-12) Part 4 (Annexes)