Constructs an executor factory to execute computations locally.

num_clients The number of clients. If specified, the executor factory function returned by local_executor_factory will be configured to have exactly num_clients clients. If unspecified (None), then the function returned will attempt to infer cardinalities of all placements for which it is passed values.
max_fanout The maximum fanout at any point in the aggregation hierarchy. If num_clients > max_fanout, the constructed executor stack will consist of multiple levels of aggregators. The height of the stack will be on the order of log(num_clients) / log(max_fanout).
num_client_executors The number of distinct client executors to run concurrently; executing more clients than this number results in multiple clients having their work pinned on a single executor in a synchronous fashion.
server_tf_device A tf.config.LogicalDevice to place server and other computation without explicit TFF placement.
client_tf_devices List/tuple of tf.config.LogicalDevice to place clients for simulation. Possibly accelerators returned by tf.config.list_logical_devices().

An instance of executor_factory.ExecutorFactory encapsulating the executor construction logic specified above.

ValueError If the number of clients is specified and not one or larger.