funcX - Federated function as a service

funcx-faas/funcX

funcX is a distributed Function as a Service (FaaS) platform that enables flexible, scalable, and high performance remote function execution. Unlike centralized FaaS platforms, funcX allows users to execute functions on heterogeneous remote computers, from laptops to campus clusters, clouds, and supercomputers.

  • funcX cloud hosted service
  • funcX endpoints

Getting started

funcX documentation

How it works:

  • Register a function by specifying the function body and the input arguments
  • Execute the function by also specifying the endpoint ID

funcX-model

  • Register a function: func_uuid = fxc.register_function(hello_world)
  • Run a function: res = fxc.run(endpoint_id=<>, function_id=<>)
  • Retrieving results: fxc.get_result(res)
  • Batch of tasks can be added

Similar to Parsl, dependencies must be imported inside the function body.


Issues

  • Is there a way to run scripts, not just Python apps? e.g. @bash_app inParsl. To merge these two, we must solve this problem.