Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multithreaded note hashing #11

Open
f321x opened this issue Sep 25, 2024 · 1 comment
Open

Multithreaded note hashing #11

f321x opened this issue Sep 25, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@f321x
Copy link

f321x commented Sep 25, 2024

If it is possible to parallelize functions in wasm libraries with something like https://github.com/RReverser/wasm-bindgen-rayon it would probably provide a great speed improvement to the note hashing.
Demo: https://rreverser.com/wasm-bindgen-rayon-demo/

@dskvr
Copy link
Contributor

dskvr commented Sep 25, 2024

Hello!

The demo provided is already multithreaded, but is achieved with web-workers as opposed to inside the wasm with rayon.

I considered using rayon but opted for multi-threading via web-workers instead in order to keep the wasm simple and to have wider compatbililty.

Rayon would definitely simplify usage of notemine, but it also could have some accessibility gotchyas with browser support (here and here). When compared with the accessibility of web workers, it's clear that notemine has notably wider coverage for multithreaded mining by implementing web-workers.

Additionally, based on the demo you sent, I'm not seeing much of a performance benefit over the web-worker implementation, both have a simliar end result (singleThreadPerf*totalThreads)

That said, I'm definitely not opposed to having another build with rayon implemented!

@dskvr dskvr added the enhancement New feature or request label Sep 25, 2024
dskvr added a commit that referenced this issue Oct 28, 2024
# This is the 1st commit message:

monorepo

# The commit message #2 will be skipped:

# rearrange and break everything

# The commit message #3 will be skipped:

# stuff

# The commit message #4 will be skipped:

# add svelte package/demo

# The commit message #5 will be skipped:

# add svelte package/demo

# The commit message #6 will be skipped:

# remove yarn lock

# The commit message #7 will be skipped:

# update README add reactjs package

# The commit message #8 will be skipped:

# update wrapper

# The commit message #9 will be skipped:

# update svelte demo

# The commit message #10 will be skipped:

# remove accidental node_modules and add build scripts

# The commit message #11 will be skipped:

# move core to rust and update scripts so whenever rust is built is copies to packages/core

# The commit message #12 will be skipped:

# remove demo from @notemine/wrapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants