Skip to content

Conversation

ChrisRackauckas-Claude
Copy link
Contributor

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Aug 10, 2025

Summary

This PR adds FastLUFactorization from FastLapackInterface.jl as an optional algorithm for LinearSolveAutotune benchmarking, as documented at https://docs.sciml.ai/LinearSolve/stable/solvers/solvers/#FastLapackInterface.jl

Changes

  • Added include_fastlapack parameter to autotune_setup() function (default: false)
  • Modified get_available_algorithms() to conditionally include FastLUFactorization
  • Updated documentation with usage examples
  • FastLapackInterface remains a weak dependency in LinearSolve.jl (no new dependencies added)

Usage

# Default behavior - FastLUFactorization NOT included
results = autotune_setup()

# To include FastLUFactorization in benchmarks:
using FastLapackInterface  # Must load this first
results = autotune_setup(include_fastlapack = true)

Design Rationale

  • Opt-in by default: FastLUFactorization is not included unless explicitly requested
  • No new dependencies: Keeps FastLapackInterface as a weak dependency
  • User control: Users who want to benchmark FastLUFactorization can easily opt-in
  • Clear documentation: Usage examples show how to enable the feature

Impact

  • No breaking changes - existing code continues to work unchanged
  • Users who want to benchmark FastLUFactorization can now do so by:
    1. Loading FastLapackInterface.jl
    2. Setting include_fastlapack = true in autotune_setup()

Testing

The changes have been tested to confirm:

  • Default behavior excludes FastLUFactorization
  • FastLUFactorization is only included when both conditions are met:
    • FastLapackInterface.jl is loaded
    • include_fastlapack = true is specified
  • Clear warning messages when FastLUFactorization is requested but not available

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

- Added include_fastlapack parameter to autotune_setup (default: false)
- FastLUFactorization is only included when explicitly requested
- Keeps FastLapackInterface as a weak dependency in LinearSolve.jl
- Users must load FastLapackInterface.jl before using include_fastlapack=true
- Updated documentation with usage examples
- FastLapackInterface is now a direct dependency of LinearSolveAutotune
- Simplified the algorithm detection logic since it's always available
- Updated documentation to reflect that users don't need to load it separately
- The include_fastlapack parameter still defaults to false for backward compatibility
@ChrisRackauckas ChrisRackauckas merged commit e435f02 into SciML:main Aug 11, 2025
114 of 117 checks passed
@ChrisRackauckas ChrisRackauckas mentioned this pull request Aug 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants