Skip to content

building bccp-related packages on the anaconda/bccp channel

Notifications You must be signed in to change notification settings

bccp/conda-channel-bccp

Repository files navigation

Build Status

BCCP-related conda packages

Here, we maintain a list of python packages, mostly cosmology related affialiated with or used by the Berkeley Center for Cosmological Physics (BCCP). To install the conda packages maintained in this repository do:

conda install -c bccp package_name

The packages maintained here are:

  • abopt: ABstract OPTimizer: optimization of generic numerical models abopt_doi
  • bigfile: A reproducible massively parallel IO library for hierarchical data bigfile_doi
  • cachey: Caching based on computation time and storage space
  • classylss: A Python binding of CLASS for large-scale structure calculations classylss_doi
  • Corrfunc: Blazing fast correlation functions on the CPU Corrfunc_doi
  • fastpm-python: quasi N-body simulations using the FastPM scheme in Python fastpm-python_doi
  • fitsio: A python package for FITS input/output wrapping cfitsio
  • halotools: Python package for studying large scale structure, cosmology, and galaxy evolution using N-body simulations and halo models halotools_doi
  • kdcount: A KDTree pair counter kdcount_doi
  • mpsort: A Python binding of MP-sort, a peta scale sorting routine
  • mcfit: multiplicatively convolutional fast integral transforms in Python
  • nbodykit: Analysis kit for large-scale structure datasets, the massively parallel way nbodykit_doi
  • pfft-python: A Python binding of PFFT, a massively parallel FFT library pfft-python_doi
  • pmesh: Particle Mesh in Python pmesh_doi
  • runtests: Testing pytest based Python projects with optional support to variable MPI sizes. runtests_doi

The Anaconda channel of BCCP can be found at: http://anaconda.org/bccp/

General Plan

We use the cross-compilation toolchain introduced in anaconda 5.0 to build the packages on Linux and OSX.

platform directory

bccp used to ship mpich and mpi4py that properly allows compiling packages with the ctng cross compilation tool chain provided by conda. This is no longer an issue since at least Mar 15 2020. We therefore have switched to use the mpich and mpi4py on the default channel.

pkglist

all packages must be listed in build-order in order to build them. This is our poor man's version to resolve dependency. We loop over the packages to get around

conda/conda-build#2503

requirements.yaml

All packages also must be listed in requirements.yaml; except those hard coded in platform directory. A python script, extrude_recipes.py will find the latest version on pypi, generate a correctly versioned recipe for the package in recipes directory.

variants/ directory

We use a travis-ci matrix to determine the version of Python for conda-build. This helps us to shrink the time to build the packages to within the travis time-limit.

OSX gfortran weirdness

We sometimes need to add LDFLAGS to make the gfortran compiler on OSX happy.

ContinuumIO/anaconda-issues#739 (comment)

Currrently this still applies to the cross-compilation toolchain. Hopefully this will be fixed soon.

nersc/ directory

contains scripts to setup the environment to work with python-mpi-bcast on NERSC computers. The environments can be rebuilt nightly with a cronjob.

really old GDB

On a system with a really old gdb that cannot interpret the debugging info generated from newer GCC. add -gdrawf-2 to make sure the debugging info is old enough.