Browse Prior Art Database

High-Level Programming Control Structure for Parallel Code Development

IP.com Disclosure Number: IPCOM000035013D
Original Publication Date: 1989-May-01
Included in the Prior Art Database: 2005-Jan-28
Document File: 4 page(s) / 28K

Publishing Venue

IBM

Related People

Genduso, TB: AUTHOR [+2]

Abstract

A technique is described whereby a high-level programming control structure enables a programmer to include parallel operations within design language programs. It is an improvement over previously used structure, such as "Fork and Join", since it provides programmers the ability to define parallel operations within their application programs. The high-level programming control structure is designed to function with design languages, such as Process Design Language (PDL), so as to provide a mechanism whereby programmers can define concurrent parallel processing operations within their programs.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 43% of the total text.

Page 1 of 4

High-Level Programming Control Structure for Parallel Code Development

A technique is described whereby a high-level programming control structure enables a programmer to include parallel operations within design language programs. It is an improvement over previously used structure, such as "Fork and Join", since it provides programmers the ability to define parallel operations within their application programs. The high-level programming control structure is designed to function with design languages, such as Process Design Language (PDL), so as to provide a mechanism whereby programmers can define concurrent parallel processing operations within their programs. The control structure exploits high-speed computer design by providing code-generating programmers with sets of software control structures that are: a) precise, b) well-defined, and c) consistent, so as to be intrinsic to the application. This enables parallelism to be explicitly defined in a manner which is both consistent with high-level software techniques and completely hardware independent. In prior art, "parallel compilers", used in array processors, required the programmer to be knowledgeable in the physical hardware of the parallel facilities. The concept described herein is designed in such a way that no special knowledge of the hardware is required. Attempts have been made to allow programmers to define some level of parallelism, such as the use of FORK and JOIN. However, these control structures tend to define physical, rather than logical parallelism, and their structures do not conform to the axioms of basic structured programming. Other languages, such as VECTRAN, are targeted only towards array processors and use extensions of a base language (FORTRAN), rather than a control structure specifically designed for defining parallelism. The control structure of this concept is called the "DO CONCURRENT-END" and is pictorially represented in the figure. It is defined as followed: DO CONCURRENT predicate; statement;

.

.

.

statement

END The predicate of the DO CONCURRENT-END control structure has one of the four following forms:
UNTIL condition WHILE condition

FOR index :=indexlist

null Unlike a basic DO control structure, the DO CONCURRENT-END does not implicitly imply any order relationship between the statements. Instead, the DO CONCURRENT-END explicitly specifies that the execution of each statement is independent of the execution of any other statement within the context of the DO CONCURRENT-END. When implementing DO CONCURRENT-END, the DO structure can be used when the statements within a program must be executed sequentially. This provides the programmer with the ability to explicitly specify whether operations are to be executed in parallel, or serially. To

1

Page 2 of 4

illustrate how the DO CONCURRENT-END control structure is implemented, the following three examples show three different forms:
1) Multiple Dissimilar Process - In this example, the

progr...