Git Product home page Git Product logo

dedalus-builder's Introduction

dedalus-builder

The scripts in this repository make it easy to install Dedalus on your system in a way that leverages your system’s native MPI and/or BLAS implementations.

The approach

We use Anaconda Python and its conda tool to make pre-compiled packages of Dedalus and its dependencies. For dependencies that do not depend sensitively on your system’s particular characteristics, we use pre-built packages from the conda-forge project. But when we can take advantage of your system MPI or BLAS installations, we build custom packages.

You can then install these packages into new directory to create a self-contained Python installation that includes Dedalus and its dependencies. Or, if you already have an Anaconda installation, you can install the packages into that directory.

The packages built by this tool include binary code that depends on your computer's pre-existing MPI setup. So they might be portable to other systems, if they have a compatible setup, but they probably won’t be.

Instructions

First, set up your shell environment so that the programs can identify any system libraries you wish to use:

  • If you wish to use a system MPI installation, make sure that the desired mpicc program is in your $PATH. Otherwise, Anaconda’s prepackaged MPI implementation will be used.
  • If you wish to use a system BLAS installation, pass the argument --with-blas=LIBDIR to the ./configure program described below, where your BLAS libraries live in the directory LIBDIR.

Then, run ./initialize. This will download and set up a self-contained version of the Conda build infrastructure.

Then, run ./configure, possibly adding a --with-blas=LIBDIR argument. This will validate your build configuration and save its parameters. If you need to alter your build environment, just rerun this script.

Then run ./compile. This will compile Dedalus and its the MPI- and BLAS-sensitive dependencies, creating binary package files in the Conda format. The goal is that these builds should succeed reliably but there are likely bugs that need to be shaken out.

Once the packages are built, you have two installation choices. By running ./install-fresh <prefix>, you can create a new, self-contained Python installation that contains Dedalus and IPython. By running ./install-into <prefix>, you can install Dedalus into a preexisting Anaconda Python installation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.