<inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq1-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X: Federated Function as a Service for Science

<inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq2-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X is a distributed function as a service (FaaS) platform that enables flexible, scalable, and high performance remote function execution. Unlike centralized FaaS systems, <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq3-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X decouples the cloud-hosted management functionality from the edge-hosted execution functionality. <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq4-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X'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. <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq5-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X'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. <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq6-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X uses containers (e.g., Docker, Singularity, and Shifter) to provide common execution environments across endpoints. <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq7-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X implements various container management strategies to execute functions with high performance and efficiency on diverse <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq8-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X endpoints. <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq9-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X also integrates with an in-memory data store and Globus for managing data that may span endpoints. We motivate the need for <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq10-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X, present our prototype design and implementation, and demonstrate, via experiments on two supercomputers, that <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq11-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X can scale to more than 130000 concurrent workers. We show that <inline-formula><tex-math notation="LaTeX">$f$</tex-math><alternatives><mml:math><mml:mi>f</mml:mi></mml:math><inline-graphic xlink:href="li-ieq12-3208767.gif"/></alternatives></inline-formula><italic>unc</italic>X's container warming-aware routing algorithm can reduce the completion time for 3,000 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.