diff options
-rw-r--r-- | BRANCH.txt | 55 | ||||
-rw-r--r-- | examples/Makefile.am | 3 | ||||
-rwxr-xr-x | examples/run_rados_examples.sh | 71 |
3 files changed, 118 insertions, 11 deletions
@@ -1,15 +1,50 @@ -autotools_rework +This branch is a copy of Neil's RADOS VOL connector branch. +Very few changes have been made to the branch so it stays +as a 'known good' version of the connector. -The purpose of this branch is to make changes to the autotools files, -particularly configure.ac. This will remove a lot of old cruft and update -the input files. This effort was started in January 2015 and should be -completed within the year. +This is based off the ancient 'vol' branch and is wildy +out of sync with develop. You will not be able to move +the RADOS VOL connector built here to HDF5 1.12.0 without +a lot of surgery. The rados_vol branch in this repository +is kept in sync with develop and is probably the one +you want for that. -This branch tracks the trunk. +Note that this is a dead branch, so no effort has been +made to keep the MANIFEST sane, etc. -Dana Robinson and Allen Byrne are the owners of this branch. +************ +* BUILDING * +************ -This branch should be closed when the bulk of the autotools work is -complete and has been merged into the trunk and 1.8 branch. This -work should be completed by mid-2015. +The code for the RADOS VOL connector lies entirely in +the H5VLrados* files in the src directory. The connector +is built as a static part of the library. +I build this branch on Ubuntu, with the system default +librados-dev package and its dependencies installed. I use +the autotools and the only thing I have to specify is the +linker flags: + +LDFLAGS="-L/path/to/librados -lrados" + +YMMV, but the autotools do no librados hunting so you may +need to specify things it can't figure out on its own. + + +*********** +* TESTING * +*********** + +There are no tests for the RADOS VOL connector in the main +library, so running 'make check' won't provide much +information. + +Once the library has been built, you can run some smoke +checks by running 'make install' and going to the +share/hdf5_examples/c/ directory and running the +run_rados_examples.sh script found there. That will +create a small pool (or clear it out if it exists) +and run all the example scripts in a sane order. + +*** YOU WILL NEED TO COPY YOUR ceph.conf FILE +*** INTO THIS DIRECTORY FIRST!!! diff --git a/examples/Makefile.am b/examples/Makefile.am index 323541f..ae0ac65 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -63,7 +63,8 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \ h5rados_file_create.c h5rados_file_open.c h5rados_group_create.c \ h5rados_group_open.c h5rados_dset_create.c \ h5rados_dset_open.c h5rados_dset_write.c h5rados_dset_read.c \ - h5rados_dset_wpartial.c h5rados_dset_rpartial.c + h5rados_dset_wpartial.c h5rados_dset_rpartial.c \ + h5rados_example.h run_rados_examples.sh diff --git a/examples/run_rados_examples.sh b/examples/run_rados_examples.sh new file mode 100755 index 0000000..7782a56 --- /dev/null +++ b/examples/run_rados_examples.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# Build RADOS examples. +# Assumes RADOS can be found in the usual location. +echo "Building RADOS examples" +../../../bin/h5pcc -o h5rados_file_create h5rados_file_create.c -lrados +../../../bin/h5pcc -o h5rados_file_open h5rados_file_open.c -lrados +../../../bin/h5pcc -o h5rados_dset_create h5rados_dset_create.c -lrados +../../../bin/h5pcc -o h5rados_dset_open h5rados_dset_open.c -lrados +../../../bin/h5pcc -o h5rados_group_create h5rados_group_create.c -lrados +../../../bin/h5pcc -o h5rados_group_open h5rados_group_open.c -lrados +../../../bin/h5pcc -o h5rados_dset_write h5rados_dset_write.c -lrados +../../../bin/h5pcc -o h5rados_dset_read h5rados_dset_read.c -lrados + +../../../bin/h5pcc -o h5rados_dset_rpartial h5rados_dset_rpartial.c -lrados +../../../bin/h5pcc -o h5rados_dset_wpartial h5rados_dset_wpartial.c -lrados +echo "DONE" +echo + +# Create the pool +echo "Creating the test pool" +echo "(Ceph makes it hard to delete pools, so we never do that" +echo "and you may see a message that the pool already exists.)" +ceph osd pool create mypool 128 +echo + +# Dump some Ceph info +echo "Pool status at start of tests:" +rados -p mypool ls +echo + +# Clean out the test pool +echo "Cleaning out the test pool" +for i in $(rados -p mypool ls); do echo $i; rados -p mypool rm $i; done +echo + +# Run the RADOS examples +echo "Running RADOS examples" +# File create/open +echo "./h5rados_file_create testfile" +mpiexec -n 2 ./h5rados_file_create testfile +echo "./h5rados_file_open testfile" +mpiexec -n 2 ./h5rados_file_open testfile +# Dataset create/open +echo "./h5rados_dset_create testfile testdset" +mpiexec -n 2 ./h5rados_dset_create testfile testdset +echo "./h5rados_dset_open testfile testdset" +mpiexec -n 2 ./h5rados_dset_open testfile testdset +# Group create/open +echo "./h5rados_group_create testfile testgroup" +mpiexec -n 2 ./h5rados_group_create testfile testgroup +echo "./h5rados_group_open testfile testgroup" +mpiexec -n 2 ./h5rados_group_open testfile testgroup +# Dataset read/write +echo "./h5rados_dset_write testfile testdset" +mpiexec -n 2 ./h5rados_dset_write testfile testdset +echo "./h5rados_dset_read testfile testdset" +mpiexec -n 2 ./h5rados_dset_read testfile testdset +# Dataset read/write (partial) +echo "./h5rados_dset_wpartial testfile testdset" +mpiexec -n 2 ./h5rados_dset_wpartial testfile testdset +echo "./h5rados_dset_rpartial testfile testdset" +mpiexec -n 2 ./h5rados_dset_rpartial testfile testdset +echo + + +# Dump the Ceph info again +echo "Pool status at end of tests:" +rados -p mypool ls +echo + |