WebAssembly / WebAssembly/threads

OpenMP

Open
#97 1 comment 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
767
Forks
54
PR merge metrics
No merged PRs in 30d

Description

Sorry if this is the wrong place to raise this, am very new to WebAssembly. So please forgive my ignorance. 😅

WebAssembly is very exciting for those of us in scientific domains as it opens up the web to programs that were bound to a desktop and only (if ever) connected to the web through running some sort of web server. Not to mention the possibilities WebAssembly offers in terms of sharing and using these often difficult to produce environments is intriguing. Though it does raise some questions about threading, SIMD instructions, GPU support, etc. that seem to be pretty well discussed in various locations.

Though haven't really seen much discussion of OpenMP support. So wanted to raise this as an interesting use case. It is very common for scientists to take advantage of OpenMP as it offers a mode of parallelism that is really easy to understand, requires little work to implement in a program, and is widely supported. So it is quite common to see this show up in C/C++ codes in the scientific domain. Even extensions to the Python language like Cython make using OpenMP quite easy. Similarly Julia exposes it with ParallelAccelerator. Using C/C++ extensions to R one can also easily leverage OpenMP.

Given the popularity of OpenMP, was wondering if any thought had been given to OpenMP support in the threading spec. Particularly in regards to C/C++ code that is compiled to WebAssembly. Thanks in advance for your thoughts. 😄

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file or test is named. Start by reading the threading specification and the issue's discussion of C/C++ programs compiled to WebAssembly, then determine whether OpenMP belongs in the proposal. Done would require a scoped direction or design decision rather than a localized patch.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp, wasm
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.