NORMA_PD (1158358), страница 2
Текст из файла (страница 2)
Data structure created: data dependencies graph (DDG).
-
data dependencies graph (DDG) reduction
The DDG has been transformed in the reduced data dependencies graph (RDDG). RDDG is a hierarchical oriented acyclic graph.
Search for maximum strongly connected subgraphs (MSCS) is performed. MSCS is strongly connected subgraphs of graph DDG, which is not contained in any other strongly connected subgraph of graph G. Reduction of graph DDG is done: all MSCS for special nodes are substituted.
Therefore RDDG consists of MSCS-nodes, iteration-nodes, ordered-groups-nodes and simple nodes (other nodes).
Data structure used: data dependencies graph (DDG), table of iterations structures.
Data structure created: reduced data dependencies graph (RDDG), list of MSCS.
Control Interface.
Data dependencies graph builder is called from Part unit parser.
Data dependencies graph builder calls Data dependencies graph analyser.
Data Interface.
Data dependencies graph builder receives table of functional dependencies from Part unit parser.
Data dependencies graph builder passes RDDG to Data dependencies graph analyser.
Structure of Data dependencies graph builder.
Data dependencies graph builder consists of two main blocks:
-
DDG constructor.
Functions: data dependencies graph (DDG) creation.
-
RDDG constructor.
Functions: reduced data dependencies graph (RDDG) creation.
4.5Data dependencies graph analyser
Data dependencies graph analyser functions are:
-
Partial ordering of reduced data dependencies graph (RDDG). If an edge from P to Q (P,Q from V) exists (in other words Q is used to calculate P), then P>Q (Q must be calculated earlier than P).
-
Extraction of natural parallelism. Parallel layer scheme is constructed: the computations corresponding to RDDG nodes of the same layer may be parallel and independent. The passage from a current layer to the next one is performed after all computations of the current layer have been performed.
Data structure used: reduced data dependencies graph (RDDG), table of iterations structures.
Data structure created: list for parallel layer scheme representation.
Control Interface.
Data dependencies graph analyser is called from Data dependencies graph builder.
Data dependencies graph analyser calls Fortran DVM intermediate representation generator.
Data Interface.
Data dependencies graph analyser receives RDDG from Data dependencies graph builder.
Data dependencies graph analyser passes parallel layer scheme to Fortran DVM intermediate representation builder.
4.6Fortran DVM intermediate representation generator
Fortran DVM intermediate representation generator functions are:
-
to realize Norma variables declarations: Fortran DVM declarations and data mapping statements in intermediate representation are generated,
Data structure used: table of distribution indexes, symbol table, constant table, table of domains, table of shadow variables.
Data structure created: table of distributed variables, intermediate representation of Fortran DVM programs.
-
to realize a parallel layer scheme - translation a parallel layer scheme in Fortran DVM intermediate representation:
-
to realize MSCS-nodes of parallel layer scheme - Fortran DVM statements for MSCS-nodes are generated
-
to realize iteration-nodes of parallel layer scheme - Fortran DVM statements for iteration-nodes are generated
-
to realize ordered-groups-nodes of parallel layer scheme - Fortran DVM statements for ordered-groups-nodes are generated
-
to realize simple-nodes of parallel layer scheme - Fortran DVM statements for simple-nodes are generated
A parallel layer scheme is mapped onto the architectural model of the target computer system. When this mapping for Norma part unit being analysed is constructed, the memory model (distributed memory or shared memory) and the number of the processors are taken into consideration. If Norma part unit being analysed is a distributed unit then distributed memory model is used, otherwise we use shared memory model.
Data structure used: table of distribution indexes, parallel layer scheme, table of iterations structures, list of MSCS, table of ordered groups, table of shadow variables, symbol table, table of domains, table of operators bodies, table of input-output formats.
Data structure created: intermediate representation of Fortran DVM programs, input variables queue.
Control Interface.
Fortran DVM intermediate representation generator is called from Data dependencies graph analyser.
Fortran DVM intermediate representation generator calls Fortran DVM code generator.
Data Interface.
Fortran DVM intermediate representation builder receives parallel layer scheme from Data dependencies graph analyser.
Fortran DVM intermediate representation builder passes intermediate representation of Fortran DVM programs to Fortran DVM code generator.
4.7Fortran DVM code generator
Fortran DVM code generator function is:
1) To converse Fortran DVM intermediate representation into a text form (sequence of lines, each line consists of sequence of symbols) and pass this form to Listing generator.
Data structure used: symbol table, constant table, intermediate representation of Fortran DVM programs.
Control Interface.
Fortran DVM code generator is called from Fortran DVM intermediate representation generator.
Fortran DVM code generator calls Listing generator and Input files analyser.
Data Interface.
Fortran DVM code generator receives intermediate representation of Fortran DVM programs from Fortran DVM intermediate representation generator.
Fortran DVM code generator passes Fortran DVM program in a text form to Listing generator.
4.8Input files analyser
Input files analyser function is:
-
To rearrange Norma part unit input files and to prepare input files for target Fortran DVM program,
-
To check & detect errors in input files (for example, not enougth data in input files for input variables, mismatch types etc.)
Data structure used: input variables queue, table of input-output formats, symbol table, constant table, table of domains, list of errors.
Control Interface.
Input files analyser is called from Fortran DVM code generator.
Input files analyser calles Exit part unit compilation.
Data Interface.
Input files analyser reads Norma part unit input files and create new input files for target Fortran DVM program.
4.9Listing generator
Listing generator functions are:
-
to output Norma source, Fortran DVM target program, compiling time messages into output file <listing-file>,
-
to output Fortran DVM target program into output file <target-file>,
-
to output Norma source, Fortran DVM target program, compile time messages onto a screen.
-
to generate texts of errors and warnings messages to corresponding lines of <listing-file> or screen.
Data structure used: symbol table, list of errors, statements-lines table.
Control Interface.
Listing generator is called from Part unit parser, Fortran DVM code generator.
Listing generator is end-interface block of compiler.
Data Interface.
Listing generator receives Fortran DVM program in a text form from Fortran DVM code generator.
Listing generator reads Norma source.
Listing generator writes a <target-file>, <listing-file>, outputs <listing-file> onto a screen.
4.10Exit part unit compilation
Exit part unit compilation’s functions are:
-
to generate some compiling time messages (time of part unit compilation, number of errors and warnings),
-
to cleane data structure.
Data structure used: data structure for part unit compilation.
Control Interface.
Exit part unit compilation is called from Input files analyser.
Exit part unit compilation is the final component of Norma part unit compilation.















