How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs

@article{Lamport1979HowTM,
  title={How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs},
  author={Leslie Lamport},
  journal={IEEE Transactions on Computers},
  year={1979},
  volume={C-28},
  pages={690-691}
}
  • L. Lamport
  • Published 1 September 1979
  • Computer Science
  • IEEE Transactions on Computers
Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs. 
How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor
  • L. Lamport
  • Computer Science
    IEEE Trans. Computers
  • 1997
TLDR
A method is proposed for deriving the necessary commands from a correctness proof of the underlying algorithm in a formalism based on temporal relations among operation executions to synchronize memory accesses.
Can Out-of-Order Instruction Execution in Multiprocessors Be Made Sequentially Consistent?
TLDR
With certain combinations of re-orderings, any program that accesses shared memory through only reads and writes and that is correct assuming sequential consistency, can be transformed to a new program that does not use any explicit synchronization, and that remains correct in spite of the instruction re-ordering.
A Comparison of Memory Models for Multiprocessor SystemsGrace NgaiComputer Science
TLDR
This paper explores one of the classes of models developed to provide a formal interface for expressing rules which govern a machine's behaviour in detail, and looks at three speciic models which have been proposed in published papers.
The complexity of sequential consistency
  • Phillip B. Gibbons, E. Korach
  • Computer Science
    [1992] Proceedings of the Fourth IEEE Symposium on Parallel and Distributed Processing
  • 1992
TLDR
The first results showing the NP-completeness of this problem, even for short programs or small machines, are presented, demonstrating the difficulty in detecting when an execution of a memory system fails to be sequentially consistent.
High-Speed Multiprocessors and Compilation Techniques
The purpose of this paper is to present some ideas on multiprocessor design and on automatic translation of sequential programs into parallel programs for multiprocessors. With respect to machine
Generating concurrent test-programs with collisions for multi-processor verification
  • Allon Adir, G. Shurek
  • Computer Science, Physics
    Seventh IEEE International High-Level Design Validation and Test Workshop, 2002.
  • 2002
TLDR
The ideas presented are the result of years of experience with two multi-processor test generators from IBM (Genie and Genesys-Pro) which are also briefly presented.
A Unifying Theory of Correct Concurrent Executions
TLDR
This paper develops a unified general theory of correct executions where the access orders differ from the access order on the ideal system, and provides a verification tool to test the correctness of an execution.
Multiprocessors Should Support Simple Memory- Consistency Models Uniprocessor Memory
TLDR
The evolution of the programming model already under way is likely to continue, and multiple-processor cards like Intel's will help multiprocessing spread from servers to the desktop.
Parallel Computer Architecture
TLDR
This chapter gives an overview of the general structure of parallel computers which determines how computations of a program can be mapped to the available resources, such that a parallel execution is obtained.
Efficient and correct execution of parallel programs that share memory
TLDR
The analysis finds a minimal set of delays that enforces sequential consistency in the execution of parallel programs on shared-memory multiple-instruction-stream, multiple-data-stream (MIMD) computers and uses a conflict graph similar to that used to schedule transactions in distributed databases to do without locks.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 13 REFERENCES
Proving the Correctness of Multiprocess Programs
  • L. Lamport
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1977
TLDR
The inductive assertion method is generalized to permit formal, machine-verifiable proofs of correctness for multiprocess programs, represented by ordinary flowcharts, and no special synchronization mechanisms are assumed.
Comments on "An Approach to Highly Integrated Computer-Maintained Cellular Arrays"
  • V. Agrawal
  • Computer Science
    IEEE Trans. Computers
  • 1979
TLDR
The above paper1describes machines constructed on faulty logic arrays that use some or all of the good cells that form a connective cluster to determine the limit to the size of a machine embedded in a faulty array.
Erasure and Error Decoding for Semiconductor Memories
  • C. Sundberg
  • Computer Science
    IEEE Transactions on Computers
  • 1978
TLDR
In this paper, error correction methods which takes into account the special properties of failure modes in semiconductor memories are introduced and evaluated.
A class of optimal minimum odd-weight-column SEC-DED codes
The class of codes described in this paper is used for single-error correction and double-error detection (SEC-DED). It is equivalent to the Hamming SEC-DED code in the sense that for a specified
Algebraic coding theory
  • E. Berlekamp
  • Computer Science
    McGraw-Hill series in systems science
  • 1968
This is the revised edition of Berlekamp's famous book, "Algebraic Coding Theory," originally published in 1968, wherein he introduced several algorithms which have subsequently dominated engineering
Minimum-distance bounds for binary linear codes
TLDR
The table is obtained by combining the best of the existing bounds on d_{max} (n,k) with the minimum distances of known codes and a variety of code-construction techniques.
Verifying properties of parallel programs: an axiomatic approach
TLDR
A more powerful deductive system which is in some sense complete for partial correctness is defined, which provides for the use of auxiliary variables, which are added to a parallel program as an aid to proving it correct.
Development of a spaceborne memory with a single error and erasure correction scheme
  • Conf. Rec., 1977 Fault-Tolerant Computing Symp., FTCS-7
...
1
2
...