Searcharxiv⌕ Search

arXiv subjects

Vassil Vassilev

Publications and source records attributed to Vassil Vassilev.

27 records · Page 2Linked to original sources

Automatic Differentiation in ROOT

In mathematics and computer algebra, automatic differentiation (AD) is a set of techniques to evaluate the derivative of a function specified by a computer program. AD exploits the fact that every computer program, no matter how complicated, executes a sequence of elementary arithmetic operations (addition, subtraction, multiplication, division, etc.), elementary functions (exp, log, sin, cos, etc.) and control flow statements. AD takes source code of a function as input and produces source code of the derived function. By applying the chain rule repeatedly to these operations, derivatives of arbitrary order can be computed automatically, accurately to working precision, and using at most a small constant factor more arithmetic operations than the original program. This paper presents AD techniques available in ROOT, supported by Cling, to produce derivatives of arbitrary C/C++ functions through implementing source code transformation and employing the chain rule of differential calculus in both forward mode and reverse mode. We explain its current integration for gradient computation in TFormula. We demonstrate the correctness and performance improvements in ROOT's fitting algorithms.

cs.MS↗

Behavior of the van der Waals force between a plate and a single-walled carbon nanotube under uniform hydrostatic pressure: a theoretical study

We study the behaviour of the non-retarded van der Waals force between a planar substrate and a single-walled carbon nanotube, assuming that the system is immersed in a liquid medium which exerts hydrostatic pressure on the tube's surface, thereby altering its cross-section profile. The shape of the latter is described as a continual structure characterized by its symmetry index $n$. Two principle mutual positions of the tube with respect to the substrate are studied: when one keeps constant the minimal separation between the surfaces of the interacting objects; when the distance from the tube's axis to the substrates bounding surface is fixed. Within these conditions, using the technique of the surface integration approach, we derive an integral form of the expressions which give the dependence of the commented force on the applied pressure.

cond-mat.mes-hall↗

Migrating large codebases to C++ Modules

ROOT has several features which interact with libraries and require implicit header inclusion. This can be triggered by reading or writing data on disk, or user actions at the prompt. Often, the headers are immutable, and reparsing is redundant. C++ Modules are designed to minimize the reparsing of the same header content by providing an efficient on-disk representation of C++ Code. ROOT has released a C++ Modules-aware technology preview which intends to become the default for the next release. In this paper, we will summarize our experience with migrating C++ Modules to LHC experiment's software code bases. We outline the challenges in C++ Modules migration of the CMS software, including the integration of C++ Modules support in CMS build system. We also evaluate the performance benefits that experiments are expected to achieve.

cs.SE↗

Evolution of ROOT package management

ROOT is a large code base with a complex set of build-time dependencies; there is a significant difference in compilation time between the "core" of ROOT and the full-fledged deployment. We present results on a "delayed build" for internal ROOT packages and external packages. This gives the ability to offer a "lightweight" core of ROOT, later extended by building additional modules to extend the functionality of ROOT. As a part of this work, we have improved the separation of ROOT code into distinct modules and packages with minimal dependencies. This approach gives users better flexibility and the possibility to combine various build features without rebuilding from scratch. Dependency hell is a common problem found in software and particularly in HEP software ecosystem. We would like to discuss an improvement of artifact management ("lazy-install") system as a solution to the "dependency hell" problem. HEP software stack usually consists of multiple sub-projects with dependencies. The development model is often distributed, independent and non-coherent among the sub-projects. We believe that software should be designed to take advantage of other software components that are already available, or have already been designed and implemented for use elsewhere rather than "reinventing the wheel". In our contribution, we will present our approach to artifact management system of ROOT together with a set of examples and use cases.

cs.SE↗

Optimizing Frameworks Performance Using C++ Modules Aware ROOT

ROOT is a data analysis framework broadly used in and outside of High Energy Physics (HEP). Since HEP software frameworks always strive for performance improvements, ROOT was extended with experimental support of runtime C++ Modules. C++ Modules are designed to improve the performance of C++ code parsing. C++ Modules offers a promising way to improve ROOT's runtime performance by saving the C++ header parsing time which happens during ROOT runtime. This paper presents the results and challenges of integrating C++ Modules into ROOT.

cs.PL↗

Continuous Performance Benchmarking Framework for ROOT

Foundational software libraries such as ROOT are under intense pressure to avoid software regression, including performance regressions. Continuous performance benchmarking, as a part of continuous integration and other code quality testing, is an industry best-practice to understand how the performance of a software product evolves over time. We present a framework, built from industry best practices and tools, to help to understand ROOT code performance and monitor the efficiency of the code for a several processor architectures. It additionally allows historical performance measurements for ROOT I/O, vectorization and parallelization sub-systems.

cs.SE↗

Extending ROOT through Modules

The ROOT software framework is foundational for the HEP ecosystem, providing capabilities such as IO, a C++ interpreter, GUI, and math libraries. It uses object-oriented concepts and build-time components to layer between them. We believe additional layering formalisms will benefit ROOT and its users. We present the modularization strategy for ROOT which aims to formalize the description of existing source components, making available the dependencies and other metadata externally from the build system, and allow post-install additions of functionality in the runtime environment. components can then be grouped into packages, installable from external repositories to deliver post-install step of missing packages. This provides a mechanism for the wider software ecosystem to interact with a minimalistic install. Reducing intra-component dependencies improves maintainability and code hygiene. We believe helping maintain the smallest "base install" possible will help embedding use cases. The modularization effort draws inspiration from the Java, Python, and Swift ecosystems. Keeping aligned with the modern C++, this strategy relies on forthcoming features such as C++ modules. We hope formalizing the component layer will provide simpler ROOT installs, improve extensibility, and decrease the complexity of embedding in other ecosystems

cs.SE↗

Exact solution of Ginzburg's $Ψ$-theory for the Casimir force in $^4$He superfluid films

We present an analytical solution of the Ginzburg's $Ψ$-theory for the behavior of the Casimir force in a film of $^4$He in equilibrium with its vapor near the superfluid transition point, and we revisit the corresponding experiments in light of our findings. We find reasonably good agreement between the $Ψ$-theory predictions and the experimental data. Our calculated force is attractive, and the largest absolute value of the scaling function is $1.848$, while experiment yields $1.30$. The position of the extremum is predicted to be at $x=(L/ξ_0)(T/T_λ-1)^{1/ν}=π$, while experiment is consistent with $x=3.8$. Here $L$ is the thickness of the film, $T_λ$ is the bulk critical temperature and $ξ_0$ is the correlation length amplitude of the system for $T>T_λ$.

cond-mat.stat-mech↗

Casimir Force in a Model with Strongly Adsorbing Competing Walls: Analytical Results

We present both analytical and numerical results for the behaviour of the Casimir force in a Ginzburg-Landau type model of a film of a simple fluid or binary liquid mixture in which the confining surfaces are strongly adsorbing but preferring different phases of the simple fluid, or different components of the mixture. Under such boundary conditions an interface is formed between the competing phases inside the system which are forced to coexist. We investigate the force as a function of the temperature and in the presence of an external ordering field and determine the (temperature-field) relief map of the force. We prove the existence of a single global maximum of the force and find its position and value. We find the asymptotic behavior of the force when any of the scaling fields becomes large while the other one is negligible. Contrary to the case of symmetric boundary conditions we find, as expected, that the finite system does not possess a phase transition of its own for any finite values of the scaling variables corresponding to the temperature and the ordering field. We perform the study near the bulk critical temperature of the corresponding bulk system and find a perfect agreement with the finite-size scaling theory.

cond-mat.stat-mech↗