Skip to content
This repository was archived by the owner on Dec 17, 2025. It is now read-only.

Add '-DSPARSEIR_USE_BLAS=ON', to python/setup.py # Enable BLAS support#378

Merged
terasakisatoshi merged 19 commits intomainfrom
terasaki/python/enalbe-blas-support
Sep 9, 2025
Merged

Add '-DSPARSEIR_USE_BLAS=ON', to python/setup.py # Enable BLAS support#378
terasakisatoshi merged 19 commits intomainfrom
terasaki/python/enalbe-blas-support

Conversation

@terasakisatoshi
Copy link
Contributor

No description provided.

- Add matrix variables for deployment target and OpenBLAS paths
- Intel Mac: MACOSX_DEPLOYMENT_TARGET=11.0, /usr/local/opt/openblas
- Apple Silicon Mac: MACOSX_DEPLOYMENT_TARGET=15.0, /opt/homebrew/opt/openblas
- Resolve delocate wheel compatibility issues with OpenBLAS dependencies
- Ensure proper OpenBLAS linking for both x86_64 and arm64 architectures
- Change Intel Mac deployment target from 11.0 to 13.0
- Resolves delocate wheel compatibility issues with OpenBLAS dependencies
- OpenBLAS and its Fortran/GCC dependencies require macOS 13.0 minimum
- Add macOS to test matrix alongside Ubuntu
- Install OpenBLAS and Eigen via Homebrew on macOS
- Comment out CMAKE_PREFIX_PATH and PKG_CONFIG_PATH for now
- Now tests run on 6 environments: Ubuntu + macOS × Python 3.10/3.11/3.12
- Remove commented out environment variables from CI_C_API_Python.yml
- Bump pylibsparseir version from 0.1.1 to 0.1.2
- Prepare for release with OpenBLAS support
- Split builds by Python version (3.10, 3.11, 3.12, 3.13) for parallel execution
- Each OS + Python version combination runs as independent job (12 total jobs)
- Dynamic CIBW_BUILD configuration using matrix.python_version
- Unique artifact names for each build combination
- Significant build time reduction through parallelization

Build matrix:
- Linux: 4 parallel jobs (ubuntu-latest × cp310-313)
- macOS Intel: 4 parallel jobs (macos-13 × cp310-313)
- macOS Apple Silicon: 4 parallel jobs (macos-latest × cp310-313)
- Replace invalid '*' character in artifact names with clean py_tag values
- Use py_tag field consistently for both CIBW_BUILD and artifact naming
- Remove redundant python_version field from matrix
- Simplify matrix entries by using py_tag for cleaner configuration
- Fix GitHub Actions compliance issues with artifact naming constraints

Artifact names now follow pattern: wheels-{os}-{arch}-{py_tag}
CIBW_BUILD now uses: {py_tag}-* format for consistent wheel building
…ainers

- Replace traditional package managers (yum/dnf/apt-get) with micromamba
- Install OpenBLAS from conda-forge channel to /opt/openblas
- Update CMAKE_PREFIX_PATH and PKG_CONFIG_PATH to include new installation path
- Fixes 'command not found' error for package managers in manylinux_2_28_x86_64 container
- Add 'micromamba create -y -p /opt/openblas' before installing OpenBLAS
- Micromamba requires environment to be created before installing packages
- Fixes 'No prefix found at: /opt/openblas' error in manylinux container
- Use CIBW_BEFORE_ALL_MANYLINUX and CIBW_BEFORE_ALL_MUSLLINUX for platform-specific configurations
- Install bzip2 in musllinux containers before extracting micromamba
- Add CMAKE_PREFIX_PATH and PKG_CONFIG_PATH environment variables for both manylinux and musllinux
@terasakisatoshi terasakisatoshi merged commit 9aa8fa5 into main Sep 9, 2025
12 checks passed
@terasakisatoshi terasakisatoshi deleted the terasaki/python/enalbe-blas-support branch September 9, 2025 09:08
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant