
FAASM เป็นรันไทม์ที่ไม่มีประสิทธิภาพสูง
FAASM ให้การแยกผู้เช่าหลายคน แต่ยังช่วยให้ฟังก์ชั่นแบ่งปันภูมิภาคของหน่วยความจำ ภูมิภาคหน่วยความจำที่ใช้ร่วมกันเหล่านี้ให้การเข้าถึงข้อมูลที่มีความล่าช้าต่ำพร้อมกันและมีการซิงโครไนซ์ทั่วโลกเพื่อรองรับการขนานขนาดใหญ่ในหลายโฮสต์
FAASM รวมการแยกความผิดพลาดของซอฟต์แวร์จาก WebAssembly กับเครื่องมือ Linux มาตรฐานเพื่อให้ความปลอดภัยและการแยกทรัพยากรในราคาต่ำ FAASM เรียกใช้ฟังก์ชั่นแบบเคียงข้างกันเป็นเธรดของกระบวนการรันไทม์เดียวโดยมีค่าใช้จ่ายต่ำและเวลาบูตเร็ว
FAASM กำหนดอินเทอร์เฟซโฮสต์ที่กำหนดเองที่ขยาย WASI เพื่อรวมอินพุตฟังก์ชั่นและเอาต์พุตฟังก์ชั่นการผูกมัดการจัดการสถานะการเข้าถึงระบบไฟล์แบบกระจายการเชื่อมโยงแบบไดนามิก pthreads, OpenMP และ MPI
กระดาษของเราจาก USENIX ATC '20 บน FAASM สามารถพบได้ที่นี่
โปรดดูเอกสารฉบับเต็มสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับรหัสและสถาปัตยกรรม
อัปเดต submodules และเปิดใช้งานสภาพแวดล้อมเสมือนจริง:
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สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนถัดไปคุณสามารถดูเอกสารการเริ่มต้นใช้งานได้
โครงการนี้ได้รับเงินทุนจากโครงการวิจัยและนวัตกรรมของสหภาพยุโรปในสหภาพยุโรปภายใต้ข้อตกลงการให้สิทธิ์หมายเลข 825184 (CloudButton), สภาวิจัยวิศวกรรมและวิทยาศาสตร์กายภาพของสหราชอาณาจักร (EPSRC) รางวัล 1973141 และของขวัญจาก Intel Corporation ภายใต้โครงการ TFAAS