funcX is a distributed function as a service (FaaS) platform that enables flexible, scalable, and high performance remote function execution. Unlike centralized FaaS systems, funcX decouples the cloud-hosted management functionality from the edge-hosted execution functionality. funcX's endpoint software can be deployed, by users or administrators, on arbitrary laptops, clouds, clusters, and supercomputers, in effect turning them into function serving systems. funcX's cloud-hosted service provides a single location for registering, sharing, and managing both functions and endpoints. It allows for transparent, secure, and reliable function execution across the federated ecosystem of endpoints--enabling users to route functions to endpoints based on specific needs. funcX uses containers (e.g., Docker, Singularity, and Shifter) to provide common execution environments across endpoints. funcX implements various container management strategies to execute functions with high performance and efficiency on diverse funcX endpoints. funcX also integrates with an in-memory data store and Globus for managing data that may span endpoints. We motivate the need for funcX, present our prototype design and implementation, and demonstrate, via experiments on two supercomputers, that funcX can scale to more than 130 000 concurrent workers. We show that funcX's container warming-aware routing algorithm can reduce the completion time for 3000 functions by up to 61% compared to a randomized algorithm and the in-memory data store can speed up data transfers by up to 3x compared to a shared file system.
翻译:foocX 的端点软件可以由用户或管理员在任意的膝上型计算机、云层、集群和超级计算机上部署,从而将它们转化为功能服务系统。 FoocX 的云托管服务为登记、共享和管理运行速度和端点提供了单一位置。它允许在中央的FaaS系统上运行透明、安全和可靠的功能。它允许在端点增强用户的联盟生态系统上执行透明、安全和可靠的功能,以便根据具体需要将云端管理功能与端点连接到端点。 FuncX 的端点软件可以由用户或管理员在任意的膝上型计算机、云层、云层、集群和超级计算机上安装,从而将它们变成功能服务系统。 FoocX 的云托管服务为在不同的 ColmcX 端点上运行高性能和效率的运行功能。 folcawax 端点也可以与内运行的内端点运行数据存储和后端点执行功能进行透明、安全和可靠的执行。