diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2014-03-28 20:55:41 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2014-03-28 20:55:41 (GMT) |
commit | addc39a75cfb3cc2672c196db6df2dea3db7b119 (patch) | |
tree | c339f0089a6fadc1a36a0e1f58e7a4f6ce7042f9 | |
parent | bdec822c784654a704a5b3c6fcb54a2f551fcb39 (diff) | |
download | hdf5-addc39a75cfb3cc2672c196db6df2dea3db7b119.zip hdf5-addc39a75cfb3cc2672c196db6df2dea3db7b119.tar.gz hdf5-addc39a75cfb3cc2672c196db6df2dea3db7b119.tar.bz2 |
[svn-r24923] - update build instructions.
- commit 6.2 demo with work around Barriers, tagged with MSC.
-rw-r--r-- | EFF_INSTALL | 20 | ||||
-rw-r--r-- | examples/h5ff_client_M6.2_demo.c | 30 |
2 files changed, 41 insertions, 9 deletions
diff --git a/EFF_INSTALL b/EFF_INSTALL index 1cc4be0..7b3734d 100644 --- a/EFF_INSTALL +++ b/EFF_INSTALL @@ -24,8 +24,8 @@ build AXE: make install -build DAOS_POSIX, PLFS, and IOD: - Please refer to the IOD tarball for instruction on how to build and setup the three libraries. +build DAOS, PLFS, and IOD: + Please refer to the DAOS and IOD tarball for instruction on how to build and setup the three libraries. build Mercury (Function Shipper) @@ -39,10 +39,10 @@ build HDF5 IOD VOL plugin: get it from here: svn checkout http://svn.hdfgroup.uiuc.edu/hdf5/features/hdf5_ff - ./configure --with-daos-posix=/path/to/daos/posix --with-plfs=/path/to/plfs --with-iod=/path/to/iod/ --with-axe=/path/to/axe/install/directory PKG_CONFIG_PATH=/path/to/mercury/install/directory/lib/pkgconfig/ --enable-parallel --enable-debug --enable-trace --enable-threadsafe --enable-unsupported --with-pthread=/usr --enable-eff + ./configure --with-daos=/path/to/daos/posix --with-plfs=/path/to/plfs --with-iod=/path/to/iod/ --with-axe=/path/to/axe/install/directory PKG_CONFIG_PATH=/path/to/mercury/install/directory/lib/pkgconfig/:/path/to/mchecksum/install/dir --enable-parallel --enable-debug --enable-trace --enable-threadsafe --enable-unsupported --with-pthread=/usr --enable-eff --enable-shared --enable-python - If you wise to build the analysis shipping with python scripts, add --enable-shared --enable-python to the configure script. - Note in that case all 3rd party libraries have to be build shared or with -fPIC. You should also have devel python libraries and numpy installed on your system. + If you want indexing to be built in add --enable-indexing + Note in that case all 3rd party libraries have to be build shared or with -fPIC. You should also have devel python devel libraries and numpy installed on your system. You should see in the configure summary at the end if the EFF plugin in HDF5 was successfully configured. @@ -63,6 +63,7 @@ build the example programs: - h5ff_client_obj.c : This tests generic object routines (H5O). - h5ff_client_analysis.c : This tests the analysis shipping functionality (H5AS). - h5ff_client_M6.2_demo.c: HDF5 and I/O Dispatcher Container Versioning Demonstration + - h5ff_client_M7.2-pep_demo.c: Prefetch, evict, persist data movement demo. cd path/where/hdf5_ff/is/built/examples/ make @@ -78,4 +79,13 @@ build the example programs: Note, for now, the number of clients must be greater than or equal to the number of servers. +H5Part: + fastforward/H5Part-1.6.6_ff/configure --enable-debug --enable-shared --enable-parallel --with-hdf5=/path/to/hdf5 + make + make install + +VPICIO: + Edit makefile in source to point to H5Part and HDF5 installation + make + END diff --git a/examples/h5ff_client_M6.2_demo.c b/examples/h5ff_client_M6.2_demo.c index d1d5561..de22bdc 100644 --- a/examples/h5ff_client_M6.2_demo.c +++ b/examples/h5ff_client_M6.2_demo.c @@ -73,6 +73,9 @@ int main( int argc, char **argv ) { ret = H5Pset_fapl_iod( fapl_id, MPI_COMM_WORLD, MPI_INFO_NULL ); ASSERT_RET;
file_id = H5Fcreate_ff( file_name, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id, H5_EVENT_STACK_NULL ); assert( file_id >= 0 );
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/* Acquire a read handle for container version 1 and create a read context. */
version = 1;
fprintf( stderr, "M6.2-r%d: Acquire read context for container version %d (Step 3)\n", my_rank, (int)version );
@@ -134,6 +137,9 @@ int main( int argc, char **argv ) { fprintf( stderr, "M6.2-r%d: 2nd call to print container contents (Step 6)\n", my_rank );
if (verbose) print_container_contents( file_id, rc_id1, "/", my_rank );
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/* Acquire a read handle for container version 2 and create a read context. */
version = 2;
fprintf( stderr, "M6.2-r%d: Try to acquire read context for cv %d (Step 7)\n", my_rank, (int)version );
@@ -235,6 +241,9 @@ int main( int argc, char **argv ) { fprintf( stderr, "M6.2-r%d: 4th call to print container contents (Step 11)\n", my_rank );
if (verbose) print_container_contents( file_id, rc_id2, "/", my_rank ); ASSERT_RET;
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
version = 3;
fprintf( stderr, "M6.2-r%d: Try to acquire read context for cv %d (Step 12)\n", my_rank, (int)version );
H5E_BEGIN_TRY {
@@ -354,6 +363,9 @@ int main( int argc, char **argv ) { append_dataset2( file_id, "/DC", tr_id4, rc_id3, "/", my_rank, tr_num4 );
}
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/* Abort - one or more processes should be able to abort the Transaction with the same effect. */
if ( abort4 ) {
/* All ranks call TRabort; the order of actual calls is not determined by the code.
@@ -361,13 +373,17 @@ int main( int argc, char **argv ) { ret = H5TRabort( tr_id4, H5_EVENT_STACK_NULL );
fprintf( stderr, "M6.2-r%d: ABORT tr %d (Step 15b - abort) - %s\n", my_rank, (int)tr_num4, STATUS );
}
-
- /* Finish and commit transaction 4, causing the updates to appear in container version 4. */
- ret = H5TRfinish( tr_id4, H5P_DEFAULT, NULL, H5_EVENT_STACK_NULL );
- fprintf( stderr, "M6.2-r%d: Finish and commit tr %d (Step 15b - end) - %s\n", my_rank, (int)tr_num4, STATUS );
+ else {
+ /* Finish and commit transaction 4, causing the updates to appear in container version 4. */
+ ret = H5TRfinish( tr_id4, H5P_DEFAULT, NULL, H5_EVENT_STACK_NULL );
+ fprintf( stderr, "M6.2-r%d: Finish and commit tr %d (Step 15b - end) - %s\n", my_rank, (int)tr_num4, STATUS );
+ }
ret = H5TRclose( tr_id4 ); ASSERT_RET;
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/* Get read context for CV 4, then print the contents of container */
/* Limit the number of tries, because if it was aborted we'll never get it */
int max_tries = 4;
@@ -417,6 +433,9 @@ int main( int argc, char **argv ) { ret = H5TRfinish( tr_id5, H5P_DEFAULT, NULL, H5_EVENT_STACK_NULL ); ASSERT_RET;
ret = H5TRclose( tr_id5 ); ASSERT_RET;
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/* Get read context for CV 5, then print the contents of the container */
version = 5;
fprintf( stderr, "M6.2-r%d: Try to acquire read context for cv %d (Step 15f)\n", my_rank, (int)version );
@@ -434,6 +453,9 @@ int main( int argc, char **argv ) { fprintf( stderr, "M6.2-r%d: 7th call to print container contents (Step 15g)\n", my_rank );
if (verbose) print_container_contents( file_id, rc_id5, "/", my_rank ); ASSERT_RET;
+ /* MSC */
+ MPI_Barrier( MPI_COMM_WORLD );
+
/*
* Get read context for CV 4.
* Should be there first time if Transaction 4 was finished & committed (because we know Transaction 5 is done)
|