-
Notifications
You must be signed in to change notification settings - Fork 2
Global Arrays
Users are strongly encouraged to use Global Arrays 5.2 or later with ARMCI-MPI.
As of GA 5.2, an external build of ARMCI is supported. This has been verified to work perfectly on Mac and Blue Gene/Q using the MPICH trunk (3.0.4+) and MPICH2 1.5, respectively.
First, build ARMCI-MPI normally:
git clone git://git.mpich.org/armci-mpi.git cd armci-mpi mkdir build ../configure CC=mpicc --prefix=$ARMCI_MPI_INSTALL_DIR --enable-g make -j8 make -j8 check make install
Second, build Global Arrays 5.2 like this:
svn co https://svn.pnl.gov/svn/hpctools/branches/ga-5-2 cd ga-5-2 mkdir build cd build ../configure MPICC=mpicc CC=mpicc MPIF77=mpif77 F77=mpif77 MPICXX=mpicxx CXX=mpicxx \ --with-mpi --with-armci=$ARMCI_MPI_INSTALL_DIR MPIEXEC="mpiexec -np %NP%" NPROCS=4 make -j8 make -j8 check
This might be fixed For some reason, the simple_groups_comm test build is broken in automake and thus one has to remove it and all related pieces for make check to succeed. Otherwise, you can just run the test suite manually.
Add these to your environment (in addition to the other settings you use that don't relate to ARMCI):
export ARMCI_NETWORK=ARMCI export EXTERNAL_ARMCI_PATH=$ARMCI_MPI_INSTALL_DIR
ARMCI-MPI does not work with GA 5.1. This is unlikely to change in the future. The fix requires ARMCI-MPI to provide the full TCGMSG interface and writing that code is not our idea of a good time, particularly now that GA 5.2 is working fine.
These directions are not correct any more but they were used when the NWChem trunk was using GA 5.0. They are a close enough approximation to what is required that savvy users can figure things out. Non-savvy users should just use GA 5.2.
# ARMCI_MPI_ROOT needs to be on a filesystem which is big enough to hold the NWChem source, # which means not your home directory on e.g. Jaguar or Hopper. mkdir $ARMCI_MPI_ROOT && cd $ARMCI_MPI_ROOT # this is only required if you're building from the SVN source svn co https://svn.pnl.gov/svn/nwchem nwchem-trunk # wait a very long time export NWCHEM_TOP=$ARMCI_MPI_ROOT/nwchem-trunk cd $NWCHEM_TOP/src/tools # this is only required if you're building from the SVN source ./get-tools # this is unnecessary clutter rm -rf tcgmsg-mpi tcgmsg pario ma LinAlg global ga-4-3 ga++ examples doc config cca armci-portals armci cd ga-dev mv armci armci-pnnl # or just delete it svn co https://svn.mcs.anl.gov/repos/armci-mpi/trunk armci-mpi ln -s armci-mpi armci cd armci # if necessary, build latest m4, automake, autoconf, libtool somewhere ./autogen.sh # these steps are only necessary on Cray XT and XE ln -s src src-gemini ln -s src src-portals # because the GA build system in NWChem 6.0 is imperfect, do this in the armci-mpi directory mkdir config touch config/makemp.h config/makecoms.h # configure ARMCI-MPI in the base directory # change references to armci/src in tools/GNUmakefile to armci # at this point, you should be done with the GA/ARMCI part cd $NWCHEM_TOP/src # comment out these lines from $NWCHEM_TOP/src/GNUmakefile: include ./tools/armci/config/makecoms.h include ./tools/armci/config/makemp.h # choose one of the following, depending on if you are on BGP or not export NWCHEM_TARGET=LINUX64 export NWCHEM_TARGET=BGP # even though ARMCI isn't using a native channel, this variable may have other side effects. export ARMCI_NETWORK=DCMFMPI export ARMCI_NETWORK=GEMINI export ARMCI_NETWORK=OPENIB export ARMCI_NETWORK=PORTALS
I recall that we got this to work but I don't recommend it.