• module load python3 (for conda)
  • module load gcc (for gcc7)
  • conda create -n lcls2 python=3.6
  • source activate lcls2
  • conda install cmake cython numpy matplotlib mpi4py pytest rapidjson pymongo mongodb requests (NOTE: NERSC recommends building mpi4py.  See this link: Building MPI4PY)
  • source setup_env.sh (removing psconda.sh line) to set PYTHONPATH
  • export CRAYPE_LINK_TYPE=dynamic (to disable default static linking)
  • ./build_all.sh -d ("-d" to not build the daq)
  • pytest psana/psana/tests (currently 3 tests fail, perhaps because I haven't built mpi4py)

Note: To run a program that imports mpi4py at NERSC you have to be on a compute node.  Google "nersc interactive" to see how to get an interactive session on a compute node.  Also, use the "srun" command instead of mpirun.  If you try to run on a login node you will see an error like:

(lcls2) cpo@cori11:~/git/lcls2> python junk1.py
[Mon Jan 14 14:07:25 2019] [unknown] Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(537): 
MPID_Init(246).......: channel initialization failed
MPID_Init(638).......:  PMI2 init failed: 1 
Aborted
  • No labels