timemory | Profiling API
kandi X-RAY | timemory Summary
kandi X-RAY | timemory Summary
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
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of timemory
timemory Key Features
timemory Examples and Code Snippets
Community Discussions
Trending Discussions on timemory
QUESTION
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:16This was figured out by Jonathan R. Madsen on the timemory GitHub repository: I was missing a -rdynamic
link option:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install timemory
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page