WASM

Jan. 9, 2020

Category: Solutions

Description

WebAssembly (known as WASM), is an open standard for running binary programs in browsers with near-native performance, but is not limited to browser enviroments only. WASM can be used in plenty of other enviroments like at GolemGrid. Writing your own WASM application allows you to run your computations in parallel.

Usage

1. Write the application in your preferred language. (C, C++ and Rust supported)
2. Create a pre-compiled Wasm module. See more
3. Contact us for integration into your own dashboard.

Limitations

  • 1. All supported applications need to be single threaded.

  • 2. Forks, IPC calls and synchronization are not allowed. It is convenient to run multiple instances of an application on multi core CPU.

  • 3. You cannot rely on time and date operations. They are mocked for the sake of determinism.

  • 4. All computations are limited to CPU, you cannot access the GPU.

  • 5. You cannot rely on randomness in order to generate cryptography or secrets. Moreover, in order to preserve determinism in the future, we will strive at providing the same source of entropy to all providers involved in verification of a WASM task. This way, the task will have access to real entropy and the determinism on providers’ machines will be preserved.

  • 6. All files are mapped to RAM memory. So having input and output files size in total greater than a few GB is not supported.


Sources