mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
Add more specific batch scripts.
Add script raybsub to handle submitting .lsf files on ray with bsub < script.lsf syntax that we couldn't handle with CMake. Add hpc-cmake-tgz option for bin/release.
This commit is contained in:
parent
252beb50b6
commit
bae744199b
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
#SBATCH -C knl,quad,cache
|
||||
#SBATCH -C haswell
|
||||
#SBATCH --nodes=1
|
||||
#SBATCH -t 00:30:00
|
||||
#SBATCH --mail-type=BEGIN,END,FAIL
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
#SBATCH -C knl,quad, cache
|
||||
#SBATCH -C haswell
|
||||
#SBATCH --nodes=1
|
||||
#SBATCH -t 00:30:00
|
||||
#SBATCH --mail-type=BEGIN,END,FAIL
|
||||
|
17
bin/batch/cori_knl_ctestP.sl.in.cmake
Normal file
17
bin/batch/cori_knl_ctestP.sl.in.cmake
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
#SBATCH -C knl,quad,cache
|
||||
#SBATCH --nodes=1
|
||||
#SBATCH -t 00:30:00
|
||||
#SBATCH --mail-type=BEGIN,END,FAIL
|
||||
##SBATCH --mail-user=<username>@sandia.gov
|
||||
#SBATCH --export=ALL
|
||||
#SBATCH --job-name=h5_ctestP
|
||||
|
||||
cd @HDF5_BINARY_DIR@
|
||||
CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM|ph5example -E t_cache_image -C Release -T test"
|
||||
|
||||
echo "Run $CMD. Test output will be in build/ctestP.out"
|
||||
$CMD >& ctestP.out
|
||||
echo "Done running $CMD"
|
||||
|
16
bin/batch/cori_knl_ctestS.sl.in.cmake
Normal file
16
bin/batch/cori_knl_ctestS.sl.in.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
#SBATCH -C knl,quad, cache
|
||||
#SBATCH --nodes=1
|
||||
#SBATCH -t 00:30:00
|
||||
#SBATCH --mail-type=BEGIN,END,FAIL
|
||||
##SBATCH --mail-user=<username>@sandia.gov
|
||||
#SBATCH --export=ALL
|
||||
#SBATCH --job-name=h5_ctestS
|
||||
|
||||
cd @HDF5_BINARY_DIR@
|
||||
CMD="ctest . -E TEST_PAR|H5DIFF|PERFORM|ph5example -C Release -j 32 -T test"
|
||||
|
||||
echo "Run $CMD. Test output will be in build/ctestS.out"
|
||||
$CMD >& ctestS.out
|
||||
echo "Done running $CMD"
|
7
bin/batch/raybsub
Normal file
7
bin/batch/raybsub
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/tcsh
|
||||
|
||||
# ray.llnl.gov requires a '<' with bsub for submitting .lsf batch jobs.
|
||||
# CMake is reluctant to pass the '<', so we put it in this script and use
|
||||
# the script to submit the bsub command on ray.
|
||||
|
||||
bsub < $1
|
102
bin/release
102
bin/release
@ -55,13 +55,21 @@ for compressing the resulting tar archive (if none are given then
|
||||
|
||||
tar -- use tar and don't do any compressing.
|
||||
gzip -- use gzip with "-9" and append ".gz" to the output name.
|
||||
bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name.
|
||||
zip -- convert all text files to DOS style and form a zip file for Windows use.
|
||||
cmake-tgz -- create a tar file using the gzip default level with a build-unix.sh
|
||||
command file and all other CMake files needed to build HDF5 source
|
||||
using CMake on unix machines.
|
||||
bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name.
|
||||
zip -- convert all text files to DOS style and form a zip file for Windows use.
|
||||
cmake-zip -- convert all text files to DOS style and create a zip file inluding cmake
|
||||
scripts and .bat files to build HDF5 source using CMake on Windows.
|
||||
hpc-cmake-tgz
|
||||
-- create a tar file using the gzip default level with a build-unix.sh
|
||||
command file and all other CMake files needed to build HDF5 source
|
||||
using CMake on unix machines, with HDF5options.cmake files for serial
|
||||
and parallel builds on machines requiring batch jobs to run tests.
|
||||
The default is for parallel build, with serial only build by changing
|
||||
the HDF5options.cmake symlink to ser-HDF5options.cmake. More
|
||||
information is available in the README_HPC file.
|
||||
doc -- produce the latest doc tree in addition to the archive.
|
||||
|
||||
An md5 checksum is produced for each archive created and stored in the md5 file.
|
||||
@ -256,7 +264,7 @@ tar2cmakezip()
|
||||
}
|
||||
|
||||
# Function name: tar2cmaketgz
|
||||
# Convert the release tarball to a Windows zipball with files to run CMake build.
|
||||
# Convert the release tarball to a gzipped tar file with files to run CMake build.
|
||||
#
|
||||
# Programmer: Larry Knox
|
||||
# Creation date: 2017-02-20
|
||||
@ -330,6 +338,94 @@ tar2cmaketgz()
|
||||
rm -rf $cmgztmpdir
|
||||
}
|
||||
|
||||
# Function name: tar2hpccmaketgz
|
||||
# Convert the release tarball to a gzipped tarfile with files to run CMake build
|
||||
# and HDF5options.cmake files for parallel or serial only builds where build
|
||||
# tests are run on compute nodes using batch scripts.
|
||||
#
|
||||
# Programmer: Larry Knox
|
||||
# Creation date: 2019-01-28
|
||||
#
|
||||
# Modifications
|
||||
#
|
||||
# Steps:
|
||||
# 1. untar the tarball in a temporary directory;
|
||||
# Note: do this in a temporary directory to avoid changing
|
||||
# the original source directory which may be around.
|
||||
# 2. add build-unix.sh script.
|
||||
# 3. add SZIP.tar.gz, ZLib.tar.gz and cmake files to top level directory.
|
||||
# 4. create gzipped tar file with these contents:
|
||||
# build-unix.sh script
|
||||
# hdf5-<version> source code directory extracted from tar file
|
||||
# CTestScript.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts
|
||||
# HDF5config.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts
|
||||
# HDF5options.cmake cmake file copied from <hdf5 source code>/config/cmake/scripts
|
||||
# SZip.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake
|
||||
# ZLib.tar.gz copied from /mnt/scr1/pre-release/hdf5/CMake
|
||||
#
|
||||
# 5. For HPC-CMake tgz file the following are also needed in the top-level directory:
|
||||
# README_HPC copied from release_docs
|
||||
# ser-HDF5options.cmake copied from <hdf5 source code>/config/cmake/scripts/HPC
|
||||
# par-HDF5options.cmake copied from <hdf5 source code>/config/cmake/scripts/HPC
|
||||
# HDF5options.cmake symlink to par-HDF5options.cmake
|
||||
#
|
||||
|
||||
# Parameters:
|
||||
# $1 version
|
||||
# $2 release tarball
|
||||
# $3 output zipball file name
|
||||
#
|
||||
# Returns 0 if successful; 1 otherwise
|
||||
#
|
||||
# need function to create another temporary directory, extract the
|
||||
# $tmpdir/$HDF5_VERS.tar into it, create build-unix.sh,
|
||||
# add CTestScript.cmake, HDF5config.cmake, SZIP.tar.gz
|
||||
# ZLib.tar.gz, HDF5 examples, and then tar.gz it.
|
||||
tar2hpccmaketgz()
|
||||
{
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "usage: tar2cmaketgz <tarfilename> <tgzfilename>"
|
||||
return 1
|
||||
fi
|
||||
cmgztmpdir=/tmp/cmgztmpdir$$
|
||||
cmgztmpsubdir=$cmgztmpdir/CMake-$HDF5_VERS
|
||||
mkdir -p $cmgztmpsubdir
|
||||
version=$1
|
||||
tarfile=$2
|
||||
tgzfile=$3
|
||||
|
||||
# step 1: untar tarball in cmgztmpdir
|
||||
(cd $cmgztmpsubdir; tar xf -) < $tarfile
|
||||
# sanity check
|
||||
if [ ! -d $cmgztmpsubdir/$version ]; then
|
||||
echo "untar did not create $cmgztmpsubdir/$version source dir"
|
||||
# cleanup
|
||||
rm -rf $cmgztmpdir
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
# step 2: add build-unix.sh script
|
||||
(cd $cmgztmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix -C Release -V -O hdf5.log" > build-unix.sh; chmod 755 build-unix.sh)
|
||||
|
||||
# step 3: add SZIP.tar.gz, ZLib.tar.gz and cmake files
|
||||
cp /mnt/scr1/pre-release/hdf5/CMake/SZip.tar.gz $cmgztmpsubdir
|
||||
cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmgztmpsubdir
|
||||
cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-1.10.10-Source.tar.gz $cmgztmpsubdir
|
||||
cp $cmgztmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmgztmpsubdir
|
||||
cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmgztmpsubdir
|
||||
cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5options.cmake $cmgztmpsubdir
|
||||
|
||||
cp $cmgztmpsubdir/$version/release_docs/README_HPC $cmgztmpsubdir
|
||||
cp $cmgztmpsubdir/$version/config/cmake/scripts/HPC/ser-HDF5options.cmake $cmgztmpsubdir
|
||||
cp $cmgztmpsubdir/$version/config/cmake/scripts/HPC/par-HDF5options.cmake $cmgztmpsubdir
|
||||
(cd $cmgztmpsubdir; ln -s par-HDF5options.cmake HDF5options.cmake)
|
||||
tar czf $DEST/CMake-$HDF5_VERS.tar.gz -C $cmgztmpdir . || exit 1
|
||||
|
||||
# cleanup
|
||||
rm -rf $cmgztmpdir
|
||||
}
|
||||
|
||||
# This command must be run at the top level of the hdf5 source directory.
|
||||
# Verify this requirement.
|
||||
if [ ! \( -f configure.ac -a -f bin/release \) ]; then
|
||||
|
@ -277,7 +277,11 @@ message (STATUS "Dashboard script configuration:\n${vars}\n")
|
||||
ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
|
||||
else ()
|
||||
file(STRINGS ${CTEST_BINARY_DIRECTORY}/Testing/TAG TAG_CONTENTS REGEX "^2([0-9]+)[-]([0-9]+)$")
|
||||
execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_NAME})
|
||||
if ("${LOCAL_BATCH_SCRIPT_COMMAND}" STREQUAL "raybsub")
|
||||
execute_process (COMMAND ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_NAME})
|
||||
else ()
|
||||
execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_NAME})
|
||||
endif ()
|
||||
message(STATUS "Check for existence of ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml")
|
||||
execute_process(COMMAND ls ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
|
||||
while(result)
|
||||
@ -292,7 +296,11 @@ message (STATUS "Dashboard script configuration:\n${vars}\n")
|
||||
file (RENAME ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/SerialTest.xml)
|
||||
file (RENAME ${CTEST_BINARY_DIRECTORY}/Testing/Temporary/LastTest_${TAG_CONTENTS}.log ${CTEST_BINARY_DIRECTORY}/Testing/Temporary/LastTest_${TAG_CONTENTS}_Serial.log)
|
||||
unset(result CACHE)
|
||||
execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME})
|
||||
if ("${LOCAL_BATCH_SCRIPT_COMMAND}" STREQUAL "raybsub")
|
||||
execute_process (COMMAND ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME})
|
||||
else ()
|
||||
execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME})
|
||||
endif ()
|
||||
message(STATUS "Check for existence of ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml")
|
||||
execute_process(COMMAND ls ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
|
||||
while(result)
|
||||
|
@ -944,6 +944,12 @@ if (BUILD_SHARED_LIBS)
|
||||
endif ()
|
||||
|
||||
if (LOCAL_BATCH_TEST)
|
||||
if ("${LOCAL_BATCH_SCRIPT_COMMAND}" STREQUAL "raybsub")
|
||||
configure_file (
|
||||
${HDF5_SOURCE_DIR}/bin/batch/${LOCAL_BATCH_SCRIPT_COMMAND}
|
||||
${HDF5_BINARY_DIR}/${LOCAL_BATCH_SCRIPT_COMMAND} ESCAPE_QUOTES @ONLY
|
||||
)
|
||||
endif ()
|
||||
if (LOCAL_BATCH_SCRIPT_NAME)
|
||||
configure_file (
|
||||
${HDF5_SOURCE_DIR}/bin/batch/${LOCAL_BATCH_SCRIPT_NAME}.in.cmake
|
||||
|
Loading…
Reference in New Issue
Block a user