Manual Test Flow

For the near term, offloading manual testing from Liang such that tests that are not in CI yet are still run to give some basic level of product confidence, while freeing up Liang to focus on the myriad tasks he has on his plate.


daos_test:

______________________________________________

NOTE: In the daos_m repo, there's a script called launcher.sh that was added to run daos_test while also stopping/starting servers in between subtests that kill servers. This should probably be the de facto way to run daos_test going forward.

Run Server, N nodes:

At last check, 15 nodes are required for all subtests to run, as the rebuild tests will kill servers, and server rejoining server group is not supported today.

orterun --mca mtl ^psm2,ofi -N 1 --hostfile ~/hostlists/daos_server_hostlist --enable-recovery --report-uri ~/scripts/uri.txt daos_server -c 1 &

daos_test:

orterun --mca mtl ^psm2,ofi -np 1 --hostfile ~/hostlists/daos_client_hostlist --ompi-server file:~/scripts/uri.txt daos_test -mpcCiAeoRd


CLEAN EVERYTHING

Relaunch server
Run rebuild tests, N nodes:

orterun --mca mtl ^psm2,ofi -np 1 --hostfile ~/hostlists/daos_client_hostlist --ompi-server file:~/scripts/uri.txt daos_test -r


CLEAN EVERYTHING

Relaunch server
Run OID allocation tests, N nodes:

orterun --mca mtl ^psm2,ofi -np 1 --hostfile ~/hostlists/daos_client_hostlist --ompi-server file:~/scripts/uri.txt daos_test -O

_______________________________________________

CLEAN EVERYTHING

IOR:

_______________________________________________

Set up envirables:
export LD_LIBRARY_PATH=/home/sdwillso/daos_m/opt/ofi/lib/:/home/sdwillso/daos_m/opt/cart/lib/:/home/sdwillso/daos_m/install/lib/:$LD_LIBRARY_PATH


Run server:

orterun --mca mtl ^psm2,ofi -N 1 --hostfile ~/hostlists/daos_server_hostlist --enable-recovery --report-uri ~/scripts/uri.txt daos_server -c 1 &

Create Pool:

orterun --mca mtl ^psm2,ofi -np 1 --ompi-server file:~/scripts/uri.txt dmg create --size=10G

Run IOR:

orterun -np 1 --hostfile ~/hostlists/daos_client_hostlist --mca mtl ^psm2,ofi  --ompi-server file:~/scripts/uri.txt ior -v -W -i 5 -a DAOS -w -o `uuidgen` -b 5g -t 1m -O daospool=$POOL,daosrecordsize=1m,daosstripesize=1m,daosstripecount=1024,daosaios=16,daosobjectclass=LARGE,daosPoolSvc=$POOL_LEADER,daosepoch=1

_______________________________________________

CLEAN EVERYTHING

daosbench:

_______________________________________________

Set environment for single record type implicit aggregation:
-x DAOS_IMPLICIT_PURGE=1 added to orterun server launch command, if desired

Run server:

orterun --mca mtl ^psm2,ofi -N 1 --hostfile ~/hostlists/daos_server_hostlist --enable-recovery --report-uri ~/scripts/uri.txt daos_server -c 1 &

Create Pool:

orterun --mca mtl ^psm2,ofi -np 1 --ompi-server file:~/scripts/uri.txt dmg create --size=4G

Run daos_bench:

orterun -np 1 --mca mtl ^psm2,ofi  --hostfile ~/hostlists/daos_client_hostlist --ompi-server file:~/scripts/uri.txt daosbench --test=kv-idx-update --testid=1 --svc=$POOL_LEADER --dpool=$POOL --container=`uuidgen` --object-class=tiny --aios=32 --indexes=1000000


repeat with: kv-dkey-update, kv-akey-update, kv-dkey-fetch, kv-akey-fetch

_______________________________________________

CLEAN EVERYTHING

daos_perf:

_______________________________________________

Set environment for single record type implicit aggregation:
-x DAOS_IMPLICIT_PURGE=1 added to orterun server launch command, if desired

Run server:

orterun --mca mtl ^psm2,ofi -N 1 --hostfile ~/hostlists/daos_server_hostlist --enable-recovery --report-uri ~/scripts/uri.txt daos_server -c 1 &

Run daos_perf:

1K  records:

CREDITS=1 ./daos/daos_m/src/tests/daos_perf.sh daos 200 1000 1K

CREDITS=8 ./daos/daos_m/src/tests/daos_perf.sh daos 200 1000 1K

4k records

CREDITS=1 ./daos/daos_m/src/tests/daos_perf.sh daos 200 1000 4K

_______________________________________________

MPICH:

_______________________________________________

Building

Install autotools latest versions (autoconf, automake, libtool) or use Mohamad's:

export LD_LIBRARY_PATH=/home/mschaara/install/autotools/lib:$LD_LIBRARY_PATH

export PATH=/home/mschaara/install/autotools/bin:$PATH

Setup envirables:

export DAOS_DIR=/home/sdwillso/daos/daos_m/install/

export LD_LIBRARY_PATH=$DAOS_DIR/lib/:$DAOS_DIR/lib/daos_srv:$LD_LIBRARY_PATH

export PATH=$DAOS_DIR/bin:$PATH

export CPATH=$DAOS_DIR/include/:$CPATH

export C_INCLUDE_PATH=$DAOS_DIR/include:$C_INCLUDE_PATH

export MPI_LIB=""

Get MPICH with DAOS ADIO branch:

git clone https://github.com/mchaarawi/mpich.git

cd mpich

git checkout daos_adio

git submodule init

git submodule update

./autogen.sh

mkdir build

cd build

../configure --prefix=/home/sdwillso/mpich/install/ --enable-fortran=all --enable-romio --enable-cxx --enable-g=all --enable-debuginfo --with-file-system=ufs+daos --with-daos=/home/sdwillso/daos/daos_m/install/ --with-cart=/home/sdwillso/daos/daos_m/opt/cart/

make -j8

make install


IMPORTANT NOTE: must keep strict separation between server and client here, ie don't do "run server as background process and then run client right after on same node"

Set up client envirables:

export PATH=/home/sdwillso/mpich/install/bin:$PATH

export LD_LIBRARY_PATH=/home/sdwillso/mpich/install/lib:$LD_LIBRARY_PATH                                                                                                                                       

export DAOS_SINGLETON_CLI=1

export CRT_ATTACH_INFO_PATH=/home/sdwillso/tmp/

export FI_PSM2_DISCONNECT=1

export CRT_CTX_NUM=8

The last two are for PSM2, so you don’t need them if you are using sockets provider.

CRT_ATTACH_INFO_PATH should point to the same thing to what you pass the -a to for daos_server

Build ROMIO test suite:

On client:

cd mpich_directory/build/src/mpi/romio/test

make -j8

Run Tests

Set on Server:

export CRT_CTX_NUM=8

Run server:

orterun --mca mtl ^psm2,ofi -N 1 --hostfile ~/hostlists/daos_mpich_hostlist --enable-recovery --report-uri ~/scripts/uri.txt daos_server -a/home/sdwillso/tmp/ -c 1 &

Create a pool with dmg:

mpirun -np 1 dmg create --size=1G

And set env variables DAOS_POOL, DAOS_SVCL to the pool uuid and svcl rank list respectively.

On Boro there is a script that does that in /home/mschaara/create_pool.sh

Run:

./run_daos_tests daos:test_file

Note that the daos: prefix tells mpich to use the daos adio driver. If you don’t have that, it will use the regular posix driver, and you won’t be running with the DAOS driver.


_______________________________________________