
Faasm은 고성능 상태가 높은 서버리스 런타임입니다.
Faasm은 다중 테넌트 분리를 제공하지만 기능이 메모리 영역을 공유 할 수 있도록합니다. 이러한 공유 메모리 지역은 데이터에 대한 동시 액세스가 적고 여러 호스트에서 대규모 병렬 처리를 지원하기 위해 전 세계적으로 동기화됩니다.
Faasm은 WebAssembly의 소프트웨어 결함 분리와 표준 Linux 툴링과 결합하여 보안 및 리소스 격리를 저렴한 비용으로 제공합니다. FAASM은 단일 런타임 프로세스의 스레드로 기능을 나란히 실행하며 오버 헤드가 낮고 부팅 시간이 빠릅니다.
FAASM은 기능 입력 및 출력, 체인 기능, 상태 관리, 분산 파일 시스템에 액세스, 동적 링크, PTHREADS, OPENMP 및 MPI를 포함하도록 WASI를 확장하는 사용자 정의 호스트 인터페이스를 정의합니다.
Faasm에 대한 Usenix ATC '20의 논문은 여기에서 찾을 수 있습니다.
코드 및 아키텍처에 대한 자세한 내용은 전체 문서를 참조하십시오.
하위 모듈을 업데이트하고 가상 환경을 활성화하십시오.
git submodule update --init --recursive
source ./bin/workon.sh docker compose 사용하여 로컬로 Faasm 클러스터를 시작하십시오.
faasmctl deploy.compose이 로컬 클러스터를 사용하여 C ++ 기능을 컴파일, 업로드 및 호출하려면 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 hello다음 단계에 대한 자세한 내용은 시작 문서를 볼 수 있습니다.
이 프로젝트는 유럽 연합의 Horizon 2020 연구 및 혁신 프로그램으로부터 보조금 계약 번호 825184 (Cloudbutton), 영국 엔지니어링 및 물리 과학 연구위원회 (EPSRC) Award 1973141에 따른 자금을 받았으며 TFAAS 프로젝트에 따른 Intel Corporation의 선물.