Concept of Operations for a Virtual Machine for C3I Applications.

Abstract : This final technical report summarizes research accomplished by Bagrodia and Chandy Associates. This 12-month research endeavor, entitled "Concept of Operations for a Virtual Machine for C31 Applications," examined issues in using a concurrent virtual machine for the design of C31 applications, where a concurrent virtual machine is an abstraction of a parallel machine. These issues were evaluated and defined for the purposes of handling concurrency in the design of parallel programs and to facilitate porting a parallel program to multiple architectures. This report provides a description of requirements analysis, state-of-the-art review, technology trends, concurrent virtual machine, cost benefit analysis and case study undertaken. One of the recommendations proposed demonstrates the applicability of the proposed concurrent virtual machine for the design of a terrain masking program.

[1]  Clifford Walinsky,et al.  A Data-Parallel FP Compiler , 1994, J. Parallel Distributed Comput..

[2]  David H. D. Warren,et al.  Prolog - the language and its implementation compared with Lisp , 1977, Artificial Intelligence and Programming Languages.

[3]  Dennis Gannon,et al.  Distributed pC++ Basic Ideas for an Object Parallel Language , 1993, Sci. Program..

[4]  K. Mani Chandy,et al.  UC: A Set-Based Language for Data-Parallel Programming , 1995, J. Parallel Distributed Comput..

[5]  Gordon Bell,et al.  Ultracomputers: a teraflop before its time , 1992, CACM.

[6]  Jeffrey Richter,et al.  Advanced Windows NT , 1995 .

[7]  John K. Ousterhout,et al.  Scheduling Techniques for Concurrent Systems , 1982, ICDCS.

[8]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[9]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[10]  Steve Gregory,et al.  Parallel logic programming in parlo9 , 1987 .

[11]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[12]  Nicholas Carriero,et al.  How to write parallel programs: a guide to the perplexed , 1989, CSUR.

[13]  Harry Berryman,et al.  Multiprocessors and run-time compilation , 1991, Concurr. Pract. Exp..

[14]  K. Mani Chandy,et al.  Fortran M: A Language for Modular Parallel Programming , 1995, J. Parallel Distributed Comput..

[15]  Krithi Ramamritham,et al.  Scheduling Tasks with Resource Requirements in Hard Real-Time Systems , 1987, IEEE Transactions on Software Engineering.

[16]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[17]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

[18]  M. Chen,et al.  Crystal: from functional description to efficient parallel code , 1988, C3P.

[19]  Donald E. Knuth,et al.  Big Omicron and big Omega and big Theta , 1976, SIGA.

[20]  Narain H. Gehani,et al.  Broadcasting Sequential Processes (BSP) , 1984, IEEE Transactions on Software Engineering.

[21]  Rudolf Eigenmann,et al.  Automatic program parallelization , 1993, Proc. IEEE.

[22]  Yuji Matsumoto,et al.  Guarded Horn Clauses and Experience with Parallel Logic Programming , 1986, FJCC.

[23]  Robert P. Weaver,et al.  The DINO Parallel Programming Language , 1991, J. Parallel Distributed Comput..

[24]  Willy Zwaenepoel,et al.  Adaptive software cache management for distributed shared memory architectures , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[25]  Scott A. Smolka,et al.  Processes, Tasks, and Monitors: A Comparative Study of Concurrent Programming Primitives , 1983, IEEE Transactions on Software Engineering.

[26]  Ken Kennedy,et al.  A static performance estimator to guide data partitioning decisions , 1991, PPOPP '91.

[27]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[28]  Ken Kennedy,et al.  An Overview of the Fortran D Programming System , 1991, LCPC.

[29]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[30]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[31]  Michel Dubois,et al.  Synchronization, coherence, and event ordering in multiprocessors , 1988, Computer.

[32]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[33]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[34]  Wilhelm Hasselbring,et al.  Prototyping Parallel Algorithms with PROSET-Linda , 1993, ACPC.

[35]  W. Daniel Hillis,et al.  The Network Architecture of the Connection Machine CM-5 , 1996, J. Parallel Distributed Comput..

[36]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[37]  Luqi Real-Time Constraints in a Rapid Prototyping Language , 1993, Comput. Lang..

[38]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[39]  K. Mani Chandy,et al.  CC++: A Declarative Concurrent Object Oriented Programming Notation , 1993 .

[40]  K. Mani Chandy,et al.  An introduction to parallel programming , 1992 .

[41]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[42]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[43]  Piyush Mehrotra,et al.  Programming distributed memory architectures using Kali , 1990 .

[44]  Linda S. Rogers,et al.  Official Guide to Using Os/2 Warp , 1995 .

[45]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[46]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[47]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[48]  Guy E. Blelloch,et al.  NESL: A Nested Data-Parallel Language , 1992 .

[49]  David C. Rine,et al.  Readings in Object-Oriented Systems and Applications , 1994 .

[50]  M. J. Quinn,et al.  Parallel Computing: Theory and Practice , 1994 .

[51]  James R. Larus,et al.  Lisp extensions for multiprocessing , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[52]  Guy E. Blelloch,et al.  Collection-oriented languages , 1991 .

[53]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[54]  Marina C. Chen,et al.  Compiling Communication-Efficient Programs for Massively Parallel Machines , 1991, IEEE Trans. Parallel Distributed Syst..

[55]  Anoop Gupta,et al.  The Stanford Dash multiprocessor , 1992, Computer.

[56]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[57]  John K. Ousterhout Scheduling Techniques for Concurrebt Systems. , 1982, ICDCS 1982.

[58]  Micha Sharir,et al.  Experience with the SETL Optimizer , 1983, TOPL.

[59]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[60]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[61]  Jay Hoeflinger,et al.  Cedar Fortran and other vector and parallel Fortran dialects , 1988, Proceedings. SUPERCOMPUTING '88.

[62]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[63]  Edmond Schonberg,et al.  Programming by Refinement, as Exemplified by the SETL Representation Sublanguage , 1979, TOPL.

[64]  Forum Mpi MPI: A Message-Passing Interface , 1994 .

[65]  Harry Berryman,et al.  Run-Time Scheduling and Execution of Loops on Message Passing Machines , 1990, J. Parallel Distributed Comput..

[66]  Vijay A. Saraswat,et al.  GHC: Operational Semantics, Problems, and Relationships with CP(|, |) , 1987, SLP.

[67]  Philip J. Hatcher,et al.  A production-quality C* compiler for Hypercube multicomputers , 1991, PPOPP '91.

[68]  David E. Reich Designing high-powered OS/2 Warp applications: the anatomy of multithreaded programs , 1995 .

[69]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[70]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[71]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[72]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, ISCA '90.

[73]  Al Geist,et al.  Network-based concurrent computing on the PVM system , 1992, Concurr. Pract. Exp..

[74]  Daniel P. King Investigation into Formalization of Domain-Oriented Parallel Software Development , 1993 .

[75]  Philippe Lalanda,et al.  A Domain-Specific Software Architecture for Adaptive Intelligent Systems , 1995, IEEE Trans. Software Eng..

[76]  David A. Padua,et al.  A Second Opinion on Data Flow Machines and Languages , 1982, Computer.

[77]  Charles L. Seitz,et al.  The cosmic cube , 1985, CACM.

[78]  Joel H. Saltz,et al.  Distributed memory compiler methods for irregular problems—data copy reuse and runtime partitioning , 1992 .

[79]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.