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
There are two primary approaches to installing Dedalus with Conda:- conda-forge packages: Pre-built binaries for standard configurations
- Custom build scripts: Flexible builds with system-specific library linking
conda-forge Installation
What It Provides
The Dedalus feedstock on conda-forge provides pre-built packages with:- Dedalus v2 (latest stable release)
- OpenMPI support from conda-forge
- Parallel HDF5 built against OpenMPI
- FFTW from conda-forge
- NumPy/SciPy with OpenBLAS
Supported Platforms
- Linux (x86_64)
- macOS (x86_64)
The conda-forge builds support both MPICH and OpenMPI variants. The default installation uses OpenMPI.
Installation Command
When to Use conda-forge
Choose conda-forge installation when:Quick Setup
You need the fastest path to a working installation without configuration
Standard Hardware
You’re on a laptop or workstation with no special library requirements
Development Work
You’re developing Dedalus-based applications and need a stable baseline
Teaching
You’re setting up environments for students or workshops
Limitations
Custom Build Scripts
What They Provide
The custom build scripts (conda_install_dedalus2.sh and conda_install_dedalus3.sh) offer:
- Custom MPI linking: Use system-installed MPI (MPICH, Intel MPI, Cray MPICH, etc.)
- Custom FFTW: Link to hardware-optimized FFTW builds
- Custom HDF5: Use cluster-specific parallel HDF5 installations
- BLAS selection: Choose between OpenBLAS or Intel MKL
- Development versions: Install Dedalus v3 from the master branch
Configuration Options
The scripts expose configuration variables at the top of each file:When to Use Custom Builds
Choose custom build scripts when:HPC Clusters
You’re on a supercomputer with optimized system libraries
Custom MPI
You need to use Intel MPI, Cray MPICH, or other MPI implementations
Performance Tuning
You want to use Intel MKL or hardware-specific FFTW builds
Development
You’re testing Dedalus v3 or contributing to Dedalus development
Comparison Matrix
| Feature | conda-forge | Custom Build Scripts |
|---|---|---|
| Installation Speed | Fast (pre-built) | Slower (builds Dedalus) |
| Configuration | None required | Extensive options |
| MPI Support | OpenMPI only | Any MPI implementation |
| FFTW | conda-forge version | System or conda-forge |
| HDF5 | conda-forge parallel | System or conda-forge |
| BLAS | OpenBLAS | OpenBLAS or Intel MKL |
| Dedalus Versions | v2 stable only | v2 stable or v3 development |
| Platform Support | Linux, macOS x86 | Linux, macOS x86, macOS ARM |
| Cluster Optimization | Limited | Full control |
Detailed Configuration Examples
Example 1: Full conda-forge Stack
The simplest configuration uses all conda-forge packages:conda_install_dedalus2.sh
Example 2: Custom MPI with conda-forge FFTW/HDF5
On clusters with optimized MPI but standard FFTW/HDF5:conda_install_dedalus2.sh
When using custom MPI,
mpicc must be in your PATH or explicitly set via MPI_PATH.Example 3: Full Custom Stack (HPC)
On HPC systems with all libraries provided by modules:conda_install_dedalus2.sh
- Uses Cray MPI from the system
- Links to hardware-optimized FFTW
- Uses system parallel HDF5
- Selects Intel MKL for linear algebra
Example 4: Intel MKL with OpenMPI
For workstations with Intel processors:conda_install_dedalus2.sh
When using MKL, the build script automatically sets
FFTW_STATIC=1 to statically link FFTW and avoid symbol conflicts with MKL.Installation Workflow Details
Script Execution Flow
The custom build scripts follow this process:Validation
Check that the conda base environment is active and required paths are set for custom libraries
Environment Creation
Create a new conda environment with the specified name. On Apple Silicon, configure x86_64 emulation if needed.
Advanced Scenarios
Installing Development Versions via conda-forge
You can use the conda-forge base and install development Dedalus:Testing Both Installation Methods
The repository includes GitHub Actions workflows that test both methods nightly:.github/workflows/test_conda_builds.yml
Troubleshooting Installation Issues
Library Incompatibility
If you encounter errors about incompatible libraries:FFTW Linking Issues
If FFTW is not found during Dedalus installation:Environment Conflicts
Ensure clean Python environment:Performance Considerations
BLAS Selection
OpenBLAS:- Open source and widely compatible
- Good performance on most hardware
- Default choice for portability
- Optimized for Intel processors
- Better performance on Intel CPUs
- May require static FFTW linking
Benchmark your specific workload to determine which BLAS provides better performance. The difference varies by problem size and hardware.
MPI Implementation
Different MPI implementations have different performance characteristics:- OpenMPI: Good default choice, wide hardware support
- MPICH: Alternative with different communication strategies
- Intel MPI: Optimized for Intel fabrics and processors
- Cray MPICH: Optimized for Cray supercomputers
Summary
conda-forge
Best for: Laptops, workstations, quick setupInstallation:
conda install -c conda-forge dedalusTime: < 5 minutesCustom Scripts
Best for: HPC clusters, custom libraries, developmentInstallation:
bash conda_install_dedalus2.shTime: 10-30 minutes