timemory | Profiling API

 by   NERSC C++ Version: 3.3.0rc4 License: Non-SPDX

kandi X-RAY | timemory Summary

kandi X-RAY | timemory Summary

timemory is a C++ library. timemory has no bugs, it has no vulnerabilities and it has low support. However timemory has a Non-SPDX License. You can download it from GitHub.

Timemory arose out of the need for a universal adapator kit for the various APIs provided several existing tools and a straight-forward and intuitive method for creating new tools. Timemory makes it possible to bundle together deterministic performance measurements, statistical performance measurements (i.e. sampling), debug messages, data logging, and data validation into the same interface for custom application-specific software monitoring interfaces, easily building tools like time, netstat, instrumentation profilers, sampling profilers, and writing implementations for MPI-P, MPI-T, OMPT, KokkosP, etc. Furthermore, timemory can forward its markers to several third-party profilers such as LIKWID, Caliper, TAU, gperftools, Perfetto, VTune, Allinea-MAP, CrayPAT, Nsight-Systems, Nsight-Compute, and NVProf. Timemory provides a front-end C/C++/Fortran API and Python API which allows arbitrary selection of 50+ different components from timers to hardware counters to interfaces with third-party tools. This is all built generically from the toolkit API with type-safe bundles of tools such as: component_tuple where wall_clock is a wall-clock timer, papi_vector is a handle for hardware counters, nvxt_marker creates notations in the NVIDIA CUDA profilers, and user_bundle is a generic component which downstream users can insert more components into at runtime. Performance measurement components written with timemory are arbitrarily scalable up to any number of threads and processes and fully support intermixing different measurements at different locations within the program -- this uniquely enables timemory to be deployed to collect performance data at scale in HPC because highly detailed collection can occur at specific locations within the program where ubiquitous collection would simulatenously degrade performance significantly and require a prohibitive amount of memory. Timemory can be used as a backend to bundle instrumentation and sampling tools together, support serialization to JSON/XML, and provide statistics among other uses. It can also be utilized as a front-end to invoke custom instrumentation and sampling tools. Timemory uses the abstract term "component" for a structure which encapsulates some performance analysis operation. The structure might encapsulate function calls to another tool, record timestamps for timing, log values provided by the application, provide a operator for replacing a function in the code dynamically, audit the incoming arguments and/or outgoing return value from function, or just provide stubs which can be overloaded by the linker.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              timemory has a low active ecosystem.
              It has 317 star(s) with 35 fork(s). There are 17 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 10 open issues and 48 have been closed. On average issues are closed in 50 days. There are 3 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of timemory is 3.3.0rc4

            kandi-Quality Quality

              timemory has no bugs reported.

            kandi-Security Security

              timemory has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              timemory has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              timemory releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of timemory
            Get all kandi verified functions for this library.

            timemory Key Features

            No Key Features are available at this moment for timemory.

            timemory Examples and Code Snippets

            No Code Snippets are available at this moment for timemory.

            Community Discussions

            QUESTION

            timemory compiler instrumentation output without symbols
            Asked 2021-Mar-17 at 08:16

            I'm trying to use timemory-compiler-instrument. I started by following the steps in the documentation and building the ex_compiler_instrument example as detailed in the documentation page I linked. Building it as part of timemory works as advertised.

            I then installed timemory and tried to build a similar project, only without basing it on the entire timemory build system. I basically took ex-compiler-instrument and created a new, independent project. The code in the .cpp file and the build script are identical, I'm just building them directly instead of going through the timemory build process.

            This build and runs without problems, but the output does not contain any symbol names:

            ...

            ANSWER

            Answered 2021-Mar-17 at 08:16

            This was figured out by Jonathan R. Madsen on the timemory GitHub repository: I was missing a -rdynamic link option:

            Source https://stackoverflow.com/questions/66634839

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install timemory

            You can download it from GitHub.

            Support

            The full documentation is available at timemory.readthedocs.io. Detailed source documentation is provided in the doygen section of the full documentation. Tutorials are available in the github.com/NERSC/timemory-tutorials.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install timemory

          • CLONE
          • HTTPS

            https://github.com/NERSC/timemory.git

          • CLI

            gh repo clone NERSC/timemory

          • sshUrl

            git@github.com:NERSC/timemory.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link