Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 2.53 KB

WASM_Support.md

File metadata and controls

60 lines (43 loc) · 2.53 KB

WASM Support

oneTBB extends its capabilities by offering robust support for WASM.

WASM stands for WebAssembly, a low-level binary format for executing code in web browsers. It is designed to be a portable target for compilers and efficient to parse and execute.

Using oneTBB with WASM, you can take full advantage of parallelism and concurrency while working on web-based applications, interactive websites, and a variety of other WASM-compatible platforms.

oneTBB offers WASM support through the integration with Emscripten*, a powerful toolchain for compiling C and C++ code into WASM-compatible runtimes.

Build

Prerequisites: Download and install Emscripten*. See the instructions.

To build the system, run:

mkdir build && cd build
emcmake cmake .. -DCMAKE_CXX_COMPILER=em++ -DCMAKE_C_COMPILER=emcc -DTBB_STRICT=OFF -DCMAKE_CXX_FLAGS=-Wno-unused-command-line-argument -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON -DBUILD_SHARED_LIBS=ON -DTBB_EXAMPLES=ON -DTBB_TEST=ON

To compile oneTBB without pthreads, set the flag -DEMSCRIPTEN_WITHOUT_PTHREAD=true in the command above. By default, oneTBB uses the pthreads.

cmake --build . <options>
cmake --install . <options>

Where:

  • emcmake - a tool that sets up the environment for Emscripten*.
  • -DCMAKE_CXX_COMPILER=em++ - specifies the C++ compiler as Emscripten* C++ compiler.
  • -DCMAKE_C_COMPILER=emcc - specifies the C compiler as Emscripten* C compiler.

NOTE: See CMake documentation to learn about other options.

Run Test

To run tests, use:

ctest