Object-oriented design for massively parallel computing

11/22/2018
by   Edward Givelberg, et al.
0

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.

READ FULL TEXT
research
11/22/2018

A solution to the problem of parallel programming

The problem of parallel programming is the most important open problem o...
research
08/16/2019

Memory-Efficient Object-Oriented Programming on GPUs

Object-oriented programming is often regarded as too inefficient for hig...
research
10/28/2018

DynaSOAr: A Parallel Memory Allocator for Object-oriented Programming on GPUs with Efficient Memory Access

Object-oriented programming has long been regarded as too inefficient fo...
research
08/27/2018

AutoAlias: Automatic Variable-Precision Alias Analysis for Object-Oriented Programs

The aliasing question (can two reference expressions point, during an ex...
research
12/11/2019

Array Languages Make Neural Networks Fast

Modern machine learning frameworks are complex: they are typically organ...
research
05/18/2018

Partial Cartesian Graph Product

In this paper we define a new product-like binary operation on directed ...
research
09/27/2020

A Type-Oriented Graph500 Benchmark

Data intensive workloads have become a popular use of HPC in recent year...

Please sign up or login with your details

Forgot password? Click here to reset