• Home
  • Vassil G Vassilev
Vassil G Vassilev

Vassil G Vassilev

PhD in Computing

About

31
Publications
4,832
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
79
Citations
Additional affiliations
July 2010 - December 2014
CERN
Position
  • Fellow

Publications

Publications (31)
Preprint
Full-text available
ROOT is high energy physics' software for storing and mining data in a statistically sound way, to publish results with scientific graphics. It is evolving since 25 years, now providing the storage format for more than one exabyte of data; virtually all high energy physics experiments use ROOT. With another significant increase in the amount of dat...
Preprint
Full-text available
This document discusses the state, roadmap, and risks of the foundational components of ROOT with respect to the experiments at the HL-LHC (Run 4 and beyond). As foundational components, the document considers in particular the ROOT input/output (I/O) subsystem. The current HEP I/O is based on the TFile container file format and the TTree binary ev...
Preprint
Full-text available
The high energy physics community is discussing where investment is needed to prepare software for the HL-LHC and its unprecedented challenges. The ROOT project is one of the central software players in high energy physics since decades. From its experience and expectations, the ROOT team has distilled a comprehensive set of areas that should see r...
Preprint
C++ Modules come in C++20 to fix the long-standing build scalability problems in the language. They provide an io-efficient, on-disk representation capable to reduce build times and peak memory usage. ROOT employs the C++ modules technology further in the ROOT dictionary system to improve its performance and reduce the memory footprint. ROOT with C...
Preprint
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, et...
Article
Full-text available
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 exten...
Article
Full-text available
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...
Article
Full-text available
Debugging is a very time consuming task which is not well supported by existing tools. The existing methods do not provide tools enabling optimal developers' productivity when debugging regressions in complex systems. In this paper we describe a possible solution aiding differential debugging. The differential debugging technique performs analysis...
Article
Full-text available
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, et...
Article
Full-text available
C++ Modules, one of the new features of C++20, aim to fix the long-standing build scalability problems in the language. They provide an IOefficient, on-disk representation capable to reduce build times and peak memory usage. ROOT already employs the C++ modules technology in its dictionary system to improve performance and reduce the memory footpri...
Conference Paper
Full-text available
Collaboration in research is essential for saving time and money. The field of high-energy physics (HEP) is no different. The higher level of collaboration the stronger the community. The HEP field encourages organizing various events in format and size such as meetings, workshops and conferences. Making attending a HEP event easier leverages coope...
Preprint
Full-text available
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...
Preprint
Full-text available
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 exten...
Article
Full-text available
The 23 rd International Conference on Computing in High Energy and Nuclear Physics (CHEP) took place in the National Palace of Culture, Sofia, Bulgaria from 9 th to 13 th of July 2018. 575 participants joined the plenary and the eight parallel sessions dedicated to: online computing; offline computing; distributed computing; data handling; software...
Article
Full-text available
The ROOT software framework is foundational for the HEP ecosystem, providing multiple capabilities such as I/O, a C++ interpreter, GUI, and math libraries. It uses object-oriented concepts and build-time components to layer between them. We believe that a new layering formalism will benefit the ROOT user community. We present the modularization str...
Article
Full-text available
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. We present a f...
Article
Full-text available
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 impro...
Preprint
Full-text available
ROOT is a core HEP framework which is used broadly in and outside HEP. As HEP software frameworks always strive for performance, ROOT was extended with experimental support for using C++ modules during runtime. C++ modules are designed in part to improve the performance of parsing C++. As ROOT is parsing and interpreting C++ during runtime, C++ mod...
Preprint
Full-text available
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...
Preprint
Full-text available
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 p...
Article
Full-text available
ROOT comes with a C++ compliant interpreter cling. Cling needs to understand the content of the libraries in order to interact with them. Exposing the full shared library descriptors to the interpreter at runtime translates into increased memory footprint. ROOT's exploratory programming concepts allow implicit and explicit runtime shared library lo...
Article
Full-text available
This paper presents a framework, SolidOpt, which helps the automated and dynamic lifelong optimization of software systems. Usually, optimizations are a virtue of the (optimizing) compilers. We suggest moving out the optimization facilities and making them more accessible even to end-users during the entire program life cycle. In order to achieve b...
Conference Paper
Full-text available
Differentiation is ubiquitous in high energy physics, for instance in minimization algorithms and statistical analysis, in detector alignment and calibration, and in theory. Automatic differentiation (AD) avoids well-known limitations in round-offs and speed, which symbolic and numerical differentiation suffer from, by transforming the source code...
Conference Paper
Full-text available
Programming language evolution brought to us the domain-specific languages (DSL). They proved to be very useful for expressing specific concepts, turning into a vital ingredient even for general-purpose frameworks. Supporting declarative DSLs (such as SQL) in imperative languages (such as C++) can happen in the manner of language integrated query (...
Conference Paper
Full-text available
The paper presents a framework, which defines and automatizes the necessary steps for data migration. We give an overview of a flexible, platform-independent plugin system. The plugins are categorized according to the enumerated data migration steps. The paper argues in favor of a visual programming language, which helps the non-experts to drive th...
Conference Paper
Full-text available
The paper describes a multistage, interactive analysis and decompilation framework – SolidReflector. Some of the key algorithms responsible for the generation of intermediate representations are outlined and accompanied with examples. The work presents loose-coupled visualization techniques pairing code representations with their visual counterpart...
Data
Automatic Differentiation Differentiation is the process of finding a derivative, which measures how a function changes as its input changes. Derivatives can be evaluated with machine precision accuracy through a method called automatic differentiation. Unlike other methods for differentiation, including numerical and symbolic, automatic differenti...
Conference Paper
Full-text available
Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. Like its predecessor Cint, Cling realizes the read-print-evaluate-loop concept, in order to leverage rapid application development. Implemented as a small extension to LLVM and Clang, the interpreter reuses their strengths such as the praised concise an...
Conference Paper
This paper discusses building up a framework, which helps the automated and dynamic optimization of the software. Disadvantages of existing frameworks and systems are described. We determine the underlying main ideas and principles in the development of SolidOpt framework. The advantages and the need of using multiple models are discussed. We sugge...
Conference Paper
Full-text available
Article describes the union of architectural pattern MVC and five-layer architecture for geometric modelling. Main purpose is crea-tion of high-modular interactive systems. The implementation includes different reusable object-oriented design patterns and shows a possible application of the architectural union.

Network

Cited By

Projects

Projects (3)
Project
Automatic differentiation (AD) avoids well-known limitations in round-offs and speed, which symbolic and numerical differentiation suffer from, by transforming the source code of functions. Clad enables automatic differentiation (AD) for C++. It is based on LLVM compiler infrastructure and is a plugin for Clang compiler. Clad is based on source code transformation. Given C++ source code of a mathematical function, it can automatically generate C++ code for computing derivatives of the function. It supports both forward-mode and reverse-mode AD.
Project
The main objective is the study of visual programming languages (VPL). Experiments are mainly in the direction Openness, Interactivity and Dynamics of visual programming languages. The project deals with visual programming languages (and visual programs) as a subject, environment and tool for static and dynamic analysis of computer programs.