A solution to the problem of parallel programming

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

The problem of parallel programming is the most important open problem of computer engineering. We show that object-oriented languages, such as C++, can be interpreted as parallel programming languages, and standard sequential programs can be parallelized automatically. 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 communications instructions, including packing and unpacking of messages, are automatically generated in the implementation of object operations. We believe that implementation and standardization of parallel object-oriented languages will drastically reduce the cost of parallel programming. This work provides the foundation for building a new computer architecture, the multiprocessor computer, including an object-oriented operating system and more energy-efficient, and easily programmable, parallel hardware architecture. The key software component of this architecture is a compiler for object-oriented languages. We describe a novel compiler architecture with a dedicated back end for the interconnect fabric, making the network a part of a multiprocessor computer, rather than a collection of pipes between processor nodes. Such a compiler exposes the network hardware features to the application, analyzes its network utilization, optimizes the application as a whole, and generates the code for the interconnect fabric and for the processors. Since the information technology sector's electric power consumption is very high, and rising rapidly, implementation and widespread adoption of multiprocessor computer architecture will significantly reduce the world's energy consumption.

READ FULL TEXT
research
11/22/2018

Object-oriented design for massively parallel computing

We define an abstract framework for object-oriented programming and show...
research
06/02/2023

Comparative Analysis of Widely use Object-Oriented Languages

Programming is an integral part of computer science discipline. Every da...
research
09/09/2022

Energy-Efficiency Evaluation of OpenMP Loop Transformations and Runtime Constructs

OpenMP is the de facto API for parallel programming in HPC applications....
research
10/30/2020

Transparent Compiler and Runtime Specializations for Accelerating Managed Languages on FPGAs

In recent years, heterogeneous computing has emerged as the vital way to...
research
02/25/2020

MLIR: A Compiler Infrastructure for the End of Moore's Law

This work presents MLIR, a novel approach to building reusable and exten...
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
09/06/2018

Future Directions for Optimizing Compilers

As software becomes larger, programming languages become higher-level, a...

Please sign up or login with your details

Forgot password? Click here to reset