Open paspro opened 2 years ago
Good one @paspro . Parallel programming is essential for the efficiency of modern hardware. Well, I've been using C++ for a while, and I understand the concern over including parallelism as a part of the language grammar. The thread support again varies from OS to OS. Chapel is one such programming language which is highly focussed on the parallelism aspect. We can look into that and take some breaking implementations, it being an open source project itself. Implementation details apart,
I would suggest a keyword identifier for using parallel loops/ multiple threads safely. In that way we can use both the normal and parallel loops at our wish without unnecessary employing either parallel/sequential on all the things. This way, if implemented, the keyword itself takes care of the OS and regarding implementation. This saves a ton of time for the developers for sure.
I think everyone is generally interested in these directions, but a) I think folks have so far been a bit prioritizing some of the foundations needed for interop, and b) just limited in bandwidth to pick up and explore this.
If folks are interested in beginning exploring this space, we can leave this issue open to track it, but otherwise it may make sense to close it as "not yet, but definitely interested if/when folks start working on this direction in the future".
Yeah, that should work.
@chandlerc How would you suggest we go about exploring it? Simply suggesting a design specification? Or something else?
@chandlerc How would you suggest we go about exploring it? Simply suggesting a design specification? Or something else?
You might want to start with a Discord discussion and/or an informal design in a Google Doc (but please use the shared Drive and the doc template as described in CONTRIBUTING.md
), because it's a little harder to have collaborative discussions on a pull request.
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please comment or remove the inactive
label. The long term
label can also be added for issues which are expected to take time.
This issue is labeled inactive
because the last activity was over 90 days ago.
I would argue that if one decides to create a new programming language in today's world it should be designed with parallel processing as part of the language grammar and not with the use of some library, even if this is part of the standard library.
A new language with expressions to specify parallel loops, multiple threads, coarrays etc without OpenMP, MPI, OpenACC, CUDA, OpenCL and the rest is more important for the C++ programming community which is interested in having high performance code on modern hardware rather than a somewhat easier to use syntax and safe structures which a typical C++ programmer already achieves following the latest C++ standard in combination with a disciplined style of programming.
Are there any plans for adding parallel programming features in the language syntax itself?