<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br>Chris Lattner suggested that I post to this mailing list.<br><br>I used Clang/LLVM to build a prototype for parallel<br>interpretation of C++. It's based on the idea that C++ <br>objects can be constructed remotely, and accessed via <br>remote pointers, without changing the C++ syntax.<br>I am a mathematician, not an expert on compilers.<br>I am proposing changes to the C++ standard and to the<br>compiler architecture, so I'm very interested to hear from<br>experts.<br>My paper is</div><div dir="ltr"><a href="https://arxiv.org/abs/1811.09303">https://arxiv.org/abs/1811.09303</a><br>Best regards,<br>Ed<br><br>-----------------------------------------------------------------<br>A solution to the problem of parallel programming <br>E. Givelberg<br><br>The problem of parallel programming is the most important<br>open problem of computer engineering.<br>We show that object-oriented languages, such as C++,<br>can be interpreted as parallel programming languages,<br>and standard sequential programs can be parallelized automatically.<br>Parallel C++ code is typically more than ten times shorter than<br>the equivalent C++ code with MPI.<br>The large reduction in the number of lines of code in parallel C++<br>is primarily due to the fact that communications instructions,<br>including packing and unpacking of messages, are automatically <br>generated in the implementation of object operations.  <br>We believe that implementation and standardization of parallel <br>object-oriented languages will drastically reduce the cost of <br>parallel programming.<br>his work provides the foundation for building a new computer <br>architecture, the multiprocessor computer, including <br>an object-oriented operating system and more energy-efficient, <br>and easily programmable, parallel hardware architecture.<br>The key software component of this architecture is a compiler<br>for object-oriented languages.  We describe a novel compiler<br>architecture with a dedicated back end for the interconnect fabric,<br>making the network a part of a multiprocessor computer,<br>rather than a collection of pipes between processor nodes.<br>Such a compiler exposes the network hardware features <br>to the application, analyzes its network utilization, optimizes the<br>application as a whole, and generates the code for the<br>interconnect fabric and for the processors.<br>Since the information technology sector's electric power consumption<br>is very high, and rising rapidly, implementation and widespread <br>adoption of multiprocessor computer architecture<br>will significantly reduce the world's energy consumption.<br></div></div></div></div>