[cfe-dev] parallel C++
Michael Ferguson via cfe-dev
cfe-dev at lists.llvm.org
Mon Dec 3 06:50:32 PST 2018
In the related work category, I'd also suggest you look at X10  and
I'm not involved in the C++ standards, but I think it's unlikely
you'll get any traction there if the starting point is to discard the
C++ memory model (among other things).
Changing method calls into network messages is a capability that X10
has, as far as I know. I work on Chapel and tend to view that approach
as a language design that unnecessarily couples two different ideas.
But, many of the other properties you described in your summary apply
to both of these languages (e.g. optimizing compilation for the target
network - or more generally, including the idea of distributed
programming in the language).
Also, I'll second Jeff's suggestion that you look at Charm++ in particular.
On Mon, Nov 26, 2018 at 10:27 PM Jeff Hammond via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
> I’ll probably have more detailed comments later but the related work you may wish to consider includes:
> - UPC and Berkeley UPC++
> - Charm++
> - HPX from LSU
> - DASH (http://www.dash-project.org/)
> - MADNESS (https://arxiv.org/abs/1507.01888)
> There are quite a few dead parallel C++ dialects from the last millennium but it’s probably not worth your time to find and read about them.
> I’m very glad that you used MPI as your communication runtime. This will save you lots of pain.
> On Mon, Nov 26, 2018 at 2:57 PM Edward Givelberg via cfe-dev <cfe-dev at lists.llvm.org> wrote:
>> Chris Lattner suggested that I post to this mailing list.
>> I used Clang/LLVM to build a prototype for parallel
>> interpretation of C++. It's based on the idea that C++
>> objects can be constructed remotely, and accessed via
>> remote pointers, without changing the C++ syntax.
>> I am a mathematician, not an expert on compilers.
>> I am proposing changes to the C++ standard and to the
>> compiler architecture, so I'm very interested to hear from
>> My paper is
>> Best regards,
>> A solution to the problem of parallel programming
>> E. Givelberg
>> 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.
>> his 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.
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
> Jeff Hammond
> jeff.science at gmail.com
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
More information about the cfe-dev