diff --git a/CTestScript.cmake b/CTestScript.cmake index 1fff0b56f09..03f21edc272 100644 --- a/CTestScript.cmake +++ b/CTestScript.cmake @@ -59,8 +59,18 @@ elseif (HOSTNAME MATCHES "^edison" OR HOSTNAME MATCHES "^hopper" OR HOSTNAME MATCHES "^nid") set (HOSTNAME_ID "nersc") +# Blue Waters at NCSA +elseif (HOSTNAME MATCHES "^h2ologin" ) + set (HOSTNAME_ID "ncsa") +# CGD local linux cluster +elseif (HOSTNAME MATCHES "^hobart") + set (HOSTNAME_ID "cgd") else () - set (HOSTNAME_ID "unknown") + if (CMAKE_SYSTEM_NAME MATCHES "Catamount") + set (HOSTNAME_ID "ncsa") + else () + set (HOSTNAME_ID "unknown") + endif () endif () ## -- Get system info @@ -122,6 +132,7 @@ set (ENV{PIO_DASHBOARD_BINARY_DIR} ${CTEST_BINARY_DIRECTORY}) ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) ## -- Start +message (" -- Hostname_id = ${HOSTNAME_ID}") message (" -- Start dashboard - ${CTEST_BUILD_NAME} --") ctest_start("${CTEST_SCRIPT_ARG}") diff --git a/README.md b/README.md index e3a3889177b..67a393adb0a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,15 @@ A high-level Parallel I/O Library for structured grid applications +## Website + +For complete documentation, see our website at [http://parallelio.github.io/ParallelIO/](http://parallelio.github.io/ParallelIO/). + +## Nightly Tests + +The results of our nightly tests on multiple platforms can be found on our +cdash site at [http://my.cdash.org/index.php?project=PIO](http://my.cdash.org/index.php?project=PIO). + ## Dependencies PIO can use NetCDF (version 4.3.3+) and/or PnetCDF (version 1.6.0+) for I/O. diff --git a/cmake/FindGPTL.cmake b/cmake/FindGPTL.cmake index 70bd5ec9588..c223c1b3461 100644 --- a/cmake/FindGPTL.cmake +++ b/cmake/FindGPTL.cmake @@ -46,29 +46,26 @@ foreach (GPTL_comp IN LISTS GPTL_FIND_VALID_COMPONENTS) if (NOT GPTL_${GPTL_comp}_FOUND) # Manually add the MPI include and library dirs to search paths - if (GPTL_comp STREQUAL C) - if (MPI_C_FOUND) - set (GPTL_${GPTL_comp}_PATHS ${MPI_C_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_C_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND GPTL_${GPTL_comp}_PATHS ${libdir}) - unset (libdir) - endforeach () - endif () - else () - if (MPI_Fortran_FOUND) - set (GPTL_${GPTL_comp}_PATHS ${MPI_Fortran_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_Fortran_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND GPTL_${GPTL_comp}_PATHS ${libdir}) - unset (libdir) - endforeach () - endif () + if (GPTL_comp STREQUAL C AND MPI_C_FOUND) + set (mpiincs ${MPI_C_INCLUDE_PATH}) + set (mpilibs ${MPI_C_LIBRARIES}) + set (mpifound ${MPI_C_FOUND}) + elseif (MPI_Fortran_FOUND) + set (mpiincs ${MPI_Fortran_INCLUDE_PATH}) + set (mpilibs ${MPI_Fortran_LIBRARIES}) + set (mpifound ${MPI_Fortran_FOUND}) endif () - + # Search for the package component - find_package_component(GPTL COMPONENT ${GPTL_comp} - PATHS ${GPTL_${GPTL_comp}_PATHS}) + if (mpifound) + initialize_paths (GPTL_${GPTL_comp}_PATHS + INCLUDE_DIRECTORIES ${mpiincs} + LIBRARIES ${mpilibs}) + find_package_component(GPTL COMPONENT ${GPTL_comp} + PATHS ${GPTL_${GPTL_comp}_PATHS}) + else () + find_package_component(GPTL COMPONENT ${GPTL_comp}) + endif () endif () diff --git a/cmake/FindHDF5.cmake b/cmake/FindHDF5.cmake index 120dcae0ca5..e918277b1ae 100644 --- a/cmake/FindHDF5.cmake +++ b/cmake/FindHDF5.cmake @@ -52,29 +52,26 @@ foreach (HDF5_comp IN LISTS HDF5_FIND_VALID_COMPONENTS) if (NOT HDF5_${HDF5_comp}_FOUND) # Manually add the MPI include and library dirs to search paths - if (HDF5_comp STREQUAL C OR HDF5_comp STREQUAL HL) - if (MPI_C_FOUND) - set (HDF5_${HDF5_comp}_PATHS ${MPI_C_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_C_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND HDF5_${HDF5_comp}_PATHS ${libdir}) - unset (libdir) - endforeach () - endif () - else () - if (MPI_Fortran_FOUND) - set (HDF5_${HDF5_comp}_PATHS ${MPI_Fortran_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_Fortran_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND HDF5_${HDF5_comp}_PATHS ${libdir}) - unset (libdir) - endforeach () - endif () + if ( (HDF5_comp STREQUAL C OR HDF5_comp STREQUAL HL) AND MPI_C_FOUND) + set (mpiincs ${MPI_C_INCLUDE_PATH}) + set (mpilibs ${MPI_C_LIBRARIES}) + set (mpifound ${MPI_C_FOUND}) + elseif (MPI_Fortran_FOUND) + set (mpiincs ${MPI_Fortran_INCLUDE_PATH}) + set (mpilibs ${MPI_Fortran_LIBRARIES}) + set (mpifound ${MPI_Fortran_FOUND}) endif () # Search for the package component - find_package_component(HDF5 COMPONENT ${HDF5_comp} - PATHS ${HDF5_${HDF5_comp}_PATHS}) + if (mpifound) + initialize_paths (HDF5_${HDF5_comp}_PATHS + INCLUDE_DIRECTORIES ${mpiincs} + LIBRARIES ${mpilibs}) + find_package_component(HDF5 COMPONENT ${HDF5_comp} + PATHS ${HDF5_${HDF5_comp}_PATHS}) + else () + find_package_component(HDF5 COMPONENT ${HDF5_comp}) + endif () # Continue only if found if (HDF5_${HDF5_comp}_FOUND) diff --git a/cmake/FindLIBZ.cmake b/cmake/FindLIBZ.cmake index 4175b136a53..8ebbaefeed8 100644 --- a/cmake/FindLIBZ.cmake +++ b/cmake/FindLIBZ.cmake @@ -22,18 +22,16 @@ define_package_component (LIBZ # SEARCH FOR PACKAGE if (NOT LIBZ_FOUND) - # Manually add the MPI include and library dirs to search paths + # Manually add the MPI include and library dirs to search paths + # and search for the package component if (MPI_C_FOUND) - set (LIBZ_PATHS ${MPI_C_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_C_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND LIBZ_PATHS ${libdir}) - unset (libdir) - endforeach () + initialize_paths (LIBZ_PATHS + INCLUDE_DIRECTORIES ${MPI_C_INCLUDE_PATH} + LIBRARIES ${MPI_C_LIBRARIES}) + find_package_component(LIBZ + PATHS ${LIBZ_PATHS}) + else () + find_package_component(LIBZ) endif () - - # Search for the package - find_package_component(LIBZ - PATHS ${LIBZ_PATHS}) endif () diff --git a/cmake/FindNetCDF.cmake b/cmake/FindNetCDF.cmake index f5473e6ebfb..118ab8a70ca 100644 --- a/cmake/FindNetCDF.cmake +++ b/cmake/FindNetCDF.cmake @@ -41,18 +41,16 @@ foreach (NCDFcomp IN LISTS NetCDF_FIND_VALID_COMPONENTS) if (NOT NetCDF_${NCDFcomp}_FOUND) # Manually add the MPI include and library dirs to search paths + # and search for the package component if (MPI_${NCDFcomp}_FOUND) - set (NetCDF_${NCDFcomp}_PATHS ${MPI_${NCDFcomp}_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_${NCDFcomp}_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND NetCDF_${NCDFcomp}_PATHS ${libdir}) - unset (libdir) - endforeach () + initialize_paths (NetCDF_${NCDFcomp}_PATHS + INCLUDE_DIRECTORIES ${MPI_${NCDFcomp}_INCLUDE_PATH} + LIBRARIES ${MPI_${NCDFcomp}_LIBRARIES}) + find_package_component(NetCDF COMPONENT ${NCDFcomp} + PATHS ${NetCDF_${NCDFcomp}_PATHS}) + else () + find_package_component(NetCDF COMPONENT ${NCDFcomp}) endif () - - # Search for the package component - find_package_component(NetCDF COMPONENT ${NCDFcomp} - PATHS ${NetCDF_${NCDFcomp}_PATHS}) # Continue only if component found if (NetCDF_${NCDFcomp}_FOUND) diff --git a/cmake/FindPnetCDF.cmake b/cmake/FindPnetCDF.cmake index e1c1c5c9ace..b87d245cd10 100644 --- a/cmake/FindPnetCDF.cmake +++ b/cmake/FindPnetCDF.cmake @@ -41,18 +41,16 @@ foreach (PNCDFcomp IN LISTS PnetCDF_FIND_VALID_COMPONENTS) if (NOT PnetCDF_${PNCDFcomp}_FOUND) # Manually add the MPI include and library dirs to search paths + # and search for the package component if (MPI_${PNCDFcomp}_FOUND) - set (PnetCDF_${PNCDFcomp}_PATHS ${MPI_${PNCDFcomp}_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_${PNCDFcomp}_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND PnetCDF_${PNCDFcomp}_PATHS ${libdir}) - unset (libdir) - endforeach () + initialize_paths (PnetCDF_${PNCDFcomp}_PATHS + INCLUDE_DIRECTORIES ${MPI_${PNCDFcomp}_INCLUDE_PATH} + LIBRARIES ${MPI_${PNCDFcomp}_LIBRARIES}) + find_package_component(PnetCDF COMPONENT ${PNCDFcomp} + PATHS ${PnetCDF_${PNCDFcomp}_PATHS}) + else () + find_package_component(PnetCDF COMPONENT ${PNCDFcomp}) endif () - - # Search for the package component - find_package_component(PnetCDF COMPONENT ${PNCDFcomp} - PATHS ${PnetCDF_${PNCDFcomp}_PATHS}) # Continue only if component found if (PnetCDF_${PNCDFcomp}_FOUND) diff --git a/cmake/FindSZIP.cmake b/cmake/FindSZIP.cmake index cc823fd72c8..e65cfe5fd68 100644 --- a/cmake/FindSZIP.cmake +++ b/cmake/FindSZIP.cmake @@ -22,18 +22,16 @@ define_package_component (SZIP # SEARCH FOR PACKAGE if (NOT SZIP_FOUND) - # Manually add the MPI include and library dirs to search paths + # Manually add the MPI include and library dirs to search paths + # and search for the package component if (MPI_C_FOUND) - set (SZIP_PATHS ${MPI_C_INCLUDE_PATH}) - foreach (lib IN LISTS MPI_C_LIBRARIES) - get_filename_component (libdir ${lib} PATH) - list (APPEND SZIP_PATHS ${libdir}) - unset (libdir) - endforeach () + initialize_paths (SZIP_PATHS + INCLUDE_DIRECTORIES ${MPI_C_INCLUDE_PATH} + LIBRARIES ${MPI_C_LIBRARIES}) + find_package_component(SZIP + PATHS ${SZIP_PATHS}) + else () + find_package_component(SZIP) endif () - - # Search for the package - find_package_component(SZIP - PATHS ${SZIP_PATHS}) endif () diff --git a/cmake/LibFind.cmake b/cmake/LibFind.cmake index bdf6140bee7..7da13e32596 100644 --- a/cmake/LibFind.cmake +++ b/cmake/LibFind.cmake @@ -122,6 +122,46 @@ function (find_valid_components PKG) endfunction () +#______________________________________________________________________________ +# - Initialize a list of paths from a list of includes and libraries +# +# Input: +# INCLUDE_DIRECTORIES +# LIBRARIES +# +# Ouput: +# ${PATHLIST} +# +function (initialize_paths PATHLIST) + + # Parse the input arguments + set (multiValueArgs INCLUDE_DIRECTORIES LIBRARIES) + cmake_parse_arguments (INIT "" "" "${multiValueArgs}" ${ARGN}) + + set (paths) + foreach (inc IN LISTS INIT_INCLUDE_DIRECTORIES) + list (APPEND paths ${inc}) + get_filename_component (dname ${inc} NAME) + if (dname MATCHES "include") + get_filename_component (prefx ${inc} PATH) + list (APPEND paths ${prefx}) + endif () + endforeach () + foreach (lib IN LISTS INIT_LIBRARIES) + get_filename_component (libdir ${lib} PATH) + list (APPEND paths ${libdir}) + get_filename_component (dname ${libdir} PATH) + if (dname MATCHES "lib") + get_filename_component (prefx ${libdir} PATH) + list (APPEND paths ${prefx}) + endif () + endforeach () + + set (${PATHLIST} ${paths} PARENT_SCOPE) + +endfunction () + + #______________________________________________________________________________ # - Basic find package macro for a specific component # @@ -272,20 +312,14 @@ function (find_package_component PKG) set (${PKGCOMP}_INCLUDE_DIRS ${${PKGCOMP}_INCLUDE_DIR}) set (${PKGCOMP}_LIBRARIES ${${PKGCOMP}_LIBRARY}) endif () - - # Set cache variables - set (${PKGCOMP}_FOUND ${${PKGCOMP}_FOUND} - CACHE BOOL "Whether the ${PKGCOMP} package was found" FORCE) - set (${PKGCOMP}_INCLUDE_DIR ${${PKGCOMP}_INCLUDE_DIR} - CACHE PATH "Directory containing the ${PKGCOMP} include file" FORCE) - set (${PKGCOMP}_INCLUDE_DIRS ${${PKGCOMP}_INCLUDE_DIRS} - CACHE STRING "Include path for the ${PKGCOMP} package" FORCE) - set (${PKGCOMP}_LIBRARY ${${PKGCOMP}_LIBRARY} - CACHE FILEPATH "Location of the ${PKGCOMP} library file" FORCE) - set (${PKGCOMP}_LIBRARIES ${${PKGCOMP}_LIBRARIES} - CACHE STRING "Libraries for the ${PKGCOMP} package" FORCE) - set (${PKGCOMP}_IS_SHARED ${${PKGCOMP}_IS_SHARED} - CACHE BOOL "Whether the ${PKGCOMP} library is dynamic" FORCE) + + # Set variables in parent scope + set (${PKGCOMP}_FOUND ${${PKGCOMP}_FOUND} PARENT_SCOPE) + set (${PKGCOMP}_INCLUDE_DIR ${${PKGCOMP}_INCLUDE_DIR} PARENT_SCOPE) + set (${PKGCOMP}_INCLUDE_DIRS ${${PKGCOMP}_INCLUDE_DIRS} PARENT_SCOPE) + set (${PKGCOMP}_LIBRARY ${${PKGCOMP}_LIBRARY} PARENT_SCOPE) + set (${PKGCOMP}_LIBRARIES ${${PKGCOMP}_LIBRARIES} PARENT_SCOPE) + set (${PKGCOMP}_IS_SHARED ${${PKGCOMP}_IS_SHARED} PARENT_SCOPE) endif () diff --git a/cmake/LibMPI.cmake b/cmake/LibMPI.cmake index 607f38b9f5a..401c8ae228c 100644 --- a/cmake/LibMPI.cmake +++ b/cmake/LibMPI.cmake @@ -35,6 +35,11 @@ function (platform_name RETURN_VARIABLE) SITENAME MATCHES "^hopper") set (${RETURN_VARIABLE} "nersc" PARENT_SCOPE) + + # NCSA Machine (Blue Waters) + elseif (SITENAME MATCHES "^h2ologin") + + set (${RETURN_VARIABLE} "ncsa" PARENT_SCOPE) else () diff --git a/cmake/mpiexec.ncsa b/cmake/mpiexec.ncsa new file mode 100755 index 00000000000..2bb0d1c8468 --- /dev/null +++ b/cmake/mpiexec.ncsa @@ -0,0 +1,12 @@ +#!/bin/bash +# +# Arguments: +# +# $1 - Number of MPI Tasks +# $2+ - Executable and its arguments +# + +NP=$1 +shift + +aprun -n $NP $@ diff --git a/ctest/CTestEnvironment-cgd.cmake b/ctest/CTestEnvironment-cgd.cmake new file mode 100644 index 00000000000..203e543686c --- /dev/null +++ b/ctest/CTestEnvironment-cgd.cmake @@ -0,0 +1,17 @@ +#============================================================================== +# +# This file sets the environment variables needed to configure and build +# on the NCAR CGD cluster Hobart +# +#============================================================================== + +# Assume all package locations (NetCDF, PnetCDF, HDF5, etc) are already +# set with existing environment variables: NETCDF, PNETCDF, HDF5, etc. + +# Define the extra CMake configure options +set (CTEST_CONFIGURE_OPTIONS "-DCMAKE_VERBOSE_MAKEFILE=TRUE -DPNETCDF_DIR=$ENV{PNETCDF_PATH} -DNETCDF_DIR=$ENV{NETCDF_PATH}") + +# If MPISERIAL environment variable is set, then enable MPISERIAL +if (DEFINED ENV{MPISERIAL}) + set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DPIO_USE_MPISERIAL=ON") +endif () diff --git a/ctest/CTestEnvironment-ncsa.cmake b/ctest/CTestEnvironment-ncsa.cmake new file mode 100644 index 00000000000..706946ec2bc --- /dev/null +++ b/ctest/CTestEnvironment-ncsa.cmake @@ -0,0 +1,22 @@ +#============================================================================== +# +# This file sets the environment variables needed to configure and build +# on the NCSA systems +# (Blue Waters). +# +#============================================================================== + +# Assume all package locations (NetCDF, PnetCDF, HDF5, etc) are already +# set with existing environment variables: NETCDF, PNETCDF, HDF5, etc. + +# Define the extra CMake configure options +set (CTEST_CONFIGURE_OPTIONS "-DCMAKE_VERBOSE_MAKEFILE=TRUE") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DPREFER_STATIC=TRUE") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DNetCDF_PATH=$ENV{NETCDF_DIR}") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DPnetCDF_PATH=$ENV{PARALLEL_NETCDF_DIR}") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DHDF5_PATH=$ENV{HDF5_DIR}") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DMPI_C_INCLUDE_PATH=$ENV{MPICH_DIR}/include") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DMPI_Fortran_INCLUDE_PATH=$ENV{MPICH_DIR}/include") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DMPI_C_LIBRARIES=$ENV{MPICH_DIR}/lib/libmpich.a") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DMPI_Fortran_LIBRARIES=$ENV{MPICH_DIR}/lib/libmpichf90.a") +set (CTEST_CONFIGURE_OPTIONS "${CTEST_CONFIGURE_OPTIONS} -DCMAKE_SYSTEM_NAME=Catamount") diff --git a/ctest/runcdash-cgd-nag.sh b/ctest/runcdash-cgd-nag.sh new file mode 100755 index 00000000000..86a9393d919 --- /dev/null +++ b/ctest/runcdash-cgd-nag.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# Get/Generate the Dashboard Model +if [ $# -eq 0 ]; then + model=Experimental +else + model=$1 +fi + +module purge +module load compiler/nag/6.0 +module load tool/parallel-netcdf/1.6.1/nag/openmpi + +export CC=mpicc +export FC=mpif90 +export PIO_DASHBOARD_SITE="CGD" +export PIO_DASHBOARD_ROOT=/scratch/cluster/jedwards/dashboard +export PIO_COMPILER_ID=Nag-6.0-gcc-`gcc --version | head -n 1 | cut -d' ' -f3` + +if [ ! -d "$PIO_DASHBOARD_ROOT" ]; then + mkdir "$PIO_DASHBOARD_ROOT" +fi +cd "$PIO_DASHBOARD_ROOT" + +if [ ! -d src ]; then + git clone https://github.com/PARALLELIO/ParallelIO src +fi + +cd src + +ctest -S CTestScript.cmake,${model} -VV diff --git a/ctest/runctest-cgd.sh b/ctest/runctest-cgd.sh new file mode 100755 index 00000000000..d662485004e --- /dev/null +++ b/ctest/runctest-cgd.sh @@ -0,0 +1,42 @@ +#!/bin/sh +#============================================================================== +# +# This script defines how to run CTest on the Argonne Leadership Computing +# Facility systems (mira/cetus/vesta/cooley). +# +# This assumes the CTest model name (e.g., "Nightly") is passed to it when +# run. +# +#============================================================================== + +# Get the CTest script directory +scrdir=$1 + +# Get the CTest model name +model=$2 + +# Write QSUB submission script with the test execution command +echo "#!/bin/sh" > runctest.sh +echo "CTESTCMD=`which ctest`" >> runctest.sh +echo "\$CTESTCMD -S ${scrdir}/CTestScript-Test.cmake,${model} -V" >> runctest.sh + +# Make the QSUB script executable +chmod +x runctest.sh + +# Submit the job to the queue +jobid=`qsub -l nodes=1:ppn=4 \ + --env PIO_DASHBOARD_SITE=$PIO_DASHBOARD_SITE \ + --env PIO_DASHBOARD_BUILD_NAME=$PIO_DASHBOARD_BUILD_NAME \ + --env PIO_DASHBOARD_SOURCE_DIR=$PIO_DASHBOARD_SOURCE_DIR \ + --env PIO_DASHBOARD_BINARY_DIR=$PIO_DASHBOARD_BINARY_DIR \ + runctest.sh` + +# Wait for the job to complete before exiting +while true; do + status=`qstat $jobid` + if [ "$status" == "" ]; then + break + else + sleep 10 + fi +done diff --git a/ctest/runctest-ncsa.sh b/ctest/runctest-ncsa.sh new file mode 100755 index 00000000000..c3cd75e3001 --- /dev/null +++ b/ctest/runctest-ncsa.sh @@ -0,0 +1,39 @@ +#!/bin/sh +#============================================================================== +# +# This script defines how to run CTest on the National Center for +# Supercomputing Applications system (blue waters). +# +# This assumes the CTest model name (e.g., "Nightly") is passed to it when +# run. +# +#============================================================================== + +# Get the CTest script directory +scrdir=$1 + +# Get the CTest model name +model=$2 + +# Write QSUB submission script with the test execution command +echo "#!/bin/sh" > runctest.pbs +echo "#PBS -q debug" >> runctest.pbs +echo "#PBS -l mppwidth=24" >> runctest.pbs +echo "#PBS -l walltime=00:20:00" >> runctest.pbs +echo "#PBS -v PIO_DASHBOARD_SITE,PIO_DASHBOARD_BUILD_NAME,PIO_DASHBOARD_SOURCE_DIR,PIO_DASHBOARD_BINARY_DIR" >> runctest.pbs +echo "cd \$PBS_O_WORKDIR" >> runctest.pbs +echo "CTEST_CMD=`which ctest`" >> runctest.pbs +echo "\$CTEST_CMD -S ${scrdir}/CTestScript-Test.cmake,${model} -V" >> runctest.pbs + +# Submit the job to the queue +jobid=`qsub runctest.pbs` + +# Wait for the job to complete before exiting +while true; do + status=`qstat $jobid` + if [ "$status" == "" ]; then + break + else + sleep 10 + fi +done diff --git a/doc/source/mach_walkthrough.txt b/doc/source/mach_walkthrough.txt index be53d6c3648..e36b9ccd84b 100644 --- a/doc/source/mach_walkthrough.txt +++ b/doc/source/mach_walkthrough.txt @@ -191,7 +191,50 @@ Building PIO requires running the CMake configure and then make. In the PIO_buil ### Blue Waters ### -Instructions to come. +