cdvmUGe (1158405), страница 2
Текст из файла (страница 2)
This is not a REDUCTION_GROUP
DVM-directive requires parameters of definite class.
This is not a SHADOW_GROUP
DVM-directive requires parameters of definite class.
This is not a REMOTE_GROUP
DVM-directive requires parameters of definite class.
This is not a TASK
DVM-directive requires parameters of definite class.
An array of void* required
The array of (void *) pointers is required.
MAP-target must be a processors section
C-DVM syntax.
ON-target must be an element of task array
C-DVM syntax.
4.6DISTRIBUTE, ALIGN, TEMPLATE
'[*]' is only allowed in DVM( * DISTRIBUTE...)
C-DVM syntax.
Array should be defined as DVM(DISTRIBUTE...)
DVM-array should be defined as DVM(DISTRIBUTE...)
GENBLOCK requires non-distributed 1D integer array
Semantic constrain.
ONTO target must be a TASK or a PROCESSORS
ONTO target must be an element of task array
Align-expression syntax: [-][A*]var[+B|-B]
Only linear expression are allowed.
Already used align|do variable
Two alignment expressions with the same variable are not allowed.
The base of a static should be a (known) static
All “static” DVM arrays are automatically malloc’ed at the beginning of the main function in order of declaration. The base of ALIGNed array must exist before creation of this array.
The parameter should be a (non-static) TEMPLATE
Wrong parameter of the CREATE_TEMPLATE directive.
4.7malloc & access to distributed data
DVM-malloc requires (dim1*...*sizeof(...))
Distributed array creation requires of all dimensions of this array.
Is it 'sizeof(<element type>)' ?
The last multiplier of malloc is supposed to be the size of array element.
Only DVM-arrays may be malloc'ed
The DVM-pointer is used to create DVM array by malloc function.
Static DVM-array can not be malloc'ed
Static arrays can't be created by malloc function. They are created automatically at the beginning of main function.
Only DVM-pointers may be assigned
DVM arrays may be assigned only by malloc(). Only DVM-pointers may be assigned by values of other pointers and DVM-arrays.
REDISTRIBUTE|REALIGN must follow this malloc
To properly create (malloc) DVM array that has been declared without distribution/alignment stuff, this information must be provided here.
Can not assign to REMOTE
REMOTE_ACCESS semantic constrain.
Can not get REMOTE address
REMOTE_ACCESS semantic constrain. The & operator can't be applied to remote-access data.
Possible non-local assignment. Use DVM(OWN)
Left hand side of assignment in sequential branch is element of distributed array.
Only 1..4-D arrays may be distributed
Syntax limitation. Distributed arrays of 1-4 rank are supported only.
Too many distributed dimensions
Special case of “Rank error”
Not all distributed dimensions
Special case of “Rank error”.
4.8PARALLEL loop
Duplicated or incompatible sub-directive
PARALLEL loop header constrain. Incompatible subdirectives are SHADOW_RENEW, SHADOW_START and SHADOW_WAIT subdirectives and all subdirectives with ON <task>.
Too many headers in the PARALLEL loop
Use {} to separate distributed header and internal sequential one.
Not enough headers in the PARALLEL loop
DVM allows tightly nested parallel loops only.
Not a PARALLEL loop variable
The variable in a distributed DO/FOR header must be listed in the PARALLEL loop header.
PARALLEL loop variables disordered
Loop variable must be listed it the PARALLEL header in the same order they are used in DO/FOR loop headers.
Variable already used
Two alignment expressions with the same variable are not allowed.
Loop variable required
Empty ‘[ ]’ in PARALLEL loop header are not allowed.
Only 'long' or 'int' scalar loop variables allowed
Lib-DVM limitation.
4.9SHADOW
Declared (or default) maximum width exceeded
The width necessary for a shadow operation exceeds the width provided in array creation (declaration).
1D-array's shadow has no CORNERs
Warning. Keyword is useless in this context.
4.10REDUCTION
Reduction operation syntax or semantics violation:
Undefined RVAR
Wrong type of RVAR
Undefined RLOC
Wrong type of RLOC
Unallowed RVAR-expression
Unallowed RLOC-expression
4.11Procedures
Parameter should be defined as DVM(*...)
DVM arrays are passed by reference.
Only DISTRIBUTE and ALIGN are valid for parameter
TEMPLATEs, SHADOW_GROUPs, PROCESSORS and so on can not be passed as parameters.
4.12Data tracing
These are warnings:
This initialization will not be traced
Because of unsupported type, or main already generated.
Can not trace ++, --, +=, -=, ...
Compiler limitation.
Can not trace multiple assignment
Compiler limitation.
Can not trace this type
Unsupported type.
4.13Miscellaneous
Can fread-fwrite DVM-arrays as a whole only
Subscripted distributed array in I/O operation is used. Lib-DVM limitation.
Do you mean multiple index?
Rewrite A[a,b] as either A[(a.b)] or A[a][b] depending on your intention.
Not yet implemented... or error















