Speaker
Description
Brightway’s inventory calculations usually rely on direct sparse solvers such as PARDISO or UMFPACK. These are robust and fast for many applications, but they can become a major bottleneck when technosphere systems grow very large. In particular, the matrix factorisation step can require far more memory than the sparse matrix itself, making calculations on large or dense systems painfully slow or even impractical on standard laptops.
In this talk, I present a recent addition to bw2calc: an alternative iterative solver based on a Jacobi preconditioner and the GMRES Krylov method. Instead of performing a full direct factorisation, this approach solves the system iteratively to a specified residual tolerance, greatly reducing memory pressure while still delivering results accurate enough for practical LCA work.
The presentation will centre on a short Jupyter notebook demo. Using technosphere systems of different sizes and sparsities, I will show where the iterative approach changes the game. In one benchmark, a 250k × 250k regionalised technosphere system was solved in about 4 seconds instead of 8 minutes. In another synthetic test, a 40k × 40k system with 0.1% density dropped from 1540 seconds with a direct solver to 0.02 seconds with the iterative approach. These results suggest that iterative methods could enable Brightway to handle much larger systems, including cases currently limited by memory rather than by the LCA framework itself.
Beyond the speed-up, I will discuss the main trade-off: this is no longer an exact direct solve, but an approximate one controlled by convergence criteria. For many applications, however, this approximation appears to be more than sufficient, while making previously unwieldy systems tractable. The talk aims to show both the practical implementation now available in bw2calc and the potential to scale open-source LCA to much larger problem sizes.
| Do you need special material (e.g. online whiteboard)? | Notebook + environment with BW 2.5 (bw2calc>=2.4.0) |
|---|---|
| How much time do you ideally wish for your contribution? | 10 min (Presentation, slides) |