Documentation Index
Fetch the complete documentation index at: https://mintlify.com/DedalusProject/dedalus_conda/llms.txt
Use this file to discover all available pages before exploring further.
Overview
BLAS (Basic Linear Algebra Subprograms) provides the fundamental linear algebra operations used by NumPy, SciPy, and Dedalus. The build scripts support two BLAS implementations: OpenBLAS and Intel MKL.Configuration Option
BLAS
Selects the BLAS implementation for NumPy and SciPy.Valid values:
"openblas"- Open source BLAS implementation (default)"mkl"- Intel Math Kernel Library
BLAS Implementations
- OpenBLAS
- Intel MKL
OpenBLAS is the default BLAS implementation. It’s open source, well-supported on all platforms, and works well for most use cases.
Installation Process
From the build script:conda_install_dedalus3.sh
Key Features
- Dynamic FFTW linking: Sets
FFTW_STATIC=0 - Apple Silicon compatibility: Pins
libopenblas<0.3.20to avoid ggev errors - Cross-platform: Works consistently on Linux, macOS, and Windows
- No licensing restrictions: Fully open source
On Apple Silicon (M1/M2/M3), OpenBLAS versions >= 0.3.20 can cause errors in generalized eigenvalue problems. The build script automatically pins to earlier versions when building native arm64.
FFTW Linking Implications
Your BLAS choice affects how FFTW is linked:Why Static Linking with MKL?
MKL includes its own FFT routines. Statically linking FFTW prevents symbol conflicts between FFTW and MKL at runtime.Performance Considerations
OpenBLAS
Advantages:- Consistent performance across platforms
- No licensing concerns
- Well-tested with Dedalus
- Good performance on AMD CPUs
- AMD processors
- ARM processors (including Apple Silicon)
- Cross-platform development
- Open source requirements
Intel MKL
Advantages:- Highly optimized for Intel CPUs
- May offer better performance on Intel hardware
- Extensive optimization for Intel architectures
- Intel processors (especially Xeon)
- Maximum performance on Intel hardware
- Users familiar with MKL tuning
In practice, the performance difference between OpenBLAS and MKL for Dedalus workloads is often modest. OpenBLAS is the recommended default unless you have specific performance requirements or Intel hardware.
Platform-Specific Guidance
Apple Silicon (M1/M2/M3)
Intel x86_64 Workstations
AMD Processors
HPC Clusters
Validation
The build script validates the BLAS choice:conda_install_dedalus3.sh
Verifying Your BLAS
After installation, you can check which BLAS is in use:Threading Configuration
Both BLAS implementations support multi-threading, but the build scripts disable threading by default:conda_install_dedalus3.sh
Common Patterns
Related Configuration
- FFTW Configuration - BLAS choice affects FFTW linking
- Apple Silicon Configuration - Platform-specific BLAS considerations