
FAASM-это высокопроизводительное время выполнения без сервера.
FAASM обеспечивает мультитенантную изоляцию, но позволяет функциям делиться областями памяти. Эти общие области памяти дают одновременный доступ к данным с низкой задержкой и синхронизируются по всему миру для поддержки крупномасштабного параллелизма на нескольких хостах.
FAASM объединяет изоляцию неисправности программного обеспечения от WebAssembly со стандартным инструментом Linux, чтобы обеспечить безопасность и изоляцию ресурсов при низких затратах. FAASM выполняет функции бок о бок в виде потоков одного процесса выполнения, с низкими накладными расходами и быстрым временем загрузки.
FAASM определяет пользовательский интерфейс хоста, который расширяет WASI, чтобы включить входы и выходы функций, функции цепочек, управление состоянием, доступ к распределенной файловой системе, динамическое связывание, Pthreads, OpenMP и MPI.
Наша статья от Usenix ATC '20 на FAASM можно найти здесь.
Пожалуйста, смотрите полную документацию для получения более подробной информации о коде и архитектуре.
Обновите подмодули и активируйте виртуальную среду:
git submodule update --init --recursive
source ./bin/workon.sh Запустите кластер FAASM, используя docker compose :
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) 1973141 и подарок от Corporation Intel в рамках проекта TFAAS.