diff --git a/.licenses/license.cpp b/.licenses/license.cpp index 252de28f8..cfcd83ea9 100644 --- a/.licenses/license.cpp +++ b/.licenses/license.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/.licenses/license.py b/.licenses/license.py index 5a050e6ec..9d743561c 100644 --- a/.licenses/license.py +++ b/.licenses/license.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2019, The Regents of the University of California, +# Copyright (c) 2020, The Regents of the University of California, # through Lawrence Berkeley National Laboratory (subject to receipt of any # required approvals from the U.S. Dept. of Energy). All rights reserved. # diff --git a/.spack/package.py b/.spack/package.py index e005512e0..636ef1541 100644 --- a/.spack/package.py +++ b/.spack/package.py @@ -1,4 +1,4 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -19,6 +19,8 @@ class Timemory(CMakePackage): version('develop', branch='develop', submodules=True) version('3.0.0', commit='b36b1673b2c6b7ff3126d8261bef0f8f176c7beb', submodules=True) + version('3.0.1', commit='a5bb58b5e4d44b71f699f536ad1b56722f213ce6', + submodules=True) variant('python', default=True, description='Enable Python support') variant('mpi', default=False, description='Enable MPI support') diff --git a/.travis.yml b/.travis.yml index 312422768..417d1638c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,21 +28,18 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which gcc-6) && CXX=$(which g++-6) && BUILD_TYPE=MinSizeRel && BUILD_ARGS='--build-libs static'" + - MATRIX_EVAL="CC=$(which gcc-6) && CXX=$(which g++-6) && BUILD_TYPE=MinSizeRel && BUILD_ARGS='--papi --mpi --build-libs static'" # GCC 7 - os: linux - dist: xenial + dist: bionic python: "3.6" addons: apt: - sources: - - ubuntu-toolchain-r-test packages: - - gcc-7 - - g++-7 + - gcc + - g++ - build-essential - libmpich-dev - mpich @@ -53,7 +50,7 @@ matrix: - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which gcc-7) && CXX=$(which g++-7) && BUILD_ARGS='--build-libs static --caliper'" + - MATRIX_EVAL="CC=$(which gcc) && CXX=$(which g++) && COVERAGE=1 && BUILD_TYPE=Debug && BUILD_ARGS='--build-libs static --papi'" # # GCC 8 - os: linux @@ -73,10 +70,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which gcc-8) && CXX=$(which g++-8) && BUILD_ARGS='--build-libs static'" + - MATRIX_EVAL="CC=$(which gcc-8) && CXX=$(which g++-8) && BUILD_ARGS='--build-libs static --mpi --papi'" # Clang 5.0 - os: linux dist: xenial @@ -96,10 +92,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which clang-5.0) && CXX=$(which clang++-5.0) && BUILD_ARGS='--build-libs static'" + - MATRIX_EVAL="CC=$(which clang-5.0) && CXX=$(which clang++-5.0) && BUILD_ARGS='--build-libs static --mpi --papi'" # Clang 7 - os: linux dist: bionic @@ -116,10 +111,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which clang-7) && CXX=$(which clang++-7) && BUILD_ARGS='--build-libs static --caliper'" + - MATRIX_EVAL="CC=$(which clang-7) && CXX=$(which clang++-7) && BUILD_ARGS='--build-libs static --caliper --mpi --papi'" # ------------------------------------------------------------------------ # # # Python 3.7 @@ -143,10 +137,30 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which gcc-6) && CXX=$(which g++-6) && BUILD_TYPE=MinSizeRel && BUILD_ARGS='--build-libs shared --gotcha'" + - MATRIX_EVAL="CC=$(which gcc-6) && CXX=$(which g++-6) && BUILD_TYPE=MinSizeRel && BUILD_ARGS='--build-libs shared --mpi --papi --gotcha'" + # GCC 7 + - os: linux + dist: bionic + python: "3.7" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-7 + - g++-7 + - build-essential + - libmpich-dev + - mpich + - libpapi-dev + - papi-tools + - libgoogle-perftools-dev + - google-perftools + - graphviz + env: + - MATRIX_EVAL="CC=$(which gcc-7) && CXX=$(which g++-7) && BUILD_ARGS='--build-libs static --mpi --papi --caliper'" # # GCC 8 - os: linux @@ -166,10 +180,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which gcc-8) && CXX=$(which g++-8) && BUILD_ARGS='--build-libs shared'" + - MATRIX_EVAL="CC=$(which gcc-8) && CXX=$(which g++-8) && BUILD_ARGS='--build-libs shared --mpi --papi'" # Clang 5.0 - os: linux dist: xenial @@ -189,10 +202,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which clang-5.0) && CXX=$(which clang++-5.0) && COVERAGE=1 && BUILD_ARGS='--build-libs shared'" + - MATRIX_EVAL="CC=$(which clang-5.0) && CXX=$(which clang++-5.0) && BUILD_ARGS='--build-libs shared --mpi --papi'" # Clang 7 - os: linux dist: bionic @@ -209,10 +221,9 @@ matrix: - papi-tools - libgoogle-perftools-dev - google-perftools - - lcov - graphviz env: - - MATRIX_EVAL="CC=$(which clang-7) && CXX=$(which clang++-7) && BUILD_ARGS='--build-libs shared --gotcha --caliper'" + - MATRIX_EVAL="CC=$(which clang-7) && CXX=$(which clang++-7) && BUILD_ARGS='--build-libs shared --gotcha --caliper --mpi --papi'" # ------------------------------------------------------------------------ # @@ -220,8 +231,6 @@ before_install: - eval "${MATRIX_EVAL}" - export CC=${CC} - export CXX=${CXX} - - export TIMEMORY_VERBOSE=4 - - export TIMEMORY_OUTPUT_TOTAL=1 - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; - bash miniconda.sh -b -p ${HOME}/miniconda - export PATH="${HOME}/miniconda/bin:${PATH}" @@ -232,10 +241,8 @@ install: - env - conda create -c defaults -c conda-forge -n pyctest python=${TRAVIS_PYTHON_VERSION} pyctest scikit-build cmake numpy matplotlib pillow gperftools - source activate pyctest - # - python setup.py install --build-type=Debug -- -DTIMEMORY_BUILD_C=OFF -DTIMEMORY_BUILD_TOOLS=OFF -DBUILD_STATIC_LIBS=OFF -DTIMEMORY_USE_CALIPER=ON -DTIMEMORY_USE_GOTCHA=ON -- -j2 - - export ARGS="-SF --pyctest-model=Continuous --pyctest-site=Travis --no-mpi ${BUILD_ARGS}" + - export ARGS="-SF --pyctest-model=Continuous --pyctest-site=Travis --python ${BUILD_ARGS}" - if [ -z "${BUILD_TYPE}" ]; then BUILD_TYPE=RelWithDebInfo ; fi - - if [ -z "${USE_MPI}" ]; then ARGS="${ARGS} --no-mpi"; fi - if [ -n "${COVERAGE}" ]; then ARGS="${ARGS} --coverage"; else ARGS="${ARGS} --profile=cpu"; fi - travis_wait 75 python ./pyctest-runner.py ${ARGS} --pyctest-build-type=${BUILD_TYPE} -- -VV @@ -248,6 +255,7 @@ after_success: - eval "${MATRIX_EVAL}" - SUBMIT_COVERAGE=0 - if [ -n "${COVERAGE}" ]; then SUBMIT_COVERAGE=1; fi + - if [ -z "$(which lcov)" ]; then SUBMIT_COVERAGE=0; fi # Create lcov report: capture coverage info, filter, debugging, and upload - if [ "${SUBMIT_COVERAGE}" -gt 0 ]; then lcov --directory . --capture --output-file coverage.info ; fi - if [ "${SUBMIT_COVERAGE}" -gt 0 ]; then lcov --remove coverage.info '/usr/*' "${HOME}"'/.cache/*' '*/external/*' --output-file coverage.info; fi diff --git a/VERSION b/VERSION index 4a36342fc..cb2b00e4f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.0 +3.0.1 diff --git a/cmake/Scripts/submit-coverage.sh b/cmake/Scripts/submit-coverage.sh new file mode 100755 index 000000000..e8d1664b2 --- /dev/null +++ b/cmake/Scripts/submit-coverage.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +echo "Executing ${BASH_SOURCE[0]}..." +DIR=$1 + +if [ -z "${DIR}" ]; then echo "No directory provided!"; exit 1; fi +if [ ! -d "${DIR}" ]; then DIR=$(realpath ${DIR}); fi +if [ -z "${DIR}" ]; then echo "No directory provided!"; exit 1; fi + +set -e + +echo "Directory: ${DIR}..." +cd ${DIR} + +echo "Generating coverage..." +lcov --directory . --capture --output-file coverage.info +echo "Removing coverage..." +lcov --remove coverage.info '/usr/*' "${HOME}"'/.cache/*' '*/external/*' --output-file coverage.info +echo "Listing coverage..." +lcov --list coverage.info +echo "Submitting coverage..." +bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports" diff --git a/docs/conf.py b/docs/conf.py index 0516fba47..c65d6e59e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,7 +24,7 @@ def install(package): # -- Project information ----------------------------------------------------- -project = 'TiMemory' +project = 'timemory' copyright = '2019, Jonathan R. Madsen' author = 'Jonathan R. Madsen' @@ -41,8 +41,6 @@ def install(package): if not os.path.exists(_bindir): os.makedirs(_bindir) - -if not os.path.exists(_doxdir): os.chdir(_bindir) sp.run(["cmake", "-DTIMEMORY_BUILD_DOCS=ON", "-DENABLE_DOXYGEN_HTML_DOCS=ON", diff --git a/examples/ex-caliper/ex_caliper.cpp b/examples/ex-caliper/ex_caliper.cpp index 94a3d7ddf..43814d973 100644 --- a/examples/ex-caliper/ex_caliper.cpp +++ b/examples/ex-caliper/ex_caliper.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-cpu-roofline/ex_cpu_roofline.cpp b/examples/ex-cpu-roofline/ex_cpu_roofline.cpp index 006696964..8af65c84c 100644 --- a/examples/ex-cpu-roofline/ex_cpu_roofline.cpp +++ b/examples/ex-cpu-roofline/ex_cpu_roofline.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-cxx-basic/ex_cxx_basic.cpp b/examples/ex-cxx-basic/ex_cxx_basic.cpp index 16542fecd..46a7b8295 100644 --- a/examples/ex-cxx-basic/ex_cxx_basic.cpp +++ b/examples/ex-cxx-basic/ex_cxx_basic.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-cxx-overhead/ex_cxx_overhead.cpp b/examples/ex-cxx-overhead/ex_cxx_overhead.cpp index eecad7101..e602369eb 100644 --- a/examples/ex-cxx-overhead/ex_cxx_overhead.cpp +++ b/examples/ex-cxx-overhead/ex_cxx_overhead.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-cxx-tuple/ex_cxx_tuple.cpp b/examples/ex-cxx-tuple/ex_cxx_tuple.cpp index 0b41aae0d..787c7318f 100644 --- a/examples/ex-cxx-tuple/ex_cxx_tuple.cpp +++ b/examples/ex-cxx-tuple/ex_cxx_tuple.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-ert/ex_ert.cpp b/examples/ex-ert/ex_ert.cpp index 68ea39e91..eb0779dbc 100644 --- a/examples/ex-ert/ex_ert.cpp +++ b/examples/ex-ert/ex_ert.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-gotcha/ex_gotcha.cpp b/examples/ex-gotcha/ex_gotcha.cpp index 831db9886..39a673c63 100644 --- a/examples/ex-gotcha/ex_gotcha.cpp +++ b/examples/ex-gotcha/ex_gotcha.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-gotcha/ex_gotcha_lib.cpp b/examples/ex-gotcha/ex_gotcha_lib.cpp index 3c913d412..390368459 100644 --- a/examples/ex-gotcha/ex_gotcha_lib.cpp +++ b/examples/ex-gotcha/ex_gotcha_lib.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-gotcha/ex_gotcha_lib.hpp b/examples/ex-gotcha/ex_gotcha_lib.hpp index 4ed9ef5ef..7e10e826b 100644 --- a/examples/ex-gotcha/ex_gotcha_lib.hpp +++ b/examples/ex-gotcha/ex_gotcha_lib.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-gpu-roofline/ex_gpu_roofline.cpp b/examples/ex-gpu-roofline/ex_gpu_roofline.cpp index cd5a4c358..88bdb62aa 100644 --- a/examples/ex-gpu-roofline/ex_gpu_roofline.cpp +++ b/examples/ex-gpu-roofline/ex_gpu_roofline.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-likwid/ex_likwid.cpp b/examples/ex-likwid/ex_likwid.cpp index 07901ab5e..b902a96b8 100644 --- a/examples/ex-likwid/ex_likwid.cpp +++ b/examples/ex-likwid/ex_likwid.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal.c b/examples/ex-minimal/ex_minimal.c index ce3a0a204..bd358de56 100644 --- a/examples/ex-minimal/ex_minimal.c +++ b/examples/ex-minimal/ex_minimal.c @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal.cpp b/examples/ex-minimal/ex_minimal.cpp index d343d8b21..27fe8d741 100644 --- a/examples/ex-minimal/ex_minimal.cpp +++ b/examples/ex-minimal/ex_minimal.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal_library.c b/examples/ex-minimal/ex_minimal_library.c index f1ff16138..6393836c1 100644 --- a/examples/ex-minimal/ex_minimal_library.c +++ b/examples/ex-minimal/ex_minimal_library.c @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal_library.cpp b/examples/ex-minimal/ex_minimal_library.cpp index 5f0adc002..93334e75e 100644 --- a/examples/ex-minimal/ex_minimal_library.cpp +++ b/examples/ex-minimal/ex_minimal_library.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal_library_overload.c b/examples/ex-minimal/ex_minimal_library_overload.c index a8fe40086..516ad3a30 100644 --- a/examples/ex-minimal/ex_minimal_library_overload.c +++ b/examples/ex-minimal/ex_minimal_library_overload.c @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-minimal/ex_minimal_library_overload.cpp b/examples/ex-minimal/ex_minimal_library_overload.cpp index d023f4e79..4f8ae8de3 100644 --- a/examples/ex-minimal/ex_minimal_library_overload.cpp +++ b/examples/ex-minimal/ex_minimal_library_overload.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-optional/ex_optional.cpp b/examples/ex-optional/ex_optional.cpp index 17bb7b534..7386ae6c6 100644 --- a/examples/ex-optional/ex_optional.cpp +++ b/examples/ex-optional/ex_optional.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/examples/ex-optional/ex_optional.hpp b/examples/ex-optional/ex_optional.hpp index 538ecbce7..f0faeb050 100644 --- a/examples/ex-optional/ex_optional.hpp +++ b/examples/ex-optional/ex_optional.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/pyctest-runner.py b/pyctest-runner.py index 0c1568df5..d0e66e14b 100755 --- a/pyctest-runner.py +++ b/pyctest-runner.py @@ -72,15 +72,13 @@ def configure(): default=False, action='store_true') parser.add_argument("--caliper", help="TIMEMORY_USE_CALIPER=ON", default=False, action='store_true') - parser.add_argument("--no-papi", help="TIMEMORY_USE_PAPI=OFF", + parser.add_argument("--likwid", help="TIMEMORY_USE_LIKWID=ON", default=False, action='store_true') - parser.add_argument("--no-mpi", help="TIMEMORY_USE_MPI=OFF", + parser.add_argument("--papi", help="TIMEMORY_USE_PAPI=ON", default=False, action='store_true') - parser.add_argument("--no-python", help="TIMEMORY_BUILD_PYTHON=OFF", + parser.add_argument("--mpi", help="TIMEMORY_USE_MPI=ON", default=False, action='store_true') - parser.add_argument("--no-c", help="TIMEMORY_BUILD_C=OFF", - default=False, action='store_true') - parser.add_argument("--no-gtest", help="TIMEMORY_BUILD_GTEST=OFF", + parser.add_argument("--python", help="TIMEMORY_BUILD_PYTHON=ON", default=False, action='store_true') parser.add_argument("--extra-optimizations", help="TIMEMORY_BUILD_EXTRA_OPTIMIZATIONS=ON", @@ -114,7 +112,7 @@ def configure(): pyct.BINARY_DIRECTORY, "CMakeCache.txt")) if platform.system() != "Linux": - args.no_papi = True + args.papi = False os.environ["PYCTEST_TESTING"] = "ON" @@ -158,40 +156,36 @@ def run_pyctest(): build_opts = { "BUILD_SHARED_LIBS": "ON" if "shared" in args.build_libs else "OFF", "BUILD_STATIC_LIBS": "ON" if "static" in args.build_libs else "OFF", - "TIMEMORY_BUILD_C": "OFF" if args.no_c else "ON", - "TIMEMORY_BUILD_GTEST": "OFF" if args.no_gtest else "ON", "TIMEMORY_BUILD_TOOLS": "ON" if args.tools else "OFF", - "TIMEMORY_BUILD_PYTHON": "OFF" if args.no_python else "ON", "TIMEMORY_BUILD_GOTCHA": "ON" if args.gotcha else "OFF", + "TIMEMORY_BUILD_PYTHON": "ON" if args.python else "OFF", "TIMEMORY_BUILD_CALIPER": "ON" if args.caliper else "OFF", "TIMEMORY_BUILD_TESTING": "ON", "TIMEMORY_BUILD_EXTRA_OPTIMIZATIONS": "ON" if args.extra_optimizations else "OFF", - "TIMEMORY_USE_MPI": "OFF" if args.no_mpi else "ON", + "TIMEMORY_USE_MPI": "ON" if args.mpi else "OFF", "TIMEMORY_USE_TAU": "ON" if args.tau else "OFF", "TIMEMORY_USE_ARCH": "ON" if args.arch else "OFF", - "TIMEMORY_USE_PAPI": "OFF" if args.no_papi else "ON", + "TIMEMORY_USE_PAPI": "ON" if args.papi else "OFF", "TIMEMORY_USE_CUDA": "ON" if args.cuda else "OFF", "TIMEMORY_USE_CUPTI": "ON" if args.cupti else "OFF", "TIMEMORY_USE_GPERF": "OFF", "TIMEMORY_USE_UPCXX": "ON" if args.upcxx else "OFF", - "TIMEMORY_USE_PYTHON": "OFF" if args.no_python else "ON", + "TIMEMORY_USE_LIKWID": "ON" if args.likwid else "OFF", "TIMEMORY_USE_GOTCHA": "ON" if args.gotcha else "OFF", + "TIMEMORY_USE_PYTHON": "ON" if args.python else "OFF", "TIMEMORY_USE_CALIPER": "ON" if args.caliper else "OFF", "TIMEMORY_USE_COVERAGE": "ON" if args.coverage else "OFF", "TIMEMORY_USE_SANITIZER": "OFF", "TIMEMORY_USE_CLANG_TIDY": "ON" if args.static_analysis else "OFF", - "USE_PAPI": "OFF" if args.no_papi else "ON", - "USE_MPI": "OFF" if args.no_mpi else "ON", + "USE_PAPI": "ON" if args.papi else "OFF", + "USE_MPI": "ON" if args.mpi else "OFF", "USE_CALIPER": "ON" if args.caliper else "OFF", } - if not args.no_mpi: + if args.mpi and args.tools: build_opts["TIMEMORY_BUILD_MPIP"] = "ON" if args.mpip else "OFF" - if not args.no_c: - pyct.BUILD_NAME = "{} C".format(pyct.BUILD_NAME) - - if not args.no_python: + if args.python: pyver = "{}.{}.{}".format( sys.version_info[0], sys.version_info[1], sys.version_info[2]) pyct.BUILD_NAME = "{} PY-{}".format(pyct.BUILD_NAME, pyver) @@ -202,10 +196,10 @@ def run_pyctest(): if args.arch: pyct.BUILD_NAME = "{} ARCH".format(pyct.BUILD_NAME) - if not args.no_mpi: + if args.mpi: pyct.BUILD_NAME = "{} MPI".format(pyct.BUILD_NAME) - if not args.no_papi: + if args.papi: pyct.BUILD_NAME = "{} PAPI".format(pyct.BUILD_NAME) if args.cuda: @@ -226,6 +220,9 @@ def run_pyctest(): if args.tau: pyct.BUILD_NAME = "{} TAU".format(pyct.BUILD_NAME) + if args.likwid: + pyct.BUILD_NAME = "{} LIKWID".format(pyct.BUILD_NAME) + if args.profile is not None: build_opts["TIMEMORY_USE_GPERF"] = "ON" components = "profiler" if args.profile == "cpu" else "tcmalloc" @@ -244,8 +241,6 @@ def run_pyctest(): if gcov_exe is not None: pyct.COVERAGE_COMMAND = "{}".format(gcov_exe) build_opts["TIMEMORY_USE_COVERAGE"] = "ON" - build_opts["TIMEMORY_USE_CALIPER"] = "OFF" - build_opts["TIMEMORY_BUILD_CALIPER"] = "OFF" pyct.BUILD_NAME = "{} COV".format(pyct.BUILD_NAME) if pyct.BUILD_TYPE != "Debug": warnings.warn( @@ -342,8 +337,6 @@ def construct_command(cmd, args): clobber=clobber_notes) # make sure all subsequent iterations don't clobber clobber_notes = False - # else: - # _cmd.append("{}/timem".format(pyct.BINARY_DIRECTORY)) _cmd.extend(cmd) return _cmd @@ -358,193 +351,204 @@ def construct_roofline_command(cmd, dir, extra_opts=[]): _cmd.extend(cmd) return _cmd - #--------------------------------------------------------------------------# # create tests # - test_env = ";".join(["CPUPROFILE_FREQUENCY=200", "CPUPROFILE_REALTIME=1", "CALI_CONFIG_PROFILE=runtime-report", "TIMEMORY_DART_OUTPUT=ON", "TIMEMORY_DART_COUNT=1"]) - pyct.test(construct_name("test-optional-off"), + pyct.test(construct_name("ex-optional-off"), construct_command(["./ex_optional_off"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-overhead"), + pyct.test(construct_name("ex-cxx-overhead"), construct_command(["./ex_cxx_overhead"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "600", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cuda-event"), - ["./ex_cuda_event"], - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "300", - "ENVIRONMENT": test_env}) + if args.cuda: + pyct.test(construct_name("ex-cuda-event"), + ["./ex_cuda_event"], + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "300", + "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-minimal"), + pyct.test(construct_name("ex-cxx-minimal"), construct_command(["./ex_cxx_minimal"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-c-minimal-library-overload"), + pyct.test(construct_name("ex-c-minimal-library-overload"), construct_command(["./ex_c_minimal_library_overload"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-c-timing"), + pyct.test(construct_name("ex-c-timing"), construct_command(["./ex_c_timing"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-minimal-library"), + pyct.test(construct_name("ex-cxx-minimal-library"), construct_command(["./ex_cxx_minimal_library"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-optional-on"), + pyct.test(construct_name("ex-optional-on"), construct_command(["./ex_optional_on"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-c-minimal-library"), + pyct.test(construct_name("ex-c-minimal-library"), construct_command(["./ex_c_minimal_library"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-ert"), + pyct.test(construct_name("ex-ert"), construct_command(["./ex_ert"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "600", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-tuple"), + pyct.test(construct_name("ex-cxx-tuple"), construct_command(["./ex_cxx_tuple"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-gotcha-mpi"), + pyct.test(construct_name("ex-gotcha-mpi"), construct_command(["./ex_gotcha_mpi"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-python-caliper"), - construct_command(["./ex_python_caliper"], args), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "300", - "ENVIRONMENT": test_env}) + if args.python: + pyct.test(construct_name("ex-python-caliper"), + construct_command(["./ex_python_caliper"], args), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "300", + "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-caliper"), + pyct.test(construct_name("ex-caliper"), construct_command(["./ex_caliper"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-c-minimal"), + pyct.test(construct_name("ex-c-minimal"), construct_command(["./ex_c_minimal"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-minimal-library-overload"), + pyct.test(construct_name("ex-cxx-minimal-library-overload"), construct_command(["./ex_cxx_minimal_library_overload"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cxx-basic"), + pyct.test(construct_name("ex-cxx-basic"), construct_command(["./ex_cxx_basic"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-python-minimal"), - construct_command(["./ex_python_minimal"], args), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "480", - "ENVIRONMENT": test_env}) + if args.python: + pyct.test(construct_name("ex-python-minimal"), + construct_command(["./ex_python_minimal"], args), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "480", + "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-gotcha"), + pyct.test(construct_name("ex-gotcha"), construct_command(["./ex_gotcha"], args), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "300", "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-likwid"), - construct_command(["./ex_likwid"], args), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "300", - "ENVIRONMENT": test_env}) - - pyct.test(construct_name("test-python-likwid"), - construct_command(["./ex_python_likwid"], args), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "300", - "ENVIRONMENT": test_env}) - - pyct.test(construct_name("test-cpu-roofline"), - construct_roofline_command(["./ex_cpu_roofline"], 'cpu-roofline', - ['-t', 'cpu_roofline']), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "900", - "ENVIRONMENT": test_env}) + if args.likwid: + pyct.test(construct_name("ex-likwid"), + construct_command(["./ex_likwid"], args), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "300", + "ENVIRONMENT": test_env}) - pyct.test(construct_name("test-cpu-roofline.sp"), - construct_roofline_command(["./ex_cpu_roofline.sp"], 'cpu-roofline.sp', - ['-t', 'cpu_roofline']), - {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, - "LABELS": pyct.PROJECT_NAME, - "TIMEOUT": "900", - "ENVIRONMENT": test_env}) + if args.python: + pyct.test(construct_name("ex-python-likwid"), + construct_command(["./ex_python_likwid"], args), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "300", + "ENVIRONMENT": test_env}) + + if not args.python: + pyct.test(construct_name("ex-cpu-roofline"), + construct_roofline_command(["./ex_cpu_roofline"], 'cpu-roofline', + ['-t', 'cpu_roofline']), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "900", + "ENVIRONMENT": test_env}) - if args.cupti: - pyct.test(construct_name("test-gpu-roofline"), - construct_roofline_command(["./ex_gpu_roofline"], 'gpu-roofline', - ['-t', 'gpu_roofline']), + pyct.test(construct_name("ex-cpu-roofline.sp"), + construct_roofline_command(["./ex_cpu_roofline.sp"], 'cpu-roofline.sp', + ['-t', 'cpu_roofline']), {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, "LABELS": pyct.PROJECT_NAME, "TIMEOUT": "900", "ENVIRONMENT": test_env}) + if args.cupti: + pyct.test(construct_name("ex-gpu-roofline"), + construct_roofline_command(["./ex_gpu_roofline"], 'gpu-roofline', + ['-t', 'gpu_roofline']), + {"WORKING_DIRECTORY": pyct.BINARY_DIRECTORY, + "LABELS": pyct.PROJECT_NAME, + "TIMEOUT": "900", + "ENVIRONMENT": test_env}) + pyct.generate_config(pyct.BINARY_DIRECTORY) pyct.generate_test_file(os.path.join(pyct.BINARY_DIRECTORY, "tests")) if not args.generate: pyct.run(pyct.ARGUMENTS, pyct.BINARY_DIRECTORY) + if args.coverage: + script = os.path.join(pyct.SOURCE_DIRECTORY, "cmake", + "Scripts", "submit-coverage.sh") + cov = pyct.command([script, pyct.BINARY_DIRECTORY]) + cov.SetWorkingDirectory(pyct.SOURCE_DIRECTORY) + cov.Execute() + print("{}".format(cov.Output())) #------------------------------------------------------------------------------# diff --git a/recipe/meta.yaml b/recipe/meta.yaml index be3f8fecb..880ddff1d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,8 +1,8 @@ {% set name = "timemory" %} -{% set version = "3.0.0.1" %} +{% set version = "3.0.1" %} {% set file_ext = "tar.gz" %} {% set hash_type = "sha256" %} -{% set hash_value = "cc13cebf7737d3cd8f3e95bfbf923b8aca5b60c74c991e021a7d3eb809f3b368" %} +{% set hash_value = "a4ee67e20fb8536d2c08d643514229a34fe4e748029dc54cf916a3eca5c09417" %} package: name: '{{ name|lower }}' diff --git a/source/extern/auto_timer.cpp b/source/extern/auto_timer.cpp index e47b64e90..63f5cad49 100644 --- a/source/extern/auto_timer.cpp +++ b/source/extern/auto_timer.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/auto_user_bundle.cpp b/source/extern/auto_user_bundle.cpp index 2a4123c0a..97bcc5a64 100644 --- a/source/extern/auto_user_bundle.cpp +++ b/source/extern/auto_user_bundle.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/caliper.cpp b/source/extern/caliper.cpp index 56d769f06..9c15491f3 100644 --- a/source/extern/caliper.cpp +++ b/source/extern/caliper.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/complete_list.cpp b/source/extern/complete_list.cpp index cec94e4a1..45ae9eb2f 100644 --- a/source/extern/complete_list.cpp +++ b/source/extern/complete_list.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/cuda/event.cpp b/source/extern/cuda/event.cpp index 26fb9f356..b8bb1ba26 100644 --- a/source/extern/cuda/event.cpp +++ b/source/extern/cuda/event.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/cuda/nvtx_marker.cpp b/source/extern/cuda/nvtx_marker.cpp index 722a587d1..fa79313b0 100644 --- a/source/extern/cuda/nvtx_marker.cpp +++ b/source/extern/cuda/nvtx_marker.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/cuda/profiler.cpp b/source/extern/cuda/profiler.cpp index e6825652d..10a646545 100644 --- a/source/extern/cuda/profiler.cpp +++ b/source/extern/cuda/profiler.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/cupti/activity.cpp b/source/extern/cupti/activity.cpp index 317b5b8c0..b925b1dff 100644 --- a/source/extern/cupti/activity.cpp +++ b/source/extern/cupti/activity.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/cupti/counters.cpp b/source/extern/cupti/counters.cpp index 8c52f0c83..72054438f 100644 --- a/source/extern/cupti/counters.cpp +++ b/source/extern/cupti/counters.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/ert.cpp b/source/extern/ert.cpp index d8850091e..90be1e59c 100644 --- a/source/extern/ert.cpp +++ b/source/extern/ert.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/general.cpp b/source/extern/general.cpp index 1376fd9cf..d642d90b7 100644 --- a/source/extern/general.cpp +++ b/source/extern/general.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/likwid.cpp b/source/extern/likwid.cpp index 97218ac6f..feab83fbd 100644 --- a/source/extern/likwid.cpp +++ b/source/extern/likwid.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/papi/array.cpp b/source/extern/papi/array.cpp index e0aacbcf2..db1c41165 100644 --- a/source/extern/papi/array.cpp +++ b/source/extern/papi/array.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/roofline/cpu.cpp b/source/extern/roofline/cpu.cpp index 374e6ab78..ea8358ea8 100644 --- a/source/extern/roofline/cpu.cpp +++ b/source/extern/roofline/cpu.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/roofline/gpu.cpp b/source/extern/roofline/gpu.cpp index 6a427e6f7..e095f5f7b 100644 --- a/source/extern/roofline/gpu.cpp +++ b/source/extern/roofline/gpu.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/rusage.cpp b/source/extern/rusage.cpp index c4956f08b..fcce4c493 100644 --- a/source/extern/rusage.cpp +++ b/source/extern/rusage.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/tau.cpp b/source/extern/tau.cpp index 670399ed8..e26c4c692 100644 --- a/source/extern/tau.cpp +++ b/source/extern/tau.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/timing.cpp b/source/extern/timing.cpp index 3b153a0a8..5ff3f3923 100644 --- a/source/extern/timing.cpp +++ b/source/extern/timing.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/user_bundle.cpp b/source/extern/user_bundle.cpp index cc0fefb0c..335e3827c 100644 --- a/source/extern/user_bundle.cpp +++ b/source/extern/user_bundle.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/extern/vtune.cpp b/source/extern/vtune.cpp index 4448178df..89602f0a2 100644 --- a/source/extern/vtune.cpp +++ b/source/extern/vtune.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/init.cpp b/source/init.cpp index 06648c20e..37f873385 100644 --- a/source/init.cpp +++ b/source/init.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/library.cpp b/source/library.cpp index 943c2b590..4f5beac6d 100644 --- a/source/library.cpp +++ b/source/library.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/manager.cpp b/source/manager.cpp index 7c2d732c3..67d4a5389 100644 --- a/source/manager.cpp +++ b/source/manager.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/python/libpytimemory.cpp b/source/python/libpytimemory.cpp index 3e63cc946..b0d874319 100644 --- a/source/python/libpytimemory.cpp +++ b/source/python/libpytimemory.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/python/libpytimemory.hpp b/source/python/libpytimemory.hpp index 569cf6d43..f17e6fa03 100644 --- a/source/python/libpytimemory.hpp +++ b/source/python/libpytimemory.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/serializer.cpp b/source/serializer.cpp index 7924259a2..ed6693044 100644 --- a/source/serializer.cpp +++ b/source/serializer.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/settings.cpp b/source/settings.cpp index 2af6f6c2d..a991ece8c 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/.tests_template.cpp b/source/tests/.tests_template.cpp index 40b6057fb..88f9a72c9 100644 --- a/source/tests/.tests_template.cpp +++ b/source/tests/.tests_template.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/aligned_allocator_tests.cpp b/source/tests/aligned_allocator_tests.cpp index 5515b7acf..6f0a4e8de 100644 --- a/source/tests/aligned_allocator_tests.cpp +++ b/source/tests/aligned_allocator_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/apply_tests.cpp b/source/tests/apply_tests.cpp index 7ed926b5b..7fe6c3f00 100644 --- a/source/tests/apply_tests.cpp +++ b/source/tests/apply_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/cuda_tests.cpp b/source/tests/cuda_tests.cpp index 91f33ad57..bf6a87589 100644 --- a/source/tests/cuda_tests.cpp +++ b/source/tests/cuda_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/cupti_tests.cpp b/source/tests/cupti_tests.cpp index 851901b31..b63daddfe 100644 --- a/source/tests/cupti_tests.cpp +++ b/source/tests/cupti_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/external/gotcha_tests_lib.cpp b/source/tests/external/gotcha_tests_lib.cpp index a545db145..e3e132f71 100644 --- a/source/tests/external/gotcha_tests_lib.cpp +++ b/source/tests/external/gotcha_tests_lib.cpp @@ -99,6 +99,31 @@ DoWork::execute_fp8(int64_t nitr) //--------------------------------------------------------------------------------------// +void +DoWork::execute_fp(int64_t nitr, std::vector fvals, + const std::deque& dvals) +{ + float fret = 0.0; + for(const auto& itr : fvals) + { + fret += ext::work( + nitr, [](float val) -> float { return cosf(val); }, + [&](float val, int64_t i) -> float { return val + itr * i; }); + } + std::get<0>(m_tuple) = fret; + + double dret = 0.0; + for(const auto& itr : dvals) + { + dret += ext::work( + nitr, [](double val) -> double { return cos(val); }, + [&](double val, int64_t i) -> double { return val + itr * i; }); + } + std::get<1>(m_tuple) = dret; +} + +//--------------------------------------------------------------------------------------// + std::tuple DoWork::get() const { diff --git a/source/tests/external/gotcha_tests_lib.hpp b/source/tests/external/gotcha_tests_lib.hpp index 9ed4b3179..85f0d0701 100644 --- a/source/tests/external/gotcha_tests_lib.hpp +++ b/source/tests/external/gotcha_tests_lib.hpp @@ -28,6 +28,8 @@ #include #include #include +#include +#include namespace ext { @@ -43,6 +45,7 @@ class DoWork void execute_fp4(int64_t); void execute_fp8(int64_t); + void execute_fp(int64_t, std::vector, const std::deque&); std::tuple get() const; friend std::ostream& operator<<(std::ostream& os, const DoWork& obj) diff --git a/source/tests/gotcha_tests.cpp b/source/tests/gotcha_tests.cpp index eddf7e4a3..e5cecd321 100644 --- a/source/tests/gotcha_tests.cpp +++ b/source/tests/gotcha_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -49,7 +49,7 @@ using gotcha_hybrid_t = tim::auto_hybrid; // create gotcha types for various bundles of functions using mpi_gotcha_t = tim::component::gotcha<1, gotcha_hybrid_t>; using work_gotcha_t = tim::component::gotcha<1, gotcha_hybrid_t, int>; -using memfun_gotcha_t = tim::component::gotcha<3, gotcha_tuple_t>; +using memfun_gotcha_t = tim::component::gotcha<5, gotcha_tuple_t>; using comp_t = component_tuple; using tuple_t = component_tuple; @@ -483,6 +483,12 @@ TEST_F(gotcha_tests, member_functions) TIMEMORY_CXX_GOTCHA(memfun_gotcha_t, 2, &DoWork::execute_fp8); } + { + using func_t = decltype(&DoWork::execute_fp); + print_func_info(TIMEMORY_STRINGIZE(DoWork::execute_fp)); + + TIMEMORY_CXX_GOTCHA(memfun_gotcha_t, 3, &DoWork::execute_fp); + } }; float fsum = 0.0; @@ -492,29 +498,77 @@ TEST_F(gotcha_tests, member_functions) DoWork dw(pair_type(0.25, 0.5)); - auto _nitr = nitr / 8; - for(int i = 0; i < _nitr; ++i) + auto _nitr = nitr / 10; + int64_t ntot = 0; + for(int i = 0; i < _nitr; i += 10) { + ntot += 10; if(i >= (_nitr - 10)) { - dw.execute_fp4(1000); - dw.execute_fp8(1000); + for(int j = 0; j < 10; ++j) + { + dw.execute_fp4(1000); + dw.execute_fp8(1000); + auto ret = dw.get(); + fsum += std::get<0>(ret); + dsum += std::get<1>(ret); + } } else { - auto _fp4 = [&]() { dw.execute_fp4(1000); }; - auto _fp8 = [&]() { dw.execute_fp8(1000); }; + auto _fp4 = [&]() { + for(int j = 0; j < 10; ++j) + { + dw.execute_fp4(1000); + auto ret = dw.get(); + fsum += std::get<0>(ret); + } + }; + + auto _fp8 = [&]() { + for(int j = 0; j < 10; ++j) + { + dw.execute_fp8(1000); + auto ret = dw.get(); + dsum += std::get<1>(ret); + } + }; + std::thread t4(_fp4); std::thread t8(_fp8); t4.join(); t8.join(); } + } + int rank = tim::dmp::rank(); + if(rank == 0) + { + printf("\n"); + printf("[%i]> single-precision sum = %8.2f\n", rank, fsum); + printf("[%i]> double-precision sum = %8.2f\n", rank, dsum); + } + + float fsum2 = 0.0; + double dsum2 = 0.0; + for(int64_t i = 0; i < ntot; ++i) + { + dw.execute_fp(1000, { 0.25 }, { 0.5 }); auto ret = dw.get(); - fsum += std::get<0>(ret); - dsum += std::get<1>(ret); + fsum2 += std::get<0>(ret); + dsum2 += std::get<1>(ret); + } + + if(rank == 0) + { + printf("\n"); + printf("[%i]> single-precision sum2 = %8.2f\n", rank, fsum2); + printf("[%i]> double-precision sum2 = %8.2f\n", rank, dsum2); } + + ASSERT_NEAR(fsum2, fsum, tolerance); + ASSERT_NEAR(dsum2, dsum, tolerance); } auto rank = tim::mpi::rank(); @@ -537,9 +591,9 @@ TEST_F(gotcha_tests, member_functions) auto real_final_size = real_storage->get().size(); printf("[final]> wall-clock storage size: %li\n", (long int) real_final_size); - ASSERT_NEAR(fsum, -302122.44, tolerance); - ASSERT_NEAR(dsum, +110193.87, tolerance); - ASSERT_EQ(real_final_size, 4 + real_init_size); + ASSERT_NEAR(fsum, -241718.61, tolerance); + ASSERT_NEAR(dsum, +88155.09, tolerance); + ASSERT_EQ(real_final_size, 5 + real_init_size); } //======================================================================================// diff --git a/source/tests/gperf_cpu_tests.cpp b/source/tests/gperf_cpu_tests.cpp index 13cd76621..58e2a6fda 100644 --- a/source/tests/gperf_cpu_tests.cpp +++ b/source/tests/gperf_cpu_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/gperf_heap_tests.cpp b/source/tests/gperf_heap_tests.cpp index dc80bd60e..2436f4c3f 100644 --- a/source/tests/gperf_heap_tests.cpp +++ b/source/tests/gperf_heap_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/hybrid_tests.cpp b/source/tests/hybrid_tests.cpp index 8c20a03ab..5915fd6c8 100644 --- a/source/tests/hybrid_tests.cpp +++ b/source/tests/hybrid_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/macro_tests.cpp b/source/tests/macro_tests.cpp index c498e0b12..15644e376 100644 --- a/source/tests/macro_tests.cpp +++ b/source/tests/macro_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/mangle_tests.cpp b/source/tests/mangle_tests.cpp index f99d969ca..07b139eac 100644 --- a/source/tests/mangle_tests.cpp +++ b/source/tests/mangle_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/mpi_tests.cpp b/source/tests/mpi_tests.cpp index c1cd16c68..3baa63c4f 100644 --- a/source/tests/mpi_tests.cpp +++ b/source/tests/mpi_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/papi_tests.cpp b/source/tests/papi_tests.cpp index bf005866d..d0c019ba2 100644 --- a/source/tests/papi_tests.cpp +++ b/source/tests/papi_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/priority_tests.cpp b/source/tests/priority_tests.cpp index 277a899fd..7ee4342ad 100644 --- a/source/tests/priority_tests.cpp +++ b/source/tests/priority_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -40,13 +40,13 @@ using namespace tim::component; // make different types to access and change traits individually -template -struct test_clock : public base> +template +struct test_clock : public base> { using ratio_t = std::nano; using value_type = int64_t; - using this_type = test_clock; - using base_type = base, value_type>; + using this_type = test_clock; + using base_type = base; using string_t = std::string; // since this is a template class, need these statements @@ -77,12 +77,16 @@ struct test_clock : public base> void start() { + if(StartSleep) + std::this_thread::sleep_for(std::chrono::milliseconds(500)); set_started(); value = record(); } void stop() { + if(StopSleep) + std::this_thread::sleep_for(std::chrono::milliseconds(500)); auto tmp = record(); accum += (tmp - value); value = tmp; @@ -90,8 +94,8 @@ struct test_clock : public base> } }; -using priority_start_wc = test_clock<0>; -using priority_stop_wc = test_clock<1>; +using priority_start_wc = test_clock<0, false, true>; +using priority_stop_wc = test_clock<1, true, false>; //--------------------------------------------------------------------------------------// @@ -112,10 +116,10 @@ template <> struct uses_timing_units : public std::true_type {}; template <> -struct start_priority : public std::true_type +struct start_priority : public std::integral_constant {}; template <> -struct stop_priority : public std::true_type +struct stop_priority : public std::integral_constant {}; } // namespace trait } // namespace tim @@ -125,10 +129,9 @@ struct stop_priority : public std::true_type using tuple_t = tim::component_tuple; -using prior_start_t = tuple_t::prior_start_t; -using prior_stop_t = tuple_t::prior_stop_t; -using stand_start_t = tuple_t::stand_start_t; -using stand_stop_t = tuple_t::stand_stop_t; +using plus_t = typename tuple_t::operation_t; +using start_t = typename tuple_t::operation_t; +using stop_t = typename tuple_t::operation_t; using apply_v = tim::apply; @@ -167,6 +170,10 @@ class priority_tests : public ::testing::Test TEST_F(priority_tests, simple_check) { + std::cout << "plus : " << tim::demangle() << "\n"; + std::cout << "start : " << tim::demangle() << "\n"; + std::cout << "stop : " << tim::demangle() << "\n"; + tuple_t t(details::get_test_name(), true); // start/stop all to check laps @@ -223,43 +230,17 @@ TEST_F(priority_tests, simple_check) TEST_F(priority_tests, start_stop) { - // lambdas to ensure inline - auto priority_start = [](tuple_t& t) { apply_v::access(t.data()); }; - auto priority_stop = [](tuple_t& t) { apply_v::access(t.data()); }; - auto standard_start = [](tuple_t& t) { apply_v::access(t.data()); }; - auto standard_stop = [](tuple_t& t) { apply_v::access(t.data()); }; + std::cout << "plus : " << tim::demangle() << "\n"; + std::cout << "start : " << tim::demangle() << "\n"; + std::cout << "stop : " << tim::demangle() << "\n"; tuple_t t(details::get_test_name(), true); - // start/stop all to check laps t.start(); - t.stop(); - - t.get().start(); - - do_sleep(250); // TOTAL TIME: 0.25 seconds - - priority_start(t); - - do_sleep(250); // TOTAL TIME: 0.50 seconds - - standard_start(t); - - do_sleep(500); // TOTAL TIME: 1.00 seconds - priority_stop(t); + do_sleep(500); // TOTAL TIME: 0.50 seconds - do_sleep(125); // TOTAL TIME: 1.125 seconds - - standard_stop(t); - - do_sleep(125); // TOTAL TIME: 1.25 seconds - - t.get().stop(); - - // t.start(); - // details::consume(500); - // t.stop(); + t.stop(); auto& native_wc = t.get(); auto& pstart_wc = t.get(); @@ -273,13 +254,13 @@ TEST_F(priority_tests, start_stop) std::cout << t << std::endl; printf("\n"); - double native_exp = 1.25; - double pstart_exp = 0.875; + double native_exp = 1.0; + double pstart_exp = 1.5; double pstop_exp = 0.5; + ASSERT_NEAR(native_exp, native_wc.get(), 0.125); ASSERT_NEAR(pstart_exp, pstart_wc.get(), 0.125); ASSERT_NEAR(pstop_exp, pstop_wc.get(), 0.125); - ASSERT_NEAR(native_exp, native_wc.get(), 0.125); } //--------------------------------------------------------------------------------------// diff --git a/source/tests/rusage_tests.cpp b/source/tests/rusage_tests.cpp index a2b0de262..686d46121 100644 --- a/source/tests/rusage_tests.cpp +++ b/source/tests/rusage_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/timing_tests.cpp b/source/tests/timing_tests.cpp index eb68dc491..310424fbb 100644 --- a/source/tests/timing_tests.cpp +++ b/source/tests/timing_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/tuple_tests.cpp b/source/tests/tuple_tests.cpp index 5251f5551..8167dab51 100644 --- a/source/tests/tuple_tests.cpp +++ b/source/tests/tuple_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/upcxx_tests.cpp b/source/tests/upcxx_tests.cpp index 9ed0ec1fc..0dcf0c363 100644 --- a/source/tests/upcxx_tests.cpp +++ b/source/tests/upcxx_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/tests/user_bundle_tests.cpp b/source/tests/user_bundle_tests.cpp index 261559ac3..dd7ba0181 100644 --- a/source/tests/user_bundle_tests.cpp +++ b/source/tests/user_bundle_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -46,12 +46,17 @@ using lock_t = std::unique_lock; using string_t = std::string; using stringstream_t = std::stringstream; -using custom_bundle_t = user_bundle<0, native_tag>; -using auto_bundle_t = tim::auto_tuple; -using comp_bundle_t = typename auto_bundle_t::component_type; -using bundle0_t = tim::auto_tuple; -using bundle1_t = tim::auto_list; -using bundle2_t = tim::auto_tuple; +struct bundle_testing +{}; + +using auto_bundle_t = tim::auto_tuple; +using comp_bundle_t = typename auto_bundle_t::component_type; +using bundle0_t = tim::auto_tuple; +using bundle1_t = tim::auto_list; + +using custom_bundle_t = user_bundle<0, bundle_testing>; +using auto_custom_bundle_t = tim::auto_tuple; +using comp_custom_bundle_t = typename auto_custom_bundle_t::component_type; //--------------------------------------------------------------------------------------// @@ -112,7 +117,9 @@ class user_bundle_tests : public ::testing::Test pr_size_orig = tim::storage::instance()->size(); ret = 0; + custom_bundle_t::reset(); user_list_bundle::reset(); + user_tuple_bundle::reset(); auto bundle1_init = [](bundle1_t& _bundle) { if(details::get_test_name() != "bundle_0" && @@ -183,8 +190,10 @@ TEST_F(user_bundle_tests, bundle_1) //--------------------------------------------------------------------------------------// -TEST_F(user_bundle_tests, bundle_2) +TEST_F(user_bundle_tests, comp_bundle) { + printf("TEST_NAME: %s\n", details::get_test_name().c_str()); + { comp_bundle_t _instance(details::get_test_name(), true); _instance.get().clear(); @@ -248,7 +257,9 @@ TEST_F(user_bundle_tests, bundle_init_func) TEST_F(user_bundle_tests, bundle_insert) { - auto init_func = [](bundle2_t& al) { + printf("TEST_NAME: %s\n", details::get_test_name().c_str()); + + auto init_func = [](auto_custom_bundle_t& al) { std::vector _init = { "wall_clock", "cpu_clock" }; auto& _bundle = al.get(); tim::insert(_bundle, _init); @@ -256,12 +267,12 @@ TEST_F(user_bundle_tests, bundle_insert) }; { - bundle2_t _one(details::get_test_name(), false, false, init_func); + auto_custom_bundle_t _one(details::get_test_name(), false, false, init_func); ret += details::fibonacci(35); } { - bundle2_t _two(details::get_test_name(), false, false, init_func); + auto_custom_bundle_t _two(details::get_test_name(), false, false, init_func); ret += details::fibonacci(35); } @@ -282,14 +293,16 @@ TEST_F(user_bundle_tests, bundle_insert) TEST_F(user_bundle_tests, bundle_configure) { + printf("TEST_NAME: %s\n", details::get_test_name().c_str()); + std::initializer_list _init = { "wall_clock", "cpu_clock" }; tim::configure(_init); tim::configure({ CPU_UTIL, PEAK_RSS }); { - bundle2_t _one(details::get_test_name()); + auto_custom_bundle_t _one(details::get_test_name()); ret += details::fibonacci(35); - bundle2_t _two(details::get_test_name()); + auto_custom_bundle_t _two(details::get_test_name()); ret += details::fibonacci(35); } @@ -308,6 +321,140 @@ TEST_F(user_bundle_tests, bundle_configure) //--------------------------------------------------------------------------------------// +TEST_F(user_bundle_tests, bundle_configure_ext) +{ + printf("TEST_NAME: %s\n", details::get_test_name().c_str()); + + custom_bundle_t::reset(); + tim::configure({ CALIPER, + CPU_CLOCK, + CPU_UTIL, + DATA_RSS, + LIKWID_NVMON, + LIKWID_PERFMON, + MONOTONIC_CLOCK, + MONOTONIC_RAW_CLOCK, + NUM_IO_IN, + NUM_IO_OUT, + NUM_MAJOR_PAGE_FAULTS, + NUM_MINOR_PAGE_FAULTS, + NUM_SIGNALS, + NUM_SWAP, + NVTX_MARKER, + PAGE_RSS, + PEAK_RSS, + PRIORITY_CONTEXT_SWITCH, + PROCESS_CPU_CLOCK, + PROCESS_CPU_UTIL, + READ_BYTES, + STACK_RSS, + SYS_CLOCK, + TAU_MARKER, + THREAD_CPU_CLOCK, + THREAD_CPU_UTIL, + TRIP_COUNT, + USER_CLOCK, + VIRTUAL_MEMORY, + VOLUNTARY_CONTEXT_SWITCH, + VTUNE_EVENT, + VTUNE_FRAME, + WALL_CLOCK, + WRITTEN_BYTES }); + + { + auto_custom_bundle_t _one(details::get_test_name()); + ret += details::fibonacci(35); + auto_custom_bundle_t _two(details::get_test_name()); + ret += details::fibonacci(35); + } + + printf("fibonacci(35) = %li\n", ret); + + auto wc_n = wc_size_orig + 2; + auto cu_n = cu_size_orig + 2; + auto cc_n = cc_size_orig + 2; + auto pr_n = pr_size_orig + 2; + + ASSERT_EQ(tim::storage::instance()->size(), wc_n); + ASSERT_EQ(tim::storage::instance()->size(), cu_n); + ASSERT_EQ(tim::storage::instance()->size(), cc_n); + ASSERT_EQ(tim::storage::instance()->size(), pr_n); +} + +//--------------------------------------------------------------------------------------// + +TEST_F(user_bundle_tests, bundle_insert_ext) +{ + printf("TEST_NAME: %s\n", details::get_test_name().c_str()); + + using comp_vec_t = std::set; + + custom_bundle_t::reset(); + comp_vec_t compenum = { CALIPER, + CPU_CLOCK, + CPU_UTIL, + DATA_RSS, + LIKWID_NVMON, + LIKWID_PERFMON, + MONOTONIC_CLOCK, + MONOTONIC_RAW_CLOCK, + NUM_IO_IN, + NUM_IO_OUT, + NUM_MAJOR_PAGE_FAULTS, + NUM_MINOR_PAGE_FAULTS, + NUM_SIGNALS, + NUM_SWAP, + NVTX_MARKER, + PAGE_RSS, + PEAK_RSS, + PRIORITY_CONTEXT_SWITCH, + PROCESS_CPU_CLOCK, + PROCESS_CPU_UTIL, + READ_BYTES, + STACK_RSS, + SYS_CLOCK, + TAU_MARKER, + THREAD_CPU_CLOCK, + THREAD_CPU_UTIL, + TRIP_COUNT, + USER_CLOCK, + VIRTUAL_MEMORY, + VOLUNTARY_CONTEXT_SWITCH, + VTUNE_EVENT, + VTUNE_FRAME, + WALL_CLOCK, + WRITTEN_BYTES }; + + { + comp_custom_bundle_t _one(details::get_test_name()); + comp_custom_bundle_t _two(details::get_test_name()); + tim::insert(_one.get(), compenum); + + _one.start(); + ret += details::fibonacci(35); + + _two.start(); + ret += details::fibonacci(35); + + _two.stop(); + _one.stop(); + } + + printf("fibonacci(35) = %li\n", ret); + + auto wc_n = wc_size_orig + 1; + auto cu_n = cu_size_orig + 1; + auto cc_n = cc_size_orig + 1; + auto pr_n = pr_size_orig + 1; + + ASSERT_EQ(tim::storage::instance()->size(), wc_n); + ASSERT_EQ(tim::storage::instance()->size(), cu_n); + ASSERT_EQ(tim::storage::instance()->size(), cc_n); + ASSERT_EQ(tim::storage::instance()->size(), pr_n); +} + +//--------------------------------------------------------------------------------------// + int main(int argc, char** argv) { diff --git a/source/tests/variadic_tests.cpp b/source/tests/variadic_tests.cpp index eb1e9dce6..b9eac832c 100644 --- a/source/tests/variadic_tests.cpp +++ b/source/tests/variadic_tests.cpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends.hpp b/source/timemory/backends.hpp index b1551cfd9..c43347bbd 100644 --- a/source/timemory/backends.hpp +++ b/source/timemory/backends.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/bits/callback.hpp b/source/timemory/backends/bits/callback.hpp index 4d550cdbe..0d1ed5041 100644 --- a/source/timemory/backends/bits/callback.hpp +++ b/source/timemory/backends/bits/callback.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/bits/cuda.hpp b/source/timemory/backends/bits/cuda.hpp index f4fc84b4f..1b31d876d 100644 --- a/source/timemory/backends/bits/cuda.hpp +++ b/source/timemory/backends/bits/cuda.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/bits/cupti.hpp b/source/timemory/backends/bits/cupti.hpp index 741329cd9..dd657e446 100644 --- a/source/timemory/backends/bits/cupti.hpp +++ b/source/timemory/backends/bits/cupti.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/bits/papi.hpp b/source/timemory/backends/bits/papi.hpp index 2997359bd..eba44f4da 100644 --- a/source/timemory/backends/bits/papi.hpp +++ b/source/timemory/backends/bits/papi.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/bits/rusage.hpp b/source/timemory/backends/bits/rusage.hpp index d5f8cee14..f0735c463 100644 --- a/source/timemory/backends/bits/rusage.hpp +++ b/source/timemory/backends/bits/rusage.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/caliper.hpp b/source/timemory/backends/caliper.hpp index 8b584fec7..355fbed89 100644 --- a/source/timemory/backends/caliper.hpp +++ b/source/timemory/backends/caliper.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/clocks.hpp b/source/timemory/backends/clocks.hpp index ae2b8af18..8f8e54f79 100644 --- a/source/timemory/backends/clocks.hpp +++ b/source/timemory/backends/clocks.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/cuda.hpp b/source/timemory/backends/cuda.hpp index acc73b2c6..55d6200f9 100644 --- a/source/timemory/backends/cuda.hpp +++ b/source/timemory/backends/cuda.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/cupti.hpp b/source/timemory/backends/cupti.hpp index b0459d52b..5b806b342 100644 --- a/source/timemory/backends/cupti.hpp +++ b/source/timemory/backends/cupti.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/device.hpp b/source/timemory/backends/device.hpp index 65e665be1..2f8307391 100644 --- a/source/timemory/backends/device.hpp +++ b/source/timemory/backends/device.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/dmp.hpp b/source/timemory/backends/dmp.hpp index 6d9e95542..6fff60028 100644 --- a/source/timemory/backends/dmp.hpp +++ b/source/timemory/backends/dmp.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/gotcha.hpp b/source/timemory/backends/gotcha.hpp index a0135a51d..1a9264db8 100644 --- a/source/timemory/backends/gotcha.hpp +++ b/source/timemory/backends/gotcha.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/gperf.hpp b/source/timemory/backends/gperf.hpp index 9c4914f31..70db6fe7b 100644 --- a/source/timemory/backends/gperf.hpp +++ b/source/timemory/backends/gperf.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/ittnotify.hpp b/source/timemory/backends/ittnotify.hpp index d54dc140d..255948b79 100644 --- a/source/timemory/backends/ittnotify.hpp +++ b/source/timemory/backends/ittnotify.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/mpi.hpp b/source/timemory/backends/mpi.hpp index 891639b0b..21ad1ed34 100644 --- a/source/timemory/backends/mpi.hpp +++ b/source/timemory/backends/mpi.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/nvtx.hpp b/source/timemory/backends/nvtx.hpp index 38c998ec9..3f5054ffc 100644 --- a/source/timemory/backends/nvtx.hpp +++ b/source/timemory/backends/nvtx.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/papi.hpp b/source/timemory/backends/papi.hpp index 2d3ed7c5d..3c8778ab9 100644 --- a/source/timemory/backends/papi.hpp +++ b/source/timemory/backends/papi.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/rusage.hpp b/source/timemory/backends/rusage.hpp index 27366b4d4..b651e82bd 100644 --- a/source/timemory/backends/rusage.hpp +++ b/source/timemory/backends/rusage.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/signals.hpp b/source/timemory/backends/signals.hpp index 46f72f8c6..a87d7fead 100644 --- a/source/timemory/backends/signals.hpp +++ b/source/timemory/backends/signals.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/threading.hpp b/source/timemory/backends/threading.hpp index fcaf8ce9e..4639b49af 100644 --- a/source/timemory/backends/threading.hpp +++ b/source/timemory/backends/threading.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/backends/upcxx.hpp b/source/timemory/backends/upcxx.hpp index 9df0fbe11..662c9812e 100644 --- a/source/timemory/backends/upcxx.hpp +++ b/source/timemory/backends/upcxx.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/bits/manager.hpp b/source/timemory/bits/manager.hpp index dacc112bf..6b2512548 100644 --- a/source/timemory/bits/manager.hpp +++ b/source/timemory/bits/manager.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/compat/library.h b/source/timemory/compat/library.h index 3e3dfd5f3..eab645222 100644 --- a/source/timemory/compat/library.h +++ b/source/timemory/compat/library.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/compat/macros.h b/source/timemory/compat/macros.h index 7f7734e61..7aa5fab1a 100644 --- a/source/timemory/compat/macros.h +++ b/source/timemory/compat/macros.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/compat/timemory_c.h b/source/timemory/compat/timemory_c.h index 37b0e124c..485e4d797 100644 --- a/source/timemory/compat/timemory_c.h +++ b/source/timemory/compat/timemory_c.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/compat/timemory_f.h b/source/timemory/compat/timemory_f.h index 252de28f8..cfcd83ea9 100644 --- a/source/timemory/compat/timemory_f.h +++ b/source/timemory/compat/timemory_f.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components.hpp b/source/timemory/components.hpp index 729b46e5a..04d22c00c 100644 --- a/source/timemory/components.hpp +++ b/source/timemory/components.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/base.hpp b/source/timemory/components/base.hpp index 505df2f31..a4ae64e02 100644 --- a/source/timemory/components/base.hpp +++ b/source/timemory/components/base.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -522,11 +522,14 @@ struct base obj += rhs; obj.plus(rhs); Type::append(graph_itr, rhs); - _storage->pop(); - _storage->stack_pop(&rhs); - - auto _end_depth = _storage->depth(); - depth_change = (_beg_depth > _end_depth); + if(_storage) + { + _storage->pop(); + _storage->stack_pop(&rhs); + + auto _end_depth = _storage->depth(); + depth_change = (_beg_depth > _end_depth); + } } obj.is_running = false; is_on_stack = false; diff --git a/source/timemory/components/caliper.hpp b/source/timemory/components/caliper.hpp index 9691a7c35..17867971f 100644 --- a/source/timemory/components/caliper.hpp +++ b/source/timemory/components/caliper.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/cuda/event.hpp b/source/timemory/components/cuda/event.hpp index 5f9fe90fe..6b3429a69 100644 --- a/source/timemory/components/cuda/event.hpp +++ b/source/timemory/components/cuda/event.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/cuda/nvtx_marker.hpp b/source/timemory/components/cuda/nvtx_marker.hpp index 07bc79ff0..0d283c077 100644 --- a/source/timemory/components/cuda/nvtx_marker.hpp +++ b/source/timemory/components/cuda/nvtx_marker.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/cuda/profiler.hpp b/source/timemory/components/cuda/profiler.hpp index f61de2856..0103949fb 100644 --- a/source/timemory/components/cuda/profiler.hpp +++ b/source/timemory/components/cuda/profiler.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/cupti/activity.hpp b/source/timemory/components/cupti/activity.hpp index ab4478732..d90b2687e 100644 --- a/source/timemory/components/cupti/activity.hpp +++ b/source/timemory/components/cupti/activity.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/cupti/counters.hpp b/source/timemory/components/cupti/counters.hpp index ed944448a..6d8ccccf1 100644 --- a/source/timemory/components/cupti/counters.hpp +++ b/source/timemory/components/cupti/counters.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/derived/malloc_gotcha.hpp b/source/timemory/components/derived/malloc_gotcha.hpp index e75296b35..d78546bc4 100644 --- a/source/timemory/components/derived/malloc_gotcha.hpp +++ b/source/timemory/components/derived/malloc_gotcha.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/general.hpp b/source/timemory/components/general.hpp index b39091c68..a6fea52ec 100644 --- a/source/timemory/components/general.hpp +++ b/source/timemory/components/general.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/gotcha.hpp b/source/timemory/components/gotcha.hpp index cbc2bbe6f..cfecbccf4 100644 --- a/source/timemory/components/gotcha.hpp +++ b/source/timemory/components/gotcha.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/likwid.hpp b/source/timemory/components/likwid.hpp index e7417624c..3c84fffcb 100644 --- a/source/timemory/components/likwid.hpp +++ b/source/timemory/components/likwid.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/papi/array.hpp b/source/timemory/components/papi/array.hpp index 017afae74..ef162054a 100644 --- a/source/timemory/components/papi/array.hpp +++ b/source/timemory/components/papi/array.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/papi/tuple.hpp b/source/timemory/components/papi/tuple.hpp index 16b07f41d..4524be9a9 100644 --- a/source/timemory/components/papi/tuple.hpp +++ b/source/timemory/components/papi/tuple.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/placeholder.hpp b/source/timemory/components/placeholder.hpp index ff9079794..a38fde8b7 100644 --- a/source/timemory/components/placeholder.hpp +++ b/source/timemory/components/placeholder.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/properties.hpp b/source/timemory/components/properties.hpp index 5f19137a1..43632fd30 100644 --- a/source/timemory/components/properties.hpp +++ b/source/timemory/components/properties.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/roofline/cpu.hpp b/source/timemory/components/roofline/cpu.hpp index 393743ee0..f46935f5e 100644 --- a/source/timemory/components/roofline/cpu.hpp +++ b/source/timemory/components/roofline/cpu.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/roofline/gpu.hpp b/source/timemory/components/roofline/gpu.hpp index bd699559b..af1c443cd 100644 --- a/source/timemory/components/roofline/gpu.hpp +++ b/source/timemory/components/roofline/gpu.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/rusage.hpp b/source/timemory/components/rusage.hpp index a02eece9f..3fdb2f0b7 100644 --- a/source/timemory/components/rusage.hpp +++ b/source/timemory/components/rusage.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/skeletons.hpp b/source/timemory/components/skeletons.hpp index 32414d0ae..5bb7858ca 100644 --- a/source/timemory/components/skeletons.hpp +++ b/source/timemory/components/skeletons.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/tau.hpp b/source/timemory/components/tau.hpp index fd2d1ee19..fb95ff27b 100644 --- a/source/timemory/components/tau.hpp +++ b/source/timemory/components/tau.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/timing.hpp b/source/timemory/components/timing.hpp index ad0200cd6..55462b56c 100644 --- a/source/timemory/components/timing.hpp +++ b/source/timemory/components/timing.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/types.hpp b/source/timemory/components/types.hpp index 613237a1f..e833e2628 100644 --- a/source/timemory/components/types.hpp +++ b/source/timemory/components/types.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/user_bundle.hpp b/source/timemory/components/user_bundle.hpp index b2216c356..cad34f456 100644 --- a/source/timemory/components/user_bundle.hpp +++ b/source/timemory/components/user_bundle.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -258,6 +258,8 @@ struct user_bundle : public base, void> enable_if_t<(sizeof...(_Tail) > 0), int> = 0> static void configure(bool _flat = settings::flat_profile()) { + DEBUG_PRINT_HERE("%s", demangle<_Head>().c_str()); + configure<_Head>(_flat); configure<_Tail...>(_flat); } @@ -371,6 +373,8 @@ struct user_bundle : public base, void> enable_if_t<(_Toolset::is_component), char> = 0> void insert(bool _flat = settings::flat_profile()) { + DEBUG_PRINT_HERE("%s", demangle<_Toolset>().c_str()); + internal_init<_Toolset>(); using _Toolset_t = auto_tuple<_Toolset>; @@ -399,6 +403,8 @@ struct user_bundle : public base, void> enable_if_t = 0> void insert(bool _flat = settings::flat_profile()) { + DEBUG_PRINT_HERE("%s", demangle<_Toolset>().c_str()); + internal_init(); auto _start = [=](const std::string& _prefix) { @@ -427,6 +433,8 @@ struct user_bundle : public base, void> enable_if_t = 0> void insert(_InitFunc&& _init, bool _flat = settings::flat_profile()) { + DEBUG_PRINT_HERE("%s", demangle<_Toolset>().c_str()); + internal_init(); auto _start = [=](const std::string& _prefix) { @@ -455,6 +463,8 @@ struct user_bundle : public base, void> enable_if_t<(sizeof...(_Tail) > 0), int> = 0> void insert(bool _flat = settings::flat_profile()) { + DEBUG_PRINT_HERE("%s", demangle<_Head>().c_str()); + configure<_Head>(_flat); configure<_Tail...>(_flat); } diff --git a/source/timemory/components/vtune/event.hpp b/source/timemory/components/vtune/event.hpp index 29c03a516..3cc346abd 100644 --- a/source/timemory/components/vtune/event.hpp +++ b/source/timemory/components/vtune/event.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/components/vtune/frame.hpp b/source/timemory/components/vtune/frame.hpp index 744cae533..e4cd1dc76 100644 --- a/source/timemory/components/vtune/frame.hpp +++ b/source/timemory/components/vtune/frame.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/config.hpp b/source/timemory/config.hpp index 3ef7400c1..0c741f25a 100644 --- a/source/timemory/config.hpp +++ b/source/timemory/config.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/data/functional.hpp b/source/timemory/data/functional.hpp index d46debbf8..a6cb2b7fd 100644 --- a/source/timemory/data/functional.hpp +++ b/source/timemory/data/functional.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/data/statistics.hpp b/source/timemory/data/statistics.hpp index 11438620c..2932592f5 100644 --- a/source/timemory/data/statistics.hpp +++ b/source/timemory/data/statistics.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/enum.h b/source/timemory/enum.h index 700262fc9..c1fed8c69 100644 --- a/source/timemory/enum.h +++ b/source/timemory/enum.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/aligned_allocator.hpp b/source/timemory/ert/aligned_allocator.hpp index e7bc781e7..36c6fddcf 100644 --- a/source/timemory/ert/aligned_allocator.hpp +++ b/source/timemory/ert/aligned_allocator.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/barrier.hpp b/source/timemory/ert/barrier.hpp index be186640a..a1d9fd6d5 100644 --- a/source/timemory/ert/barrier.hpp +++ b/source/timemory/ert/barrier.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/cache_size.hpp b/source/timemory/ert/cache_size.hpp index 71077e2bb..f3fd13019 100644 --- a/source/timemory/ert/cache_size.hpp +++ b/source/timemory/ert/cache_size.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/configuration.hpp b/source/timemory/ert/configuration.hpp index 363e5bd91..779eb8f97 100644 --- a/source/timemory/ert/configuration.hpp +++ b/source/timemory/ert/configuration.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/counter.hpp b/source/timemory/ert/counter.hpp index 354148463..af1f28c99 100644 --- a/source/timemory/ert/counter.hpp +++ b/source/timemory/ert/counter.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/data.hpp b/source/timemory/ert/data.hpp index 067cab1ed..b45154670 100644 --- a/source/timemory/ert/data.hpp +++ b/source/timemory/ert/data.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/kernels.hpp b/source/timemory/ert/kernels.hpp index 55d5ee03f..85c8461a8 100644 --- a/source/timemory/ert/kernels.hpp +++ b/source/timemory/ert/kernels.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/ert/types.hpp b/source/timemory/ert/types.hpp index e5da3a06a..1d4cb7c0e 100644 --- a/source/timemory/ert/types.hpp +++ b/source/timemory/ert/types.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/extern/auto_timer.hpp b/source/timemory/extern/auto_timer.hpp index d42781aec..93596ccb1 100644 --- a/source/timemory/extern/auto_timer.hpp +++ b/source/timemory/extern/auto_timer.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/extern/auto_user_bundle.hpp b/source/timemory/extern/auto_user_bundle.hpp index f4fc84ac7..f3c248cfb 100644 --- a/source/timemory/extern/auto_user_bundle.hpp +++ b/source/timemory/extern/auto_user_bundle.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/extern/complete_list.hpp b/source/timemory/extern/complete_list.hpp index effd671ca..49d254da8 100644 --- a/source/timemory/extern/complete_list.hpp +++ b/source/timemory/extern/complete_list.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/extern/ert.hpp b/source/timemory/extern/ert.hpp index 238b3b7e4..c00a912f0 100644 --- a/source/timemory/extern/ert.hpp +++ b/source/timemory/extern/ert.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/extern/init.hpp b/source/timemory/extern/init.hpp index 0f5cc71a8..165120382 100644 --- a/source/timemory/extern/init.hpp +++ b/source/timemory/extern/init.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/general/hash.hpp b/source/timemory/general/hash.hpp index c18e6be68..7a21c45e1 100644 --- a/source/timemory/general/hash.hpp +++ b/source/timemory/general/hash.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/general/source_location.hpp b/source/timemory/general/source_location.hpp index 7c1933316..70ce5fc75 100644 --- a/source/timemory/general/source_location.hpp +++ b/source/timemory/general/source_location.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/general/types.hpp b/source/timemory/general/types.hpp index 114d3473c..c87390954 100644 --- a/source/timemory/general/types.hpp +++ b/source/timemory/general/types.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/library.h b/source/timemory/library.h index 733476a1f..579d997fd 100644 --- a/source/timemory/library.h +++ b/source/timemory/library.h @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/manager.hpp b/source/timemory/manager.hpp index 22f2d333e..3aa4abcf1 100644 --- a/source/timemory/manager.hpp +++ b/source/timemory/manager.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // diff --git a/source/timemory/mpl/apply.hpp b/source/timemory/mpl/apply.hpp index 5589da377..472a7db3d 100644 --- a/source/timemory/mpl/apply.hpp +++ b/source/timemory/mpl/apply.hpp @@ -1,6 +1,6 @@ // MIT License // -// Copyright (c) 2019, The Regents of the University of California, +// Copyright (c) 2020, The Regents of the University of California, // through Lawrence Berkeley National Laboratory (subject to receipt of any // required approvals from the U.S. Dept. of Energy). All rights reserved. // @@ -132,6 +132,86 @@ struct apply { using _Ret = void; + //----------------------------------------------------------------------------------// + + template + struct out_of_order_T; + + template