Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Guidelines (Rules)

Desing Notes

  • We will start our build numbers at 100 to get conda to pick our channel builds over other channels
  • We will also add descriptive build strings to help specify uniquify our package canonical names

      MPI

      • We maintain our own installation of openmpi to make it lsf aware and build with verbs
      • We add lsf_verbs to the package name
      • It appears possible to build other mpi vendor implementations for lsf, google lsf aware mpi

       Updating MPI

      • We will maintain the file manage/config/package_build_order
      • This will tell us the order to rebuild packages, ie, openmpi, szip, hdf, mpi4py, h5py, pytables.
        • Usually szip doe not need to be rebuilt

      Build MPI Package

        • like openmpi_verbs_lsf
      • record log files of all builds
      • print environment and compiler used at the top of all build.sh scripts
      • record the md5 sum of the package file in the meta.yaml
      • just use the root environment of the miniconda install on the correct host, deactivate any conda environments you might be in
      • use from the conda root dir, in a dev miniconda, do: ana-rel-manage -c bld-pkg -r manage/recipes/system/openmpi-1.10.3
      • Do this on rhel5/6/7
      • We'll build packages in the dev and install them in both dev and prod

      Test Built MPI Package

      • to build packages. This does the following extra things:
        • save a log file, manage the filename, repeat builds of same package name get new name
        • moved built package into our file based channel
        • re-indexes the channel so we can install the package
        From a psana node with bsub,
        • sudo as psreldev
        • setup_condadev7
        • source activate _test
          • Gets you in the _test environment that was just used to build openmpi
        • cd $CONDA_ROOT/test/mpi
        • mpicc one of the C programs
        • bsub -n 3 mpirun -o output.log ./a.out
        • Check that it ran correctly