December 1969 - Vol. 12 No. 12

December 1969 issue cover image

Features

Research and Advances

A case study in programming for parallel-processors

An affirmative partial answer is provided to the question of whether it is possible to program parallel-processor computing systems to efficiently decrease execution time for useful problems. Parallel-processor systems are multiprocessor systems in which several of the processors can simultaneously execute separate tasks of a single job, thus cooperating to decrease the solution time of a computational problem. The processors have independent instruction counters, meaning that each processor executes its own task program relatively independently of the other processors. Communication between cooperating processors is by means of data in storage shared by all processors. A program for the determination of the distribution of current in an electrical network was written for a parallel-processor computing system, and execution of this program was simulated. The data gathered from simulation runs demonstrate the efficient solution of this problem, typical of a large class of important problems. It is shown that, with proper programming, solution time when NP processors are applied approaches 1/NP times the solution time for a single processor, while improper programming can actually lead to an increase of solution time with the number of processors. Storage interference and other measures of performance are discussed. Stability of the method of solution was also investigated.
Research and Advances

Is automatic “folding” of programs efficient enough to displace manual?

The operation of “folding” a program into the available memory is discussed. Measurements by Brawn et al. and by Nelson on an automatic folding mechanism of simple design, a demand paging unit built at the IBM Research Center by Belady, Nelson, O'Neill, and others, permitting its quality to be compared with that of manual folding, are discussed, and it is shown that given some care in use the unit performs satisfactorily under the conditions tested, even though it is operating across a memory-to-storage interface with a very large speed difference. The disadvantages of prefolding, which is required when the folding is manual, are examined, and a number of the important troubles which beset computing today are shown to arise from, or be aggravated by, this source. It is concluded that a folding mechanism will probably become a normal part of most computing systems.
Research and Advances

Numerical analysis in a Ph.D. computer science program

Numerical Analysis is the study of methods and procedures used to obtain“approximate solutions” to mathematical problems. Much of the emphasis is on scientific calculation. The difficulties of education in such a broad area center around the question of background and emphasis. The Numerical Analysis program in the Computer Science Department should emphasize an awareness of the problems of computer implementation and experimental procedures. Nevertheless, there is a need for a solid background in applied mathematics.
Research and Advances

Optimization of expressions in Fortran

A method of optimizing the computation of arithmetic and indexing expressions of a Fortran program is presented. The method is based on a linear analysis of the definition points of the variables and the branching and DO loop structure of the program. The objectives of the processing are (1) to eliminate redundant calculations when references are made to common sub-expression values, (2) to remove invariant calculations from DO loops, (3) to efficiently compute subscripts containing DO iteration variables, and (4) to provide efficient index register usage. The method presented requires at least a three-pass compiler, the second of which is scanned backward. It has been used in the development of several FORTRAN compilers that have proved to produce excellent object code without significantly reducing the compilation speed.
Research and Advances

On the downhill method

The downhill method is a numerical method for solving complex equations ƒ(z) = 0 on which the only restriction is that the function w = ƒ(z) must be analytical. An introduction to this method is given and a critical review of relating literature is presented. Although in theory the method always converges, it is shown that a fundamental dilemma exists which may cause a breakdown in practical applications. To avoid this difficulty and to improve the rate of convergence toward a root, some modifications of the original method are proposed and a program (FORTRAN) based on the modified method is given in Algorithm 365. Some numerical examples are included.
Research and Advances

Productivity of multiprogrammed computers—progress in developing an analytic prediction method

Multiprogramming as it is discussed here is a mode of computer operation in which two or more programs are concurrently in processor memory and proceeding, each using the same central processor unit (CPU) and input-output (I/O) channels. These programs are actually proceeding intermittently and singly, according to eligibility (readiness to proceed) and priority. It is useful to be able to represent them as proceeding continuously and simultaneously, each at an effective rate, which may be a fraction of that which it would enjoy in the absence of the other programs. The effective progress rate of each program is sensitive to many detailed characteristics of itself and its co-residents; and simulation has been the best available method of predicting it. This paper presents the results of progress in developing an alternative to simulation, a simulation-tested iterative computation of these rates under certain situations. The algorithm is sensitive to most of the factors that control the phenomenon, including nonquantitative or topological features of the programs' structures.
Research and Advances

A fast random number generator for IBM 360

Marsaglia and Bray [1] recommend incorporating two-line random number generators directly into FORTRAN programs. One of the advantages of this is the time saved in avoiding linkage to and fro from a subroutine. Implicit in their FORTRAN routine for IBM 360 for Lehmer's multiplicative congruence method, namely; Uk+1 = &lgr;Uk (mod P), Xk+1 = Uk+1/P is the use of 232 as the value of modulus P.
Research and Advances

Presentation of alphameric characters for information processing

This proposed American National Standard has been accepted for publication by American National Standards Committee X3, Computers and Information Processing. In order that the final version of the proposed standard reflect the largest public consensus, X3 authorized publication of this document to elicit comment and general public reaction, with the understanding that such a working document is an intermediate result in the standardization process and is subject to change, modification, or withdrawal in part or in whole. Comments should be addressed to the X3 Secretary, Business Equipment Manufacturers Association, 235 East 42 Street, New York, NY 10017.—C.K.

Recent Issues

  1. July 2024 CACM cover
    July 2024 Vol. 67 No. 7
  2. June 2024 Vol. 67 No. 6
  3. May 2024 CACM cover
    May 2024 Vol. 67 No. 5
  4. April 2024 CACM cover with text
    April 2024 Vol. 67 No. 4