Versions Compared

Key

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

...

To build on Boro:

  • export MPI_LIB=""
  • download the mpich repo from above and switch to daos_adio branch; might need to update your autotools (autoconf, automake, libtool) as required by mpich.
  • ./autogen.sh
  • mkdir build; cd build
  • ../configure --prefix=dir --enable-fortran=all --enable-romio --enable-cxx --enable-g=all --enable-debuginfo --with-file-system=ufs+daos --with-daos=dir --with-cart=dir

  • add also --with-device=ch3:sock To be able to run with PSM2 provider we need to force mpich to use sockets instead of PSM2
  • make -j8; make install

  • Switch PATH and LD_LIBRARY_PATH where you want to build your client apps or libs that use MPI to the above installed MPICH.

...

To be able to run with PSM2 provider we need to force mpich to use sockets instead of PSM2 since DAOS/CART use PSM2. We can't have two instances of PSM2 on the same node, so the following configure option should be added to the above:

--with-device=ch3:sock

...

  •  

To disable debugging and get better for performance from mpich, remove those options:

...

  1. In one shell Launch DAOS server(s) with orterun (the PATH and LD_LIBRARY_PATH should point to the ompi installation that is installed to the DAOS installation):
    orterun --enable-recovery -np 1 --hostfile ~/my_hosts --report-uri ~/uri.txt /path/to/daos/bin/daos_server -c 8 -a /home/mschaara/
    (the -a path will create a connect file that the clients will use to connect to the DAOS server in singleton mode. so the path should accessible for the client and server.)
  2. At the client side, the following environment variables need to be set:

    1. export PATH=/path/to/mpich/install/bin:$PATH

    2. export LD_LIBRARY_PATH=/path/to/mpich/install/lib:$LD_LIBRARY_PATHexport MPI_LIB=""export CRT_ATTACH_INFO_PATH=/path/ (whatever was passed to daos_server -a)export DAOS_SINGLETON_CLI=1

  3. create a DAOS pool with dmg :
    mpirun -np 1 /path/to/daos/bin/dmg create (This returns a DAOS pool uuid and the rank or list of ranks of svc_leaders(see DAOS user guide)

  4. export DAOS_POOL=pool_uuid; export DAOS_SVCL=svc_leader(s)
  5. This is just temporary till we have a better way of passing pool connect info to MPI-IO and other middleware over DAOS.Optionally create a POSIX type DAOS container you want to use and export DAOS_CONT=cont_uuid
    1. daos cont create --pool=$DAOS_POOL --svc=$DAOS_SVCL --type=POSIX

  6. run the client application or test (see child pages for examples). 

...

  • Reading Holes does not return 0, but leaves the buffer untouched (Not sure how to fix this - might need to wait for DAOS implementation of ioviod_map_t to determine holes vs written bytes in the Array extent).
  • No support for MPI file atomicity, preallocate, shared file pointers. Those features were agreed upon as OK not to support.