
O FAASM é um tempo de execução sem servidor com estado de alto desempenho.
O FAASM fornece isolamento com vários inquilinos, mas permite que as funções compartilhem regiões de memória. Essas regiões de memória compartilhada fornecem acesso simultâneo de baixa latência aos dados e são sincronizadas globalmente para suportar o paralelismo em larga escala em vários hosts.
O FAASM combina o isolamento de falhas de software da WebAssembly com as ferramentas Linux padrão, para fornecer isolamento de segurança e recursos a baixo custo. O FAASM funciona funções lado a lado como encadeamentos de um único processo de tempo de execução, com despesas gerais baixas e tempos de inicialização rápida.
O FAASM define uma interface de host personalizada que estende o WASI para incluir entradas e saídas de função, funções de encadeamento, gerenciamento de estado, acesso ao sistema de arquivos distribuído, vinculação dinâmica, pTHReads, OpenMP e MPI.
Nosso artigo da USENIX ATC '20 no FAASM pode ser encontrado aqui.
Consulte a documentação completa para obter mais detalhes sobre o código e a arquitetura.
Atualize os submódulos e ative o ambiente virtual:
git submodule update --init --recursive
source ./bin/workon.sh Inicie um cluster de faasm localmente usando docker compose :
faasmctl deploy.composePara compilar, fazer upload e chamar uma função C ++ usando este cluster local, você pode usar o contêiner FAASM/CPP:
faasmctl cli.cpp
# Compile the demo function
inv func demo hello
# Upload the demo "hello" function
inv func.upload demo hello
# Invoke the function
inv func.invoke demo helloPara obter mais informações sobre as próximas etapas, você pode ver os documentos de início
Este projeto recebeu financiamento do Programa de Pesquisa e Inovação Horizonte 2020 da União Europeia sob o contrato de concessão nº 825184 (CloudButton), o prêmio do Conselho de Pesquisa em Engenharia e Ciências Físicas do Reino Unido (EPSRC) 1973141 e um presente da Intel Corporation sob o projeto TFAAS.