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

Please sign up or login with your details

Forgot password? Click here to reset

Sign in with Google

×

Use your Google Account to sign in to DeepAI

×

Consider DeepAI Pro