English

rcpptimer: Rcpp Tic-Toc Timer with OpenMP Support

Mathematical Software 2025-01-28 v1 Performance Computation

Abstract

Efficient code writing is both a critical and challenging task, especially with the growing demand for computationally intensive algorithms in statistical and machine-learning applications. Despite the availability of significant computational power today, the need for optimized algorithm implementations remains crucial. Many R users rely on Rcpp to write performant code in C++, but writing and benchmarking C++ code presents its own difficulties. While R's benchmarking tools are insufficient for measuring the execution times of C++ code segments, C++'s native profiling tools often come with a steep learning curve. The rcpptimer package bridges this gap by offering a simple and efficient solution for timing C++ code within the Rcpp ecosystem. This novel package introduces a user-friendly tic-toc class that supports overlapping and nested timers and OpenMP parallelism, providing nanosecond-level time resolution. Results, including summary statistics, are seamlessly passed back to R without requiring users to write any C++ code. This paper contextualizes the rcpptimer package within the broader ecosystem of R and C++ profiling tools, explains the motivation behind its development, and offers a comprehensive overview of its implementation. Supplementary to this paper, we provide multiple vignettes that thoroughly explain this package's usage.

Keywords

Cite

@article{arxiv.2501.15856,
  title  = {rcpptimer: Rcpp Tic-Toc Timer with OpenMP Support},
  author = {Jonathan Berrisch},
  journal= {arXiv preprint arXiv:2501.15856},
  year   = {2025}
}
R2 v1 2026-06-28T21:19:07.063Z