diff --git a/scripts/dashboard/EnvironmentModules.cmake b/scripts/dashboard/EnvironmentModules.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..60328e38b6bad7b7bfa5b86854b3805444866efc
--- /dev/null
+++ b/scripts/dashboard/EnvironmentModules.cmake
@@ -0,0 +1,207 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# EnvironmentModules
+# ------------------
+#
+# Make environment module commands available to CMake scripts.  This module
+# is compatible with both Lua based Lmod and TCL based EnvironmentModules
+#
+# Module Command
+# ^^^^^^^^^^^^^^
+#
+# This module searched for the module command in the following variable:
+#
+# ::
+#
+#   MODULE_COMMAND - The low level module command to use.  Currently supported
+#                    are implementations are the Lua based Lmod and TCL based
+#                    EnvironmentModules.  The ENV{MODULESHOME} variable,
+#                    usually set by the module environment, is used as a hint
+#                    to locate the command.
+#
+# Provided Functions
+# ^^^^^^^^^^^^^^^^^^
+#
+# This module defines the following functions:
+#
+# ::
+#
+#   module(...)                 - Execute an arbitry module command
+#   module_swap(out_mod in_mod) - Swap out one currently loaded module for
+#                                 another
+#   module_list(out_var)        - Retrieve the currently loaded modules,
+#                                 making the output available as a properly
+#                                 formatted CMake ;list variable.
+#   module_avail(out_var)       - Retrieve the availabe modules that can be
+#                                 loaded, making the output available as a
+#                                 properly formatted CMake ;-seperated list
+#                                 variable.
+
+# Execute an aribitrary module command.  Usage:
+#   module(cmd arg1 ... argN)
+#     Process the given command and arguments as if they were passed
+#     directly to the module command in your shell environment.
+#   module(
+#     COMMAND cmd arg1 .. argN
+#     [OUTPUT_VARIABLE out_var]
+#     [RESULT_VARIABLE ret_var]
+#   )
+function(module)
+  if(NOT MODULE_COMMAND)
+    message(ERROR "Failed to process module command.  MODULE_COMMAND not found")
+    return()
+  endif()
+
+  set(options)
+  set(oneValueArgs OUTPUT_VARIABLE RESULT_VARIABLE)
+  set(multiValueArgs COMMAND)
+  cmake_parse_arguments(MOD_ARGS
+    "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}
+  )
+  if(NOT MOD_ARGS_COMMAND)
+    # If no explicit command argument was given, then treat the calling syntax
+    # as: module(cmd args...)
+    set(exec_cmd ${ARGV})
+  else()
+    set(exec_cmd ${MOD_ARGS_COMMAND})
+  endif()
+
+  if(MOD_ARGS_OUTPUT_VARIABLE)
+    set(err_var_args ERROR_VARIABLE err_var)
+   endif()
+
+  execute_process(
+    COMMAND mktemp -t module.cmake.XXXXXXXXXXXX
+    OUTPUT_VARIABLE tempfile_name
+  )
+  string(STRIP "${tempfile_name}" tempfile_name)
+
+  # If the $MODULESHOME/init/cmake file exists then assume that the CMake
+  # "shell" functionality exits
+  if(EXISTS "$ENV{MODULESHOME}/init/cmake")
+    execute_process(
+      COMMAND ${MODULE_COMMAND} cmake ${exec_cmd}
+      OUTPUT_FILE ${tempfile_name}
+      ${err_var_args}
+      RESULT_VARIABLE ret_var
+    )
+  else() # fallback to the sh shell and manually convert to CMake
+    execute_process(
+      COMMAND ${MODULE_COMMAND} sh ${exec_cmd}
+      OUTPUT_VARIABLE out_var
+      ${err_var_args}
+      RESULT_VARIABLE ret_var
+    )
+  endif()
+
+  # If we executed successfully then process and cleanup the temp file
+  if("${ret_var}" EQUAL 0)
+    # No CMake shell so we need to process the sh output into CMake code
+    if(NOT EXISTS "$ENV{MODULESHOME}/init/cmake")
+      file(WRITE ${tempfile_name} "")
+      string(REPLACE "\n" ";" out_var "${out_var}")
+      foreach(sh_cmd IN LISTS out_var)
+        if(sh_cmd MATCHES "^ *unset *([^ ]*)")
+          set(cmake_cmd "unset(ENV{${CMAKE_MATCH_1}})")
+        elseif(sh_cmd MATCHES "^ *export *([^ ]*)")
+          set(cmake_cmd "set(ENV{${CMAKE_MATCH_1}} \"\${${CMAKE_MATCH_1}}\")")
+        elseif(sh_cmd MATCHES " *([^ =]*) *= *(.*)")
+          set(var_name "${CMAKE_MATCH_1}")
+          set(var_value "${CMAKE_MATCH_2}")
+          if(var_value MATCHES "^\"(.*[^\\])\"")
+            # If it's in quotes, take the value as is
+            set(var_value "${CMAKE_MATCH_1}")
+          else()
+            # Otherwise, strip trailing spaces
+            string(REGEX REPLACE "([^\\])? +$" "\\1" var_value "${var_value}")
+          endif()
+          string(REPLACE "\\ " " " var_value "${var_value}")
+          set(cmake_cmd "set(${var_name} \"${var_value}\")")
+        else()
+          continue()
+        endif()
+        file(APPEND ${tempfile_name} "${cmake_cmd}\n")
+      endforeach()
+    endif()
+
+    # Process the change in environment variables
+    include(${tempfile_name})
+    file(REMOVE ${tempfile_name})
+  endif()
+
+  # Push the output back out to the calling scope
+  if(MOD_ARGS_OUTPUT_VARIABLE)
+    set(${MOD_ARGS_OUTPUT_VARIABLE} "${err_var}" PARENT_SCOPE)
+  endif()
+  if(MOD_ARGS_RESULT_VARIABLE)
+    set(${MOD_ARGS_RESULT_VARIABLE} ${ret_var} PARENT_SCOPE)
+  endif()
+endfunction(module)
+
+# Swap one module for another
+function(module_swap out_mod in_mod)
+  module(COMMAND -t swap ${out_mod} ${in_mod} OUTPUT_VARIABLE tmp_out)
+endfunction()
+
+# Retrieve the currently loaded modules
+function(module_list out_var)
+  cmake_policy(SET CMP0007 NEW)
+  module(COMMAND -t list OUTPUT_VARIABLE tmp_out)
+
+  # Convert output into a CMake list
+  string(REPLACE "\n" ";" ${out_var} "${tmp_out}")
+
+  # Remove title headers and empty entries
+  list(REMOVE_ITEM ${out_var} "No modules loaded")
+  if(${out_var})
+    list(FILTER ${out_var} EXCLUDE REGEX "^(.*:)?$")
+  endif()
+  list(FILTER ${out_var} EXCLUDE REGEX "^(.*:)?$")
+
+  set(${out_var} ${${out_var}} PARENT_SCOPE)
+endfunction()
+
+# Retrieve the list of available modules
+function(module_avail out_var)
+  cmake_policy(SET CMP0007 NEW)
+  module(COMMAND -t avail OUTPUT_VARIABLE tmp_out)
+
+  # Convert output into a CMake list
+  string(REPLACE "\n" ";" tmp_out "${tmp_out}")
+
+  set(${out_var})
+  foreach(MOD IN LISTS tmp_out)
+    # Remove directory entries and empty values
+    if(MOD MATCHES "^(.*:)?$")
+      continue()
+    endif()
+
+    # Convert default modules
+    if(MOD MATCHES "^(.*)/$" ) # "foo/"
+      list(APPEND ${out_var} ${CMAKE_MATCH_1})
+    elseif(MOD MATCHES "^((.*)/.*)\\(default\\)$") # "foo/1.2.3(default)"
+      list(APPEND ${out_var} ${CMAKE_MATCH_2})
+      list(APPEND ${out_var} ${CMAKE_MATCH_1})
+    else()
+      list(APPEND ${out_var} ${MOD})
+    endif()
+  endforeach()
+
+  set(${out_var} ${${out_var}} PARENT_SCOPE)
+endfunction()
+
+# Make sure our CMake is new enough
+if(CMAKE_VERSION VERSION_LESS 3.6)
+  message(FATAL_ERROR
+    "The EnvironmentModules interface requires at least CMake v3.6"
+  )
+endif()
+
+# Make sure we know where the underlying module command is
+find_program(MODULE_COMMAND
+  NAMES lmod modulecmd
+  HINTS ENV MODULESHOME
+  PATH_SUFFIXES libexec
+)
diff --git a/scripts/dashboard/common.cmake b/scripts/dashboard/common.cmake
index aa3649705e5fc695c27f5e36340e0756e0a9bb42..2f029d8b04f3c3694dd08e7d88a675735e299246 100644
--- a/scripts/dashboard/common.cmake
+++ b/scripts/dashboard/common.cmake
@@ -40,6 +40,8 @@
 #   dashboard_do_test      = True to enable the Test step
 #   dashboard_do_coverage  = True to enable coverage (ex: gcov)
 #   dashboard_do_memcheck  = True to enable memcheck (ex: valgrind)
+#   dashboard_do_submit    = Submit each step (ON)
+#   dashboard_do_submit_only = Only submit step results, do nto run them (OFF)
 
 #   CTEST_GIT_COMMAND     = path to git command-line client
 #   CTEST_BUILD_FLAGS     = build tool arguments (ex: -j2)
@@ -107,6 +109,14 @@ if(NOT DEFINED dashboard_fresh)
   endif()
 endif()
 
+if(NOT DEFINED dashboard_do_submit_only)
+  set(dashboard_do_submit_only FALSE)
+endif()
+
+if(NOT DEFINED dashboard_do_submit)
+  set(dashboard_do_submit TRUE)
+endif()
+
 if(NOT DEFINED CTEST_PROJECT_NAME)
   message(FATAL_ERROR "project-specific script including 'universal.cmake' should set CTEST_PROJECT_NAME")
 endif()
@@ -367,7 +377,9 @@ if(dashboard_fresh)
     dashboard_hook_start()
   endif()
   ctest_start(${dashboard_model} ${dashboard_track_arg})
-  ctest_submit(PARTS Start)
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Start)
+  endif()
   if(COMMAND dashboard_hook_started)
     dashboard_hook_started()
   endif()
@@ -377,85 +389,109 @@ endif()
 
 # Look for updates.
 if(dashboard_do_update)
-  if(COMMAND dashboard_hook_update)
-    dashboard_hook_update()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_update)
+      dashboard_hook_update()
+    endif()
+    message("Calling ctest_update...")
+    ctest_update(RETURN_VALUE count)
+    set(CTEST_CHECKOUT_COMMAND) # checkout on first iteration only
+    message("Found ${count} changed files")
   endif()
-  message("Calling ctest_update...")
-  ctest_update(RETURN_VALUE count)
-  set(CTEST_CHECKOUT_COMMAND) # checkout on first iteration only
-  message("Found ${count} changed files")
-
-  if(ADIOS_CTEST_SUBMIT_NOTES)
-    message("Submitting dashboard scripts as Notes")
-    # Send the main script as a note while submitting the Update part
-    set(CTEST_NOTES_FILES
-      "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}"
-      "${CMAKE_CURRENT_LIST_FILE}"
-    )
-    ctest_submit(PARTS Update Notes)
-  else()
-    message("Skipping notes submission for Update step")
-    ctest_submit(PARTS Update)
+
+  if(dashboard_do_submit)
+    if(ADIOS_CTEST_SUBMIT_NOTES)
+      message("Submitting dashboard scripts as Notes")
+      # Send the main script as a note while submitting the Update part
+      set(CTEST_NOTES_FILES
+        "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}"
+        "${CMAKE_CURRENT_LIST_FILE}"
+      )
+      ctest_submit(PARTS Update Notes)
+    else()
+      message("Skipping notes submission for Update step")
+      ctest_submit(PARTS Update)
+    endif()
   endif()
 endif()
 
 if(dashboard_do_configure)
-  if(COMMAND dashboard_hook_configure)
-    dashboard_hook_configure()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_configure)
+      dashboard_hook_configure()
+    endif()
+    message("Calling ctest_configure")
+    ctest_configure(${dashboard_configure_args})
   endif()
-  message("Calling ctest_configure")
-  ctest_configure(${dashboard_configure_args})
-  if(ADIOS_CTEST_SUBMIT_NOTES)
-    message("Submitting CMakeCache.txt as Notes")
-    set(CTEST_NOTES_FILES "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
-    ctest_submit(PARTS Configure Notes)
-  else()
-    message("Skipping notes submission for Configure step")
-    ctest_submit(PARTS Configure)
+  if(dashboard_do_submit)
+    if(ADIOS_CTEST_SUBMIT_NOTES)
+      message("Submitting CMakeCache.txt as Notes")
+      set(CTEST_NOTES_FILES "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
+      ctest_submit(PARTS Configure Notes)
+    else()
+      message("Skipping notes submission for Configure step")
+      ctest_submit(PARTS Configure)
+    endif()
   endif()
 endif()
 
 ctest_read_custom_files(${CTEST_BINARY_DIRECTORY})
 
 if(dashboard_do_build)
-  if(COMMAND dashboard_hook_build)
-    dashboard_hook_build()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_build)
+      dashboard_hook_build()
+    endif()
+    message("Calling ctest_build")
+    ctest_build()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Build)
   endif()
-  message("Calling ctest_build")
-  ctest_build()
-  ctest_submit(PARTS Build)
 endif()
 
 if(dashboard_do_test)
-  if(COMMAND dashboard_hook_test)
-    dashboard_hook_test()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_test)
+      dashboard_hook_test()
+    endif()
+    message("Calling ctest_test")
+    ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS)
+    if(${TEST_RESULTS} EQUAL 0)
+      message("ctest test results return value: ${TEST_RESULTS}")
+    else()
+      message(SEND_ERROR "Some tests failed")
+    endif()
   endif()
-  message("Calling ctest_test")
-  ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS)
-  if(${TEST_RESULTS} EQUAL 0)
-    message("ctest test results return value: ${TEST_RESULTS}")
-  else()
-    message(SEND_ERROR "Some tests failed")
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Test)
   endif()
-  ctest_submit(PARTS Test)
 endif()
 
 if(dashboard_do_coverage)
-  if(COMMAND dashboard_hook_coverage)
-    dashboard_hook_coverage()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_coverage)
+      dashboard_hook_coverage()
+    endif()
+    message("Calling ctest_coverage")
+    ctest_coverage()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Coverage)
   endif()
-  message("Calling ctest_coverage")
-  ctest_coverage()
-  ctest_submit(PARTS Coverage)
 endif()
 
 if(dashboard_do_memcheck)
-  if(COMMAND dashboard_hook_memcheck)
-    dashboard_hook_memcheck()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_memcheck)
+      dashboard_hook_memcheck()
+    endif()
+    message("Calling ctest_memcheck")
+    ctest_memcheck()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS MemCheck)
   endif()
-  message("Calling ctest_memcheck")
-  ctest_memcheck()
-  ctest_submit(PARTS MemCheck)
 endif()
 
 if(COMMAND dashboard_hook_end)
diff --git a/scripts/dashboard/nightly/summitdev-gcc-nompi.cmake b/scripts/dashboard/nightly/summitdev-gcc-nompi.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..26036323714c96597c2c03ebdf2d3ef5890a7726
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-gcc-nompi.cmake
@@ -0,0 +1,35 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 10)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_GCC-7.1.0_NoMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load gcc/7.1.0)
+module(load hdf5)
+
+set(ENV{CC}  gcc)
+set(ENV{CXX} g++)
+set(ENV{FC}  gfortran)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+#ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev-gcc-spectrum.cmake b/scripts/dashboard/nightly/summitdev-gcc-spectrum.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..2f295be576cb39e00d2a882faa737ec9dc4a0e3a
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-gcc-spectrum.cmake
@@ -0,0 +1,41 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_GCC-7.1.0_SpectrumMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load gcc/7.1.0)
+module(load spectrum-mpi)
+module(load lsf-tools)
+module(load hdf5)
+
+set(ENV{CC}  gcc)
+set(ENV{CXX} g++)
+set(ENV{FC}  gfortran)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+
+MPIEXEC_EXECUTABLE:FILEPATH=jsrun
+MPIEXEC_MAX_NUMPROCS:STRING=
+MPIEXEC_NUMPROC_FLAG:STRING=-n4;-r2;-a10
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev-pgi-nompi.cmake b/scripts/dashboard/nightly/summitdev-pgi-nompi.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..03a69494784c808bd5bf80f0f689c52cd743348f
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-pgi-nompi.cmake
@@ -0,0 +1,35 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 10)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_PGI-17.9_NoMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load pgi/17.9)
+module(load hdf5)
+
+set(ENV{CC}  pgcc)
+set(ENV{CXX} pgc++)
+set(ENV{FC}  pgfortran)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+#ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev-pgi-spectrum.cmake b/scripts/dashboard/nightly/summitdev-pgi-spectrum.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..964a946b791d3710b8deab4f1f307e6c1e393a73
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-pgi-spectrum.cmake
@@ -0,0 +1,41 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_PGI-17.9_SpectrumMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load pgi/17.9)
+module(load spectrum-mpi)
+module(load lsf-tools)
+module(load hdf5)
+
+set(ENV{CC}  pgcc)
+set(ENV{CXX} pgc++)
+set(ENV{FC}  pgfortran)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+
+MPIEXEC_EXECUTABLE:FILEPATH=jsrun
+MPIEXEC_MAX_NUMPROCS:STRING=
+MPIEXEC_NUMPROC_FLAG:STRING=-n4;-r2;-a10
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf b/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf
new file mode 100755
index 0000000000000000000000000000000000000000..c900985efc7bdcd18aafb5d4c2ca7fbd7239fa26
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf
@@ -0,0 +1,25 @@
+#!/bin/bash
+#BSUB -P CSC143SUMMITDEV
+#BSUB -W 01:00
+#BSUB -nnodes 2
+
+module purge
+module load git cmake
+
+CTEST=$(which ctest)
+SCRIPT_DIR=${PWD}/source/scripts/dashboard/nightly
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-gcc-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-xl-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-pgi-spectrum.log
diff --git a/scripts/dashboard/nightly/summitdev-xl-nompi.cmake b/scripts/dashboard/nightly/summitdev-xl-nompi.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e0f2f97e096d77b50e028250259b838b5676ba3f
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-xl-nompi.cmake
@@ -0,0 +1,35 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 10)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_XL-13.1.5_NoMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load xl)
+module(load hdf5)
+
+set(ENV{CC}  xlc)
+set(ENV{CXX} xlC)
+set(ENV{FC}  xlf)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+#ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev-xl-spectrum.cmake b/scripts/dashboard/nightly/summitdev-xl-spectrum.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..cf069b57fd7126b98c22bbb7eaead33bde7f27b8
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev-xl-spectrum.cmake
@@ -0,0 +1,41 @@
+# Client maintainer: chuck.atkins@kitware.com
+set(CTEST_SITE "SummitDev")
+set(CTEST_BUILD_CONFIGURATION Release)
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_FLAGS "-k -j10")
+set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
+
+set(CTEST_BUILD_NAME "Linux-EL7-PPC64LE_XL-13.1.5_SpectrumMPI")
+set(dashboard_model Nightly)
+set(CTEST_DASHBOARD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${CTEST_BUILD_NAME})
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/../EnvironmentModules.cmake)
+module(purge)
+module(load git)
+module(load xl)
+module(load spectrum-mpi)
+module(load lsf-tools)
+module(load hdf5)
+
+set(ENV{CC}  xlc)
+set(ENV{CXX} xlC)
+set(ENV{FC}  xlf)
+
+set(dashboard_cache "
+#ADIOS2_USE_ADIOS1:STRING=ON
+#ADIOS2_USE_BZip2:STRING=ON
+#ADIOS2_USE_DataMan:STRING=ON
+ADIOS2_USE_Fortran:STRING=ON
+#ADIOS2_USE_HDF5:STRING=ON
+ADIOS2_USE_MPI:STRING=ON
+#ADIOS2_USE_Python:STRING=ON
+#ADIOS2_USE_ZFP:STRING=ON
+#ADIOS2_USE_ZeroMQ:STRING=ON
+
+MPIEXEC_EXECUTABLE:FILEPATH=jsrun
+MPIEXEC_MAX_NUMPROCS:STRING=
+MPIEXEC_NUMPROC_FLAG:STRING=-n4;-r2;-a10
+")
+
+include(${CMAKE_CURRENT_LIST_DIR}/../adios_common.cmake)
diff --git a/scripts/dashboard/nightly/summitdev.sh b/scripts/dashboard/nightly/summitdev.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ad012f3631c9285bd735e25952ce74ce5163b0fe
--- /dev/null
+++ b/scripts/dashboard/nightly/summitdev.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+mkdir -p ${HOME}/dashboards/summitdev/adios2
+cd ${HOME}/dashboards/summitdev/adios2
+
+module purge
+module load git cmake lsf-tools
+
+CTEST=$(which ctest)
+
+if [ ! -d source/.git ]
+then
+  git clone https://github.com/ornladios/adios2.git source
+else
+  pushd source
+  git fetch --all -p
+  git checkout -f master
+  git pull --ff-only
+  popd
+fi
+SCRIPT_DIR=${PWD}/source/scripts/dashboard/nightly
+
+# First run the serial tests
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-nompi.cmake 2>&1 1>summitdev-gcc-nompi.log
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-nompi.cmake 2>&1 1>summitdev-xl-nompi.log
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-nompi.cmake 2>&1 1>summitdev-pgi-nompi.log
+
+# Now run the configure and build steps for the MPI tests
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_fresh=ON \
+  -Ddashboard_do_checkout=ON \
+  -Ddashboard_do_update=ON \
+  -Ddashboard_do_configure=ON \
+  -Ddashboard_do_build=ON 2>&1 1>summitdev-gcc-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_fresh=ON \
+  -Ddashboard_do_checkout=ON \
+  -Ddashboard_do_update=ON \
+  -Ddashboard_do_configure=ON \
+  -Ddashboard_do_build=ON 2>&1 1>summitdev-xl-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_fresh=ON \
+  -Ddashboard_do_checkout=ON \
+  -Ddashboard_do_update=ON \
+  -Ddashboard_do_configure=ON \
+  -Ddashboard_do_build=ON 2>&1 1>summitdev-pgi-spectrum.log
+
+# Now run the MPI tests in a batch job
+bsub -P CSC143SUMMITDEV -W 00:30 -nnodes 2 -I \
+  ${SCRIPT_DIR}/summitdev-spectrum-tests.lsf
+
+# Finaly submit the test results from the batch job
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit_only=ON 2>&1 1>>summitdev-gcc-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit_only=ON 2>&1 1>>summitdev-xl-spectrum.log
+
+${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \
+  -Ddashboard_full=OFF \
+  -Ddashboard_do_test=ON \
+  -Ddashboard_do_submit_only=ON 2>&1 1>>summitdev-pgi-spectrum.log