miranov25 / RootInteractive

5 stars 12 forks source link

Issue: Add WebAssembly Support for Numerical C++ Code in Bokeh #357

Open miranov25 opened 5 months ago

miranov25 commented 5 months ago

Issue: Add WebAssembly Support for Numerical C++ Code in Bokeh

Objective:

Implement a library of numerical functions using WebAssembly (WASM) to be integrated into the Bokeh client side. Additionally, ensure the functionality is testable using Node.js.

Description:

We aim to enhance the Bokeh client-side capabilities by adding a library of numerical functions written in C++ and compiled to WebAssembly (WASM). This will allow us to leverage the performance benefits of WebAssembly for computationally intensive tasks directly within the browser. The new functionality will be added under Tools/WASM.

Tasks:

  1. Setup WebAssembly Environment:

    • Configure the build environment for compiling C++ code to WebAssembly.
    • Ensure compatibility with both the Bokeh client and Node.js for unit testing.
  2. Develop Numerical Functions:

    • Implement a library of numerical functions in C++ (e.g., optimization algorithms, matrix operations, statistical computations).
    • Compile these functions to WebAssembly.
  3. Integrate with Bokeh:

    • Create a JavaScript interface to load and call the WebAssembly functions from Bokeh.
    • Ensure seamless interaction between the Bokeh client and the WebAssembly module.
  4. Unit Testing with Node.js:

    • Set up a Node.js environment for running unit tests on the WebAssembly functions.
    • Develop comprehensive unit tests to verify the correctness and performance of the numerical functions.
  5. Documentation:

    • Provide detailed documentation on how to use the new WebAssembly numerical functions in Bokeh.
    • Include examples and use cases.

Acceptance Criteria:

miranov25 commented 5 months ago

The code is related to the https://its.cern.ch/jira/browse/O2-5078 Prototype to be doe withing the associated gitlab project