SearcharxivSearch

arXiv subjects

Edward Givelberg

Publications and source records attributed to Edward Givelberg.

4 recordsLinked to original sources

Object-oriented design for massively parallel computing

We define an abstract framework for object-oriented programming and show that object-oriented languages, such as C++, can be interpreted as parallel programming languages. Parallel C++ code is typically more than ten times shorter than the equivalent C++ code with MPI. The large reduction in the number of lines of code in parallel C++ is primarily due to the fact that coordination of concurrency, and the communications instructions, including packing and unpacking of messages, are automatically generated in the implementation of object operations. We implemented a prototype of a compiler and a runtime system for parallel C++ and used them to create complex data-intensive and HPC applications. These results indicate that adoption of the parallel object-oriented framework has the potential to drastically reduce the cost of parallel programming. We also show that standard sequential object-oriented programs can be ported to parallel architecture, parallelized automatically, and potentially sped up. The parallel object-oriented framework enables an implementation of a compiler with a dedicated backend for the interconnect fabric, which exposes the network hardware features directly to the application. We discuss the potential implications for computer architecture.

cs.PL

Process-Oriented Parallel Programming with an Application to Data-Intensive Computing

We introduce process-oriented programming as a natural extension of object-oriented programming for parallel computing. It is based on the observation that every class of an object-oriented language can be instantiated as a process, accessible via a remote pointer. The introduction of process pointers requires no syntax extension, identifies processes with programming objects, and enables processes to exchange information simply by executing remote methods. Process-oriented programming is a high-level language alternative to multithreading, MPI and many other languages, environments and tools currently used for parallel computations. It implements natural object-based parallelism using only minimal syntax extension of existing languages, such as C++ and Python, and has therefore the potential to lead to widespread adoption of parallel programming. We implemented a prototype system for running processes using C++ with MPI and used it to compute a large three-dimensional Fourier transform on a computer cluster built of commodity hardware components. Three-dimensional Fourier transform is a prototype of a data-intensive application with a complex data-access pattern. The process-oriented code is only a few hundred lines long, and attains very high data throughput by achieving massive parallelism and maximizing hardware utilization.

cs.PL

Object-Oriented Parallel Programming

We introduce an object-oriented framework for parallel programming, which is based on the observation that programming objects can be naturally interpreted as processes. A parallel program consists of a collection of persistent processes that communicate by executing remote methods. We discuss code parallelization and process persistence, and explain the main ideas in the context of computations with very large data objects.

cs.PL

A Comprehensive Three-Dimensional Model of the Cochlea

The human cochlea is a remarkable device, able to discern extremely small amplitude sound pressure waves, and discriminate between very close frequencies. Simulation of the cochlea is computationally challenging due to its complex geometry, intricate construction and small physical size. We have developed, and are continuing to refine, a detailed three-dimensional computational model based on an accurate cochlear geometry obtained from physical measurements. In the model, the immersed boundary method is used to calculate the fluid-structure interactions produced in response to incoming sound waves. The model includes a detailed and realistic description of the various elastic structures present. In this paper, we describe the computational model and its performance on the latest generation of shared memory servers from Hewlett Packard. Using compiler generated threads and OpenMP directives, we have achieved a high degree of parallelism in the executable, which has made possible several large scale numerical simulation experiments that study the interesting features of the cochlear system. We show several results from these simulations, reproducing some of the basic known characteristics of cochlear mechanics.

math.NA