All Projects → faasm → Faasm

faasm / Faasm

Licence: apache-2.0
High-performance stateful serverless runtime based on WebAssembly

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Faasm

Amgcl
C++ library for solving large sparse linear systems with algebraic multigrid method
Stars: ✭ 390 (-3.23%)
Mutual labels:  openmp, mpi
Kernels
This is a set of simple programs that can be used to explore the features of a parallel platform.
Stars: ✭ 287 (-28.78%)
Mutual labels:  openmp, mpi
Torsten
library of C++ functions that support applications of Stan in Pharmacometrics
Stars: ✭ 38 (-90.57%)
Mutual labels:  openmp, mpi
gpubootcamp
This repository consists for gpu bootcamp material for HPC and AI
Stars: ✭ 227 (-43.67%)
Mutual labels:  openmp, mpi
Nuclio
High-Performance Serverless event and data processing platform
Stars: ✭ 4,213 (+945.41%)
Mutual labels:  serverless, faas
hpdbscan
Highly parallel DBSCAN (HPDBSCAN)
Stars: ✭ 19 (-95.29%)
Mutual labels:  openmp, mpi
Functions
IronFunctions - the serverless microservices platform by
Stars: ✭ 2,968 (+636.48%)
Mutual labels:  serverless, faas
yask
YASK--Yet Another Stencil Kit: a domain-specific language and framework to create high-performance stencil code for implementing finite-difference methods and similar applications.
Stars: ✭ 81 (-79.9%)
Mutual labels:  openmp, mpi
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+985.61%)
Mutual labels:  serverless, webassembly
Cqrs
A lightweight enterprise Function as a Service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.
Stars: ✭ 310 (-23.08%)
Mutual labels:  serverless, faas
tbslas
A parallel, fast solver for the scalar advection-diffusion and the incompressible Navier-Stokes equations based on semi-Lagrangian/Volume-Integral method.
Stars: ✭ 21 (-94.79%)
Mutual labels:  openmp, mpi
Faas
OpenFaaS - Serverless Functions Made Simple
Stars: ✭ 20,820 (+5066.25%)
Mutual labels:  serverless, faas
wxparaver
wxParaver is a trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures.
Stars: ✭ 23 (-94.29%)
Mutual labels:  openmp, mpi
pyccel
Python extension language using accelerators
Stars: ✭ 189 (-53.1%)
Mutual labels:  openmp, mpi
EFDCPlus
www.eemodelingsystem.com
Stars: ✭ 9 (-97.77%)
Mutual labels:  openmp, mpi
Gloo
The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy
Stars: ✭ 3,219 (+698.76%)
Mutual labels:  grpc, serverless
research-computing-with-cpp
UCL-RITS *C++ for Research* engineering course
Stars: ✭ 16 (-96.03%)
Mutual labels:  openmp, mpi
analisis-numerico-computo-cientifico
Análisis numérico y cómputo científico
Stars: ✭ 42 (-89.58%)
Mutual labels:  openmp, mpi
Time2code
Portable Scalable web code editor to integrate into your sites and learning experiences
Stars: ✭ 294 (-27.05%)
Mutual labels:  serverless, faas
Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (-9.93%)
Mutual labels:  serverless, faas

Faasm Tests License Release Contributors

Faasm is a high-performance stateful serverless runtime.

Faasm provides multi-tenant isolation, yet allows functions to share regions of memory. These shared memory regions give low-latency concurrent access to data, and are synchronised globally to support large-scale parallelism.

Faasm combines software fault isolation from WebAssembly with standard Linux tooling, to provide security and resource isolation at low cost. Faasm runs functions side-by-side as threads of a single runtime process, with low overheads and fast boot times.

Faasm is built on Faabric which provides the distributed messaging and state layer.

The underlying WebAssembly execution and code generation is built using WAVM.

Faasm defines a custom host interface which extends WASI to include function inputs and outputs, chaining functions, managing state, accessing the distributed filesystem, dynamic linking, pthreads, OpenMP and MPI.

Our paper from Usenix ATC '20 on Faasm can be found here.

Quick start

You can start a Faasm cluster locally using the docker-compose.yml file in the root of the project:

docker-compose up -d

To interact with this local cluster you can run the Faasm CLI:

# Start the CLI
./bin/cli.sh

# Compile the demo function
inv compile demo hello

# Upload the demo "hello" function
inv upload demo hello

# Invoke the function
inv invoke demo hello

Note that the first time you run the local set-up it will generate some machine code specific to your host. This is stored in the container/machine-code directory in the root of the project and reused on subsequent runs.

More information

More detail on some key features and implementations can be found below:

Experiments and benchmarks

Faasm experiments and benchmarks live in the Faasm experiments repo:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].