# FMI and Function as a Service

**URL:** <https://discourse.julialang.org/t/fmi-and-function-as-a-service/100734>\
**Category:** Offtopic\
**Created:** [June 23, 2023, 9:41am UTC](https://discourse.julialang.org/t/fmi-and-function-as-a-service/100734 "2023-06-23T09:41:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 23, 2023, 9:41am UTC](https://discourse.julialang.org/t/fmi-and-function-as-a-service/100734/1 "2023-06-23T09:41:00Z")

</div>

> <https://twitter.com/spcl_eth/status/1671999753997959169?t=Oe3DrnJKS0qyZdCDke17Bg&s=03>

> **[2023\_ics\_fmi.pdf](https://spcl.inf.ethz.ch/Publications/.pdf/2023_ics_fmi.pdf)**
>
> 871.53 KB

ABSTRACT  
Serverless functions provide elastic scaling and a fine-grained billing  
model, making Function-as-a-Service (FaaS) an attractive programming model. However, for distributed jobs that benefit from largescale and dynamic parallelism, the lack of fast and cheap communication is a major limitation. Individual functions cannot communicate directly, group operations do not exist, and users resort to  
manual implementations of storage-based communication. This results in communication times multiple orders of magnitude slower  
than those found in HPC systems. We overcome this limitation and  
present the FaaS Message Interface (FMI). FMI is an easy-to-use,  
high-performance framework for general-purpose point-to-point  
and collective communication in FaaS applications. We support different communication channels and offer a model-driven channel  
selection according to performance and cost expectations. We model  
the interface after MPI and show that message passing can be integrated into serverless applications with minor changes, providing  
portable communication closer to that offered by high-performance  
systems. In our experiments, FMI can speed up communication  
for a distributed machine learning FaaS application by up to 162x,  
while simultaneously reducing cost by up to 397 times.
