Papers by Gerald Baumgartner

Compute-intensive multi-dimensional summations that involve products of several arrays arise in t... more Compute-intensive multi-dimensional summations that involve products of several arrays arise in the modeling of electronic structure of materials. Sometimes several alternative formulations of a computation, representing different spacetime trade-offs, are possible. By computing and storing some intermediate arrays, reduction of the number of arithmetic operations is possible, but the size of intermediate temporary arrays may be prohibitively large. Loop fusion can be applied to reduce memory requirements, but that could impede effective tiling to minimize memory access costs. This paper develops an integrated model combining loop tiling for enhancing data reuse, and loop fusion for reduction of memory for intermediate temporary arrays. An algorithm is presented that addresses the selection of tile sizes and choice of loops for fusion, with the objective of minimizing cache misses while keeping the total memory usage within a given limit. Experimental results are reported that demon...
Global Communication Optimization for
ABSTRACT
Languages and Compilers for Parallel Computing
Lecture Notes in Computer Science, 2000
Designing a simulated testing system for embedded systems Development
bit.csc.lsu.edu
Page 1. Designing a simulated testing system for embedded systems DevelopmentAbhishek Debchoudhur... more Page 1. Designing a simulated testing system for embedded systems DevelopmentAbhishek Debchoudhury Louisiana State University 2007 Undergraduate Advisor: Dr. Gerald Baumgartner Page 2. Abstract A critical component ...
GERALD BAUMGARTNER and VINCENT F. RUSSO
ABSTRACT
Module Constructs for Object-Oriented and Functional Programming Languages
Proceedings of the MSPLS Spring'95 Workshop
A Proposal to Study Type Systems for Computer Algebra
It is widely recognized that programming languages should offer features to helpstructure program... more It is widely recognized that programming languages should offer features to helpstructure programs. To achieve this goal, languages like Ada, Modula-2, objectorientedlanguages, and functional languages have been developed. The structuringtechniques available so far (like modules, classes, parametric polymorphism)are still not enough or not appropriate for some application areas. In symboliccomputation, in particular computer algebra, several problems occur that aredifficult to
Software: Practice and Experience, 1995
c++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes ... more c++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes tbe type system too inflexible. We then describe a conservative language extension 1.1111.1 allows a programmer to define an abstract. type hierarchy independent of any implementation hierarchies, to retroactively abstract over an implementation, and to decouple subtyping from inheritance. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of stalic typing.
Modularization constructs for functional and object-oriented languages
... Last but not least, I would like to express my thanks to the system support sta , especially ... more ... Last but not least, I would like to express my thanks to the system support sta , especially to Dan Trinkle, for providing such an excellent computing environment and ... two clutter the name space with a super uous set of new class names. Mularz Mul95] ...
Signatures: A C++ extension for type abstraction and subtype polymorphism
Software: Practice & Experience, 1994
CiteSeerX - Document Details (Isaac Councill, Lee Giles): C++ uses inheritance as a substitute fo... more CiteSeerX - Document Details (Isaac Councill, Lee Giles): C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the type system too inflexible. We then describe a conservative language extension that allows us to define an abstract ...
Support for functional programming in Brew
... [2] Gerald Baumgartner, Konstantin Läufer, and Vincent F. Russo. ... 123 Page 133. [3] Gilad ... more ... [2] Gerald Baumgartner, Konstantin Läufer, and Vincent F. Russo. ... 123 Page 133. [3] Gilad Bracha, Norman Cohen, Christian Kemper, Steve Marx, Martin Odersky, Sven-Eric Panitz, David Stoutamire, Kresten Thorup, and Philip Wadler. ...
Strong mobility, which allows multi-threaded agents to be migrated transparently at any time, is ... more Strong mobility, which allows multi-threaded agents to be migrated transparently at any time, is a powerful mechanism for implementing a peer-to-peer computing environment, in which agents carrying a computational payload find available computing resources. Existing approaches to strong mobility either modify the Java Virtual Machine or do not correctly preserve the Java semantics when migrating multi-threaded agents.

ACM Transactions on Programming Languages and Systems, 1997
We outline the design and detail the implementation of a language extension for abstracting types... more We outline the design and detail the implementation of a language extension for abstracting types and for decoupling subtyping and inheritance in C++. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. After a brief discussion of syntax and semantics of this language extension and examples of its use, we present and analyze three different implementation techniques: a preprocessor to a C++ compiler, an implementation in the front end of a C++ compiler, and a low-level implementation with back-end support. We follow with an analysis of the performance of the three implementation techniques and show that our extension actually allows subtype polymorphism to be implemented more efficiently than with virtual functions. We conclude with a discussion of the lessons we learned for future programming language design.

Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering twenty-first century applications - SIGSOFT '00/FSE-8, 2000
We describe an extension to the Java programming language that supports static conformance checki... more We describe an extension to the Java programming language that supports static conformance checking and dynamic debugging of object "protocols," i.e., sequencing constraints on the order in which methods may be called. Our Java protocols have a statically checkable subset embedded in richer descriptions that can be checked at run time. The statically checkable subtype conformance relation is based on Nierstrasz' proposal for regular (finite-state) process types, and is also very close to the conformance relation for architectural connectors in the Wright architectural description language by Allen and Garlan. Richer sequencing properties, which cannot be expressed by regular types alone, can be specified and checked at run time by associating predicates with object states. We describe the language extensions and their rationale, and the design of tool support for static and dynamic checking and debugging.

Empirical optimizers like ATLAS have been very effective in optimizing computational kernels in l... more Empirical optimizers like ATLAS have been very effective in optimizing computational kernels in libraries. The best choice of parameters such as tile size and degree of loop unrolling is determined in ATLAS by executing different versions of the computation. In contrast, optimizing compilers use a model-driven approach to program transformation. While the model-driven approach of optimizing compilers is generally orders of magnitude faster than ATLAS-like library generators, its effectiveness can be limited by the accuracy of the performance models used. In this paper, we describe an approach where a class of computations is modeled in terms of constituent operations that are empirically measured, thereby allowing modeling of the overall execution time. The performance model with empirically determined cost components is used to select library calls and choose data layout transformations in the context of the Tensor Contraction Engine, a compiler for a high-level domain-specific language for expressing computational models in quantum chemistry. The effectiveness of the approach is demonstrated through experimental measurements on representative computations from quantum chemistry. the best features of empirical optimizations, namely, the incorporation of complex behavior of modern architectures, and a model-driven approach that enables efficient exploration of the search space.
This paper discusses a program synthesis system to facil-itate the generation of high-performance... more This paper discusses a program synthesis system to facil-itate the generation of high-performance parallel programs for a class of computations encountered in quantum chem-istry and physics. These computations are expressible as a set of tensor contractions and arise in electronic structure modeling. An overview is provided of the synthesis system under development, that will take as input a high-level spec-ification of the computation and generate high-performance parallel code for a number of target architectures. Several components of the synthesis system are described, focusing on compile-time optimization issues that they address.
MolPhy06 Automatic Code Generation for Many-Body Electronic Structure Methods: The
Qingda Lu, Xiaoyang Gao, Sriram Krishnamoorthy, Gerald Baumgartner, J. Ramanujam, P. Sadayappan
Journal of Parallel and Distributed Computing
Uploads
Papers by Gerald Baumgartner