PACOL(ID:5884/pac004)

Language to control programming components 


for PArallel COntrol Language

Barta, Technion (Israel) 1972-5

Language for controlling the execution of programs written in any language on a dedicated computer

Quasi-macro in syntax, but effectively a system of describing parallel programs by referring to programming units expressed in functional blocks (EPPSs), and treating them as directed graphs. Values are given for ingress and egress, along with the language used.


Related languages
ALGOL 68 => PACOL   Influence
Anderson extensions => PACOL   Influence

Samples:
References:
  • BARTA, B., "Organization of a Multiprogrammed Highly Parallel Computing System". Comp. Con. 72, pp. 53-56. view details
  • BARTA, B., "A Highly Parallel Computing System", Ph.D. Thesis, Faculty of Electrical Engineering, Technion, Israel Institute of Technology, Haifa, Israel. view details
  • Barta, Ben "PACOL: A parallel control language" view details Abstract: An Extended Parallel Program Scheme (EPPS) and a higher level Parallel Control Language (PACOL) are defined. They are suitable for describing and programming parallel programs, intended for execution by a LSI modular, highly parallel processing system. PACOL provides for the definition of the sequencing of task-executions and of the related data transfers. To define the computations associated with the tasks, however, any one of the usual programming languages has to be used. These program statements are interwoven with the PACOL statements, to form a complete parallel program. PACOL uses ternary control variables but, for convenience, the task entry-functions are “quasi boolean”. It allows for very flexible sequencing schemes, including reentrant and recursive executions, lock, unlock and waiting actions. A programming example and the description of a part of the PACOL-semantics follow the definitions of its syntax and of the EPPS. DOI Extract: Introduction
    Introduction
    The work described in this paper is part of a larger project, that began when availability of modular LSI computer sub-systems seemed plausible. It was then realized that the availability of such modules might enhance the economic feasibility of general purpose parallel programming systems. Nevertheless, to achieve high computational speeds by using LSI subsystems, one may use parallel processing, to get shorter execution times. Because of these possibilities, the aim of the mentioned project was to design a possible layout of all main components of a practical parallel computing system, namely:
    a. A highly parallel, modular, general purpose hardware system.
    b. An extended model for parallel programs, directed towards practical implementation.
    c. A higher level programming language, for defining parallel programs built according to the mentioned model.
    d. An operating system capable to accept such programs and to monitor their execution by using the resources of the hardware system.
    The design of these components was completed by setting up a simulation program which tested the feasibility of the whole system. This program also allows to simulate the execution of parallel algorithms, for research purposes.
    Parallel processing systems described in literature are mainly concerned with specialpurpose systems and do not yet consider use of LSI subsystems (BARNES, 1968 and 1972; CRANE, 1972); also, some interesting layouts for general purpose systems are mentioned, but not detailed (FLYNN, 1972; WALFINGHOFF, 1971).
    Models for parallel programs, (e.g.: MILER, 1973; NOE and NUTT, 1973; PATIL and DENIS, 1972; SLUTZ and DONALD, 1970; RODRIGUUEL, 1967) give a fine insight to the nature and properties of parallel programs, but they usually follow a theoretical approach and do not deal with the means for convenient programming and for the execution of parallel programs. Many higher level languages however, do include features, or were extended to include features, for expressing parallelsim (WIJNGAARDEN, 1969; GOSDEN 1966; ANDERSON, 1965). Nevertheless, most of these features allow only for simple series-parallel sequencing, except the multitasking facilities of PL/1 which allow for more sophisticated sequencings; in each case, they are intended for use as part of programs written in the same language.
    The project, part of which is the subject of this paper, considered all aspects concerned with the practical implementation of a parallel programming system and presented a feasible design for each one of these aspects.
    The main idea of the hardware organization (BARTA, 1972) is, that under the control of a monitor, clusters of modular units (Arithmetic- Logic Units, Memory Sections, Register Banks, Control-Memory Sections) are dynamically formed for the execution of tasks belonging to one or more parallel programs. The numbers of different modules participating in each cluster are set up according to the task executed by it. All clusters existing in the system at a given time proceed independently. The connections between the units are executed by busses and control units placed at the connectlonpolnts between each bus and the units it may serve.
    Section 2 of this paper begins with an informal explanation of the EPPSmodel and its execution. Then, the main features of PACOLdescribed EPPS's are stated. A formal definition of the EPPS model and of its execution close this section.
    The syntax of PACOL is defined in Section 3. An example of programming in PACOL -- numerical integration by the adaptive trapezoid method -- is the subject of Section 4. A part of the semantics of PA¢OL is described in this section, related to the progr,~,4ng example. A complete description of the semantics is available (BARTA, 1974).
    The simulation of the whole system, the monitoring programs and data structures are mentioned, but not completely described in Section 5.

          in SIGPLAN Notices 10(03) March 1975 Proceedings of the conference on Programming languages and compilers for parallel and vector machines, January 1975 view details