Fibo Benchmark

Fibo benchmark example.

Example: fibo_benchmark.py.

Run it

python examples/fibo_benchmark.py
from __future__ import annotations

from flux import ExecutionContext
from flux.task import task
from flux.workflow import workflow


def fibo(n: int):
    if n <= 1:
        return n
    return fibo(n - 1) + fibo(n - 2)


@task.with_options(name="sum_fibo_{iteration}")
async def sum_fibo(iteration: int, n: int):
    print(f"Running iteration {iteration}")
    return fibo(n)


@workflow
async def fibo_benchmark(ctx: ExecutionContext[tuple[int, int]]):
    iterations = ctx.input[0]
    n = ctx.input[1]
    results = {}
    for i in range(iterations):
        result = await sum_fibo(i, n)
        results.update({f"Iteration #{i}": result})
    return results


if __name__ == "__main__":  # pragma: no cover
    ctx = fibo_benchmark.run((10, 33))
    print(ctx.to_json())

Last verified against Flux 0.56.0.