Skip to content

Commit

Permalink
Merge branch 'develop' into feature/udpating-answers-instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
gardner48 authored Nov 3, 2023
2 parents 2b6b454 + 15071ae commit 5b457a3
Show file tree
Hide file tree
Showing 33 changed files with 740 additions and 243 deletions.
10 changes: 9 additions & 1 deletion .github/workflows/double-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
- name: Archive build files from failed build
uses: actions/[email protected]
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/[email protected]
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/output
10 changes: 9 additions & 1 deletion .github/workflows/extended-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
- name: Archive build files from failed build
uses: actions/[email protected]
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/[email protected]
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/output
10 changes: 9 additions & 1 deletion .github/workflows/single-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
- name: Archive build files from failed build
uses: actions/[email protected]
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/[email protected]
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/output
10 changes: 9 additions & 1 deletion .github/workflows/spack-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
- name: Archive build files from failed build
uses: actions/[email protected]
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/[email protected]
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/output
2 changes: 1 addition & 1 deletion .github/workflows/windows-latest-mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -G "MinGW Makefiles" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
run: cmake -G "MinGW Makefiles" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DSUNDIALS_BUILD_WITH_PROFILING=ON -DSUNDIALS_LOGGING_LEVEL=2 -DSUNDIALS_TEST_UNITTESTS=OFF -DEXAMPLES_ENABLE_CXX=ON

- name: Build
# Build your program with the given configuration
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC_LIBS=OFF
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC_LIBS=OFF -DSUNDIALS_BUILD_WITH_PROFILING=ON -DSUNDIALS_LOGGING_LEVEL=2 -DSUNDIALS_TEST_UNITTESTS=ON -DEXAMPLES_ENABLE_CXX=ON

- name: Build
# Build your program with the given configuration
Expand Down
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Fixed scaling bug in `SUNMatScaleAddI_Sparse` for non-square matrices.
Fixed missing soversions in some `SUNLinearSolver` and `SUNNonlinearSolver`
CMake targets.

Added Fortran support for the LAPACK dense `SUNLinearSolver` implementations.
Added Fortran support for the LAPACK dense `SUNLinearSolver` implementation.

Fixed the build system support for MAGMA when using a NVIDIA HPC SDK installation of CUDA
and fixed the targets used for rocBLAS and rocSPARSE.
Expand All @@ -38,6 +38,8 @@ ERK method `ARKODE_SOFRONIOU_SPALETTA_5_3_4`, the sixth order ERK method
the eighth order ERK method `ARKODE_VERNER_13_7_8`, and the ninth order ERK
method `ARKODE_VERNER_16_8_9`.

Changed the `SUNProfiler` so that it does not rely on `MPI_WTime` in any case.
This fixes https://github.com/LLNL/sundials/issues/312.

## Changes to SUNDIALS in release 6.6.1

Expand Down
7 changes: 0 additions & 7 deletions cmake/SundialsSetupCompilers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -223,13 +223,6 @@ if(SUNDIALS_POSIX_TIMERS AND POSIX_TIMERS_NEED_POSIX_C_SOURCE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_POSIX_C_SOURCE=${SUNDIALS_POSIX_C_SOURCE}")
endif()

# Check if profiling is being built with no timers.
if(SUNDIALS_BUILD_WITH_PROFILING AND
(NOT ENABLE_CALIPER) AND
(NOT ENABLE_MPI) AND
(NOT SUNDIALS_POSIX_TIMERS))
message(SEND_ERROR "The SUNDIALS native profiler requires POSIX timers or MPI_Wtime, but neither were found.")
endif()

# ---------------------------------------------------------------
# Check for deprecated attribute with message
Expand Down
4 changes: 4 additions & 0 deletions cmake/macros/SundialsAddLibrary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ macro(sundials_add_library target)
# create the target for the object library
add_library(${obj_target} OBJECT ${sources})

set_target_properties(${obj_target} PROPERTIES FOLDER "obj")

# add all object libraries to object library
if(sundials_add_library_OBJECT_LIBRARIES)
target_link_libraries(${obj_target}
Expand Down Expand Up @@ -229,6 +231,8 @@ macro(sundials_add_library target)

add_library(${_actual_target_name} ${_libtype} $<TARGET_OBJECTS:${obj_target}>)

set_target_properties(${_actual_target_name} PROPERTIES FOLDER "src")

# add any object library dependencies
if(sundials_add_library_OBJECT_LIBRARIES)
if(${_libtype} MATCHES "STATIC")
Expand Down
4 changes: 3 additions & 1 deletion doc/arkode/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ ERK method ``ARKODE_SOFRONIOU_SPALETTA_5_3_4``, the sixth order ERK method
the eighth order ERK method ``ARKODE_VERNER_13_7_8``, and the ninth order ERK
method ``ARKODE_VERNER_16_8_9``.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Added Fortran support for the LAPACK dense ``SUNLinearSolver`` implementation.

Changes in v5.6.1
Expand Down Expand Up @@ -993,7 +996,6 @@ utilize a zero initial guess.
A bug was fixed in the ARKODE stepper modules where the stop time may be passed
after resetting the integrator.


Changes in v4.7.0
-----------------

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -726,11 +726,8 @@ the user has set a stop time (with a call to the optional input function
in :numref:`ARKODE.Mathematics.Interpolation`).
The *ARK_ONE_STEP* option tells the solver to only take a
single internal step :math:`y_{n-1} \to y_{n}` and then return
control back to the calling program. If this step will
overtake *tout* then the solver will again return an
interpolated result; otherwise it will return a copy of the
internal solution :math:`y_{n}` in the vector *yout*.
single internal step, :math:`y_{n-1} \to y_{n}`, and return the solution
at that point, :math:`y_{n}`, in the vector *yout*.
**Return value:**
* *ARK_SUCCESS* if successful.
Expand Down Expand Up @@ -795,8 +792,8 @@ the user has set a stop time (with a call to the optional input function
only to get the direction and a rough scale of the independent
variable.

All failure return values are negative and so testing the return argument for
negative values will trap all :c:func:`ARKStepEvolve()` failures.
All failure return values are negative and so testing the return argument
for negative values will trap all :c:func:`ARKStepEvolve()` failures.

Since interpolation may reduce the accuracy in the reported
solution, if full method accuracy is desired the user should issue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,11 +352,8 @@ has requested rootfinding.
:numref:`ARKODE.Mathematics.Interpolation`).
The *ARK_ONE_STEP* option tells the solver to only take a
single internal step :math:`y_{n-1} \to y_{n}` and then return
control back to the calling program. If this step will
overtake *tout* then the solver will again return an
interpolated result; otherwise it will return a copy of the
internal solution :math:`y_{n}` in the vector *yout*.
single internal step, :math:`y_{n-1} \to y_{n}`, and return the solution
at that point, :math:`y_{n}`, in the vector *yout*.
**Return value:**
* *ARK_SUCCESS* if successful.
Expand Down Expand Up @@ -399,7 +396,9 @@ has requested rootfinding.

In *ARK_ONE_STEP* mode, *tout* is used only on the first call, and
only to get the direction and a rough scale of the independent
variable. All failure return values are negative and so testing the
variable.

All failure return values are negative and so testing the
return argument for negative values will trap all
:c:func:`ERKStepEvolve()` failures.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -545,11 +545,8 @@ the user has set a stop time (with a call to the optional input function
in :numref:`ARKODE.Mathematics.Interpolation`).
The *ARK_ONE_STEP* option tells the solver to only take a
single internal step :math:`y_{n-1} \to y_{n}` and then return
control back to the calling program. If this step will
overtake *tout* then the solver will again return an
interpolated result; otherwise it will return a copy of the
internal solution :math:`y_{n}` in the vector *yout*.
single internal step, :math:`y_{n-1} \to y_{n}`, and return the solution
at that point, :math:`y_{n}`, in the vector *yout*.
**Return value:**
* *ARK_SUCCESS* if successful.
Expand Down Expand Up @@ -604,8 +601,8 @@ the user has set a stop time (with a call to the optional input function
only to get the direction and a rough scale of the independent
variable.

All failure return values are negative and so testing the return argument for
negative values will trap all :c:func:`MRIStepEvolve()` failures.
All failure return values are negative and so testing the return argument
for negative values will trap all :c:func:`MRIStepEvolve()` failures.

Since interpolation may reduce the accuracy in the reported
solution, if full method accuracy is desired the user should issue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,8 @@ has requested rootfinding.
:numref:`ARKODE.Mathematics.Interpolation`).
The *ARK_ONE_STEP* option tells the solver to only take a
single internal step :math:`y_{n-1} \to y_{n}` and then return
control back to the calling program. If this step will
overtake *tout* then the solver will again return an
interpolated result; otherwise it will return a copy of the
internal solution :math:`y_{n}` in the vector *yout*.
single internal step, :math:`y_{n-1} \to y_{n}`, and return the
solution at that point, :math:`y_{n}`, in the vector *yout*.
:retval ARK_SUCCESS: if successful.
:retval ARK_ROOT_RETURN: if :c:func:`SPRKStepEvolve()` succeeded, and
Expand Down Expand Up @@ -191,7 +188,9 @@ has requested rootfinding.

In *ARK_ONE_STEP* mode, *tout* is used only on the first call, and
only to get the direction and a rough scale of the independent
variable. All failure return values are negative and so testing the
variable.

All failure return values are negative and so testing the
return argument for negative values will trap all
:c:func:`SPRKStepEvolve()` failures.

Expand Down
3 changes: 3 additions & 0 deletions doc/cvode/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ Fixed scaling bug in ``SUNMatScaleAddI_Sparse`` for non-square matrices.
Fixed missing soversions in some ``SUNLinearSolver`` and ``SUNNonlinearSolver``
CMake targets.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Added Fortran support for the LAPACK dense ``SUNLinearSolver`` implementation.

Changes in v6.6.1
Expand Down
3 changes: 3 additions & 0 deletions doc/cvodes/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ Fixed scaling bug in ``SUNMatScaleAddI_Sparse`` for non-square matrices.
Fixed missing soversions in some ``SUNLinearSolver`` and ``SUNNonlinearSolver``
CMake targets.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Added Fortran support for the LAPACK dense ``SUNLinearSolver`` implementation.

Changes in v6.6.1
Expand Down
3 changes: 3 additions & 0 deletions doc/ida/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ Fixed scaling bug in ``SUNMatScaleAddI_Sparse`` for non-square matrices.
Fixed missing soversions in some ``SUNLinearSolver`` and ``SUNNonlinearSolver``
CMake targets.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Added Fortran support for the LAPACK dense ``SUNLinearSolver`` implementation.

Changes in v6.6.1
Expand Down
3 changes: 3 additions & 0 deletions doc/idas/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ Fixed scaling bug in ``SUNMatScaleAddI_Sparse`` for non-square matrices.
Fixed missing soversions in some ``SUNLinearSolver`` and ``SUNNonlinearSolver``
CMake targets.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Added Fortran support for the LAPACK dense ``SUNLinearSolver`` implementation.

Changes in v5.6.1
Expand Down
3 changes: 3 additions & 0 deletions doc/kinsol/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ Updated the Tpetra NVector interface to support Trilinos 14.
Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper
object.

Changed the ``SUNProfiler`` so that it does not rely on ``MPI_WTime`` in any case.
This fixes `GitHub Issue #312 <https://github.com/LLNL/sundials/issues/312>`_.

Changes in v6.6.0
-----------------

Expand Down
1 change: 1 addition & 0 deletions doc/shared/Install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1022,6 +1022,7 @@ illustration only.
.. cmakeoption:: SUNDIALS_BUILD_WITH_PROFILING

Build SUNDIALS with capabilties for fine-grained profiling.
This requires POSIX timers or the Windows ``profileapi.h`` timers.

Default: OFF

Expand Down
30 changes: 30 additions & 0 deletions doc/shared/sundials/Profiling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ If Caliper is enabled, then users should refer to the `Caliper documentation <ht
for information on getting profiler output. In most cases, this involves
setting the ``CALI_CONFIG`` environment variable.


.. note::

The SUNDIALS profiler requires POSIX timers or the Windows ``profileapi.h`` timers.

.. warning::

While the SUNDIALS profiling scheme is relatively lightweight, enabling
Expand Down Expand Up @@ -149,6 +154,31 @@ are available.
* Returns zero if successful, or non-zero if an error occurred
.. c:function:: int SUNProfiler_GetElapsedTime(SUNProfiler p, const char* name, double* time)
Get the elapsed time for the timer "name" in seconds.
**Arguments:**
* ``p`` -- a ``SUNProfiler`` object
* ``name`` -- the name for the profiling region of interest
* ``time`` -- upon return, the elapsed time for the timer
**Returns:**
* Returns zero if successful, or non-zero if an error occurred
.. c:function:: int SUNProfiler_GetTimerResolution(SUNProfiler p, double* resolution)
Get the timer resolution in seconds.
**Arguments:**
* ``p`` -- a ``SUNProfiler`` object
* ``resolution`` -- upon return, the resolution for the timer
**Returns:**
* Returns zero if successful, or non-zero if an error occurred
.. c:function:: int SUNProfiler_Print(SUNProfiler p, FILE* fp)
Prints out a profiling summary. When constructed with an MPI comm the summary
Expand Down
Loading

0 comments on commit 5b457a3

Please sign in to comment.