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
Apple Silicon Macs (M1, M2, M3) can run code in two modes: native arm64 or x86_64 via Rosetta 2 emulation. The build scripts provide a configuration option to choose between these modes.Configuration Option
APPLE_SILICON_BUILD_ARM
Controls whether to build native arm64 packages on Apple Silicon.Valid values:
0- Build x86_64 packages using Rosetta 2 (default, more stable)1- Build native arm64 packages
Build Modes
- x86_64 Mode (Default)
- arm64 Native Mode
By default, the build uses x86_64 packages that run via Rosetta 2 emulation.The environment is configured to use
Build Process
From the build script:conda_install_dedalus3.sh
osx-64 (x86_64) packages:- Sets
CONDA_SUBDIR=osx-64during creation - Configures the environment to maintain
subdir osx-64 - All packages are x86_64 and run via Rosetta 2
Advantages
- More stable: Better tested package ecosystem
- Fewer bugs: Avoids arm64-specific issues
- Recommended default: As noted in the script comments
- Good performance: Rosetta 2 is efficient for most workloads
This is the recommended mode for Apple Silicon. The x86_64 packages via Rosetta 2 provide better stability with minimal performance impact.
Platform Detection
The build script automatically detects Apple Silicon:conda_install_dedalus3.sh
- Checks for
Darwin(macOS) andarm64architecture - Sets
ON_APPLE_SILICON=1if both conditions are true - Forces
APPLE_SILICON_BUILD_ARM=0on non-Apple Silicon platforms
The
APPLE_SILICON_BUILD_ARM option is automatically disabled on Intel Macs, Linux, and Windows. It only has an effect on Apple Silicon hardware.Choosing Your Build Mode
Recommended: x86_64 Mode
For most users, stick with the default x86_64 mode:- Maximum stability
- Well-tested package ecosystem
- Minimal configuration needed
- Good performance via Rosetta 2
When to Use arm64 Mode
Consider native arm64 if:- You need maximum performance
- You’re comfortable troubleshooting platform issues
- Your workloads are CPU-intensive
- You want better power efficiency
Complete Configuration Examples
Checking Your Architecture
After installation, verify which architecture you’re using:GitHub Actions Testing
The GitHub Actions workflows test x86_64 mode on macOS:test_conda_builds.yml
osx-64 (x86_64), reflecting that this is the recommended configuration.
Known Issues and Workarounds
OpenBLAS ggev Errors (arm64)
Issue: OpenBLAS >= 0.3.20 causes errors in generalized eigenvalue problems Workaround: Automatically applied by the build scriptPackage Availability (arm64)
Issue: Some packages may not be available for arm64 Workaround: Use x86_64 modePerformance Testing
To compare performance between modes:Migration Guide
From x86_64 to arm64
If you want to try native arm64:From arm64 to x86_64
If experiencing issues with arm64:Related Configuration
- BLAS Options - OpenBLAS version pinning for arm64
- MPI Configuration - MPI works in both modes
Recommendations Summary
For most users on Apple Silicon:This provides the best balance of stability and performance.