Notification:
We are currently experiencing intermittent issues impacting performance. We apologize for the inconvenience.
By Topic

Software, IEEE

Issue 1 • Date Jan. 1988

Filter Results

Displaying Results 1 - 7 of 7
  • Programming three parallel computers

    Publication Year: 1988 , Page(s): 11 - 22
    Cited by:  Papers (7)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1107 KB)  

    Three commercial systems are considered from a programmer's point of view. The three are the Intel iPSC, a network of Inmos transputers, and the Sequent Balance. The differences in overhead are examined by implementing a solution to the traveling-salesman problem on all three. The evaluation focuses on three major issues in parallel programming: (1) how execution is divided among processing elements and how it is controlled; (2) how data are shared; and (3) how events are synchronized. The experiences of the authors are presented and some specific as well as general conclusions are drawn.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Grain size determination for parallel processing

    Publication Year: 1988 , Page(s): 23 - 32
    Cited by:  Papers (88)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (865 KB)  

    A method called grain packing is proposed as a way to optimize parallel programs. A grain is defined as one or more concurrently executing program modules. A grain begins executing as soon as all of its inputs are available, and terminates only after all of its outputs have been computed. Grain packing reduces total execution time by balancing execution time and communication time. Used with an optimizing scheduler, it gives consistently better results than human-engineered scheduling and packing. The method is language-independent and is applicable to both extended serial and concurrent programming languages, including Occam, Fortran, and Pascal.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Multiprocessor synchronization for concurrent loops

    Publication Year: 1988 , Page(s): 34 - 42
    Cited by:  Papers (14)  |  Patents (6)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1083 KB)  

    Execution of concurrent loops on multiprocessor computers often requires synchronizing the processors. Synchronization schemes are surveyed that are suitable for automatic problem decomposition. The model of a shared-memory multiprocessor is used, as is the concurrent-loop paradigm, which is to compile a loop so each processor is assigned a different loop iteration. The discussion covers data dependence, removing synchronization points, random synchronization, pipelining, barrier synchronization, and critical sections.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A distributed Prolog system with AND parallelism

    Publication Year: 1988 , Page(s): 43 - 51
    Cited by:  Papers (5)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1039 KB)  

    Design details and benchmark results are given for a Prolog interpreter that can be executed across a network by using message passing to implement AND-parallelism. The system is simple and easy to use, yet significantly speeds up existing programs. The system hardware is a group of Sun 3/50 workstations connected to a 10-Mb/s Ethernet. The number of machines actually used by the system is determined when it is initialized. The benchmark programs to test the system are a Prolog compiler, a recursive Fibonacci program, an implementation of the standard quicksort algorithm, and a simple chess program.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Exploring parafunctional programming: separating the what from the how

    Publication Year: 1988 , Page(s): 54 - 61
    Cited by:  Papers (4)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (671 KB)  

    A method is presented that takes functional programming one step further by letting the programmer change operational (parafunctional) details without restructuring or rewriting the program. Parafunctional programming is based on the premise that the what (specification) and the how (implementation) are separately identifiable and maintainable system components. Unlike conventional programming methods, parafunctional programming maintains this separation by metalinguistic constructs in the source language and a programming environment that supports structured editing and high-level debugging.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Applicative parallelism on a shared-memory multiprocessor

    Publication Year: 1988 , Page(s): 62 - 70
    Cited by:  Papers (4)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (688 KB)  

    An applicative language, SISAL (streams and iteration in a single-assignment language), is used to examine how effective the applicative approach can be in programming parallel computers. SISAL is a research language for investigating issues in parallel processing, especially for numerical computing. A prototype implementation of SISAL is described, focusing on loops and streams and on microtasking software. Performance results are reported for Livermore kernel 1, the Sieve prime finder, insertion sort, Batcher sort, the Simple hydrodynamics code, and the PSPhot photon-transport code.<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Test-case generation with IOGen

    Publication Year: 1988 , Page(s): 72 - 79
    Cited by:  Papers (3)
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (614 KB)  

    The IOGen static-analysis tool for a subset of Ada addresses part of the problem of verification of software reliability. It uses a technique based on symbolic execution and produces a set of I/O pairs that represent execution paths through a program. The authors present IOGen's design and demonstrate how to use it to test programs and validate Ada software interfaces. Although IOGen is specific to an Ada subset, the same technique can be applied to any language with a grammar that uses a left-to-right scan with one look-ahead token producing a leftmost derivation (an LL(1) grammar).<> View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.

Aims & Scope

IEEE Software's mission is to build the community of leading and future software practitioners. The magazine delivers reliable, useful, leading-edge software development information to keep engineers and managers abreast of rapid technology change

Full Aims & Scope

Meet Our Editors

Editor-in-Chief
Diomidis Spinellis
Athens University of Economics and Business
28is Oktovriou 76
Athina 104 33, Greece
dds@computer.org