Papers by Alexander Penev
Fast And Automatic Floating Point Error Analysis With CHEF-FP
arXiv (Cornell University), Apr 13, 2023
International journal of pure and applied mathematics, 2018
The main aim of the paper is comparing the speed of calculation for a particular problem for frac... more The main aim of the paper is comparing the speed of calculation for a particular problem for fractional differential equations by parallel CUDA cores. The approximate solving of the initial value problem for scalar nonlinear Riemann-Liouville fractional differential equation is based on a suggested iterative scheme for constructing sequences of upper and lower solutions of the considered problem. In the general case the elements of these sequences are obtained by an integral containing the Mittag-Leffler function. It can cause the successive approximations to be difficult for practical applications. The computer program using the parallel calculations is built and applied to solve the problem.

Automatic differentiation(AD) is a method in computer algebra to evaluate the derivative of a fun... more Automatic differentiation(AD) is a method in computer algebra to evaluate the derivative of a function defined by source code, it's an alternative to symbolic and numerical differentiation. AD uses the fact than any algorithm can be decomposed to differentiable elementary operation and thereby differentiated using a chain rule. Clad is a Clang plugin 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. Our talk covers two features of Clad. The first one is Jacobian matrix computation using forward and reverse modes. Jacobian matrix have applications in such fields as machine learning and computational physics. The second one is error estimates of floating-point numbers. It allows to monitor the estimated relative error during a computation involving differentiated function produced by clad. It achieved by source co...

PS-Dash –Analysis, Monitoring and Visualization of Network Measurements
2021 International Conference Automatics and Informatics (ICAI)
Network performance and stability is a crucial part for an international scientific collaboration... more Network performance and stability is a crucial part for an international scientific collaboration with shared resources. Therefore, frameworks such as perfSONAR use various tools to track important network measures between nodes and gather extensive information about the underlying network. Given the amount of data collected (an average of 18 million measurements daily) and the level of expertise required to understand a specific issue, the need for a new application has emerged. PS-Dash provides a general overview of the network; ranks Sites based on their metrics; and highlights some major problems on the grid. It allows site admins and other experts to review the state of the scientific network infrastructure and presents references to external resources for in-depth analysis.

Cybernetics and Information Technologies, 2014
A novel approach is presented for recording high volume data about ray tracing rendering systems&... more A novel approach is presented for recording high volume data about ray tracing rendering systems' runtime state and its subsequent dynamic analysis and interactive visualization in the algorithm computational domain. Our framework extracts light paths traced by the system and leverages on a powerful filtering subsystem, helping interactive visualization and exploration of the desired subset of recorded data. We introduce a versatile data logging format and acceleration structures for easy access and filtering. We have implemented a plugin based framework and a tool set that realize all ideas presented in this paper. The framework provides data logging API for instrumenting production-ready, multithreaded, distributed renderers. The framework visualization tool enables deeper understanding of the ray tracing algorithms for novices, as well as for experts.
International Journal of Pure and Apllied Mathematics, 2013
The present paper describes an approach to geometric modelling, in which the representation of so... more The present paper describes an approach to geometric modelling, in which the representation of solids is hybrid and consists of an easily expandable collection of representations. We also consider an experimental prototype of a framework for the development of systems for geometric modelling based on open hybrid representation schemes. We present a method for creating software-hardware (hybrid) systems based on this approach.
This paper treats some aspects of configuring applications, libraries, and object classes. We are... more This paper treats some aspects of configuring applications, libraries, and object classes. We are proposing heterogeneous and structured approach, in order to define parameters of the systems, based on hierarchies of attribute-value (pairs) with additional metadata. This approach uses multiple levels and multiple formats of the configuration sources (files, databases, etc.). We are proposing a method for caching configuration sources, which are security insensitive, in order to accelerate them.

Problem description Let A be a square matrix over an arbitrary field. The permanent of the matrix... more Problem description Let A be a square matrix over an arbitrary field. The permanent of the matrix A is defined as the algebraic sum of the products of any N elements of the matrix, one in each row and column. Symbol: perm A – the permanent of the matrix A. Obviosly, the permanent is similar to the determinant, but without the sign change. From now on only numeric matrices will be considered. The evaluation of the permanent is a difficult mathematical problem. It has been put forward by Binet and Cauchy almost two centuries ago (cf. [1]). The fastest exact algorithm for the general case is Ryser's one, but it runs in O (N. 2 N) time. It has been proved that this problem is #P-hard, i.e. probably unsolvable in polynomial time. Then researchers have concentrated their efforts on discovering polynomial randomized algorithms. The latest results in this field can be found in [2], [3] and [4]. Many problems of practical importance can be reduced to the evaluation of the permanent. It i...
This paper presents a framework, SolidOpt, which helps the automated and dynamic lifelong optimiz... more 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 better results, SolidOpt provides multiple representations and flow graphs. The work presents some of the main ideas and principles of the optimization framework and the advantages of using multiple representations. We emphasize on the significance of the environment and how it influences the optimal execution of the computer programs. We examine a “continuous optimization” approach, which considers program’s environment and perform domain-specific optimizations. We illustrate the concept of these advanced optimizations with examples.

Visual differential debugging in the domain-specific visual programming languages
2020 International Conference Automatics and Informatics (ICAI), 2020
As complex software evolves and becomes increasingly more feature complete, it introduces challen... more As complex software evolves and becomes increasingly more feature complete, it introduces challenges when error detection is required. Finding errors is time consuming because of the complicated control flow graphs and data flows of the underlying complex systems. Identifying the cause of software faults is essential and well known process but in the context of complex systems it is not a trivial task. Developing features and improvements often results in introducing new faults known as software regressions. This means there is a prior version of the application running fine and recent version which is doing something unexpected. The developer could use a tool that loads and executes the two versions in parallel for comparing for differences. Some of the differences are not semantic and could be ignored. This paper provides a prototype for a visual differential debugger with a semantic layer capable of guiding the developer to the possible root of the fault.
We propose a heuristic algorithm for existence of nullsubmatrices in big sparse matrices. The alg... more We propose a heuristic algorithm for existence of nullsubmatrices in big sparse matrices. The algorithm is reflexive: it examines its own memory consumption, which is in correlation with its output. Mathematics Subject Classification 2000: Primary 68T20, Secondary 60G35, 68R05
We propose a new, heuristic algorithm for the rook problem. The algorithm is reflexive: it examin... more We propose a new, heuristic algorithm for the rook problem. The algorithm is reflexive: it examines its own running-time, which is in correlation with the output.

This paper discusses building up a framework, which helps the automated and dynamic optimization ... more 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 suggest a scheme, which generalizes the multiple model ideas. Software processes and their interaction with the (operational) environment are analyzed. We show the significance of the environment for the optimal execution of the computer programs. We examine an evolutionary approach for software system optimization depending on its behaviour in the environment. Adaptability and permissibility of the system evolution are discussed. Preliminary results of the experimental framework development are shown. The possibility of using SolidOpt with educational purposes to increase the students’ creativity and to encourage them to think innovatively is ...
F-Rep Designer 2.0 – Everything is a Code
This article discusses the visualization approach applied to the experimental geometric modeling ... more This article discusses the visualization approach applied to the experimental geometric modeling system F-Rep Designer 2.0. This system uses the Functional Representation (F-Rep) scheme in order to describe the model. In our approach the scene/model, the ray tracing algorithm, the shading model, and all that is necessary for the visualization are compiled into executable code for the selected target platform (CPU, GPGPU, etc.), and the execution of this code generates the final image. This is done through a multistep process, as the changes of the model lead to an optimized process of change in the various intermediate representations wherever possible.
Due to its great variety of applications, the packing problem attracted our attention. The proble... more Due to its great variety of applications, the packing problem attracted our attention. The problem is reduced via a graphtheoretic interpretation (searching for cliques in a graph) to searching for a submatrix of a special kind. An algorithm is constructed by means of self-monitoring, which is suitable for real-world problems.

Debugging is a very time consuming task which is not well supported by existing tools. The existi... more 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 of the regressed system and identifying the cause of the unexpected behavior by comparing to a previous version of the same system. The prototype, idd, inspects two versions of the executable – a baseline and a regressed version. The interactive debugging session runs side by side both executables and allows to examine and to compare various internal states. The architecture can work with multiple information sources comparing data from different tools. We also show how idd can detect performance regressions using information from third-party performance facilities. We illustrate how in practice we can quickly discover regressions in large...
Architecture and possible stages in developing of an open, flexible, distributed, multi-user, hyb... more Architecture and possible stages in developing of an open, flexible, distributed, multi-user, hybrid system for geometric modeling are considered in the following article. System requirements and its possible applications are also discussed.
Due to its great variety of applications, the problem about finding packings of segments attracte... more Due to its great variety of applications, the problem about finding packings of segments attracted our attention. In this paper the problem is investigated and reduced to finding submatrix of a special kind via graph-theory interpretation (finding cliques in a graph). A new powerful algorithm is thus obtained, suitable for a lot of real-world problems (processor time sharing, timetables generating, etc.).
This paper presents some basic concepts of F-Rep and R-Functions used in computer graphics. Here ... more This paper presents some basic concepts of F-Rep and R-Functions used in computer graphics. Here we made short comparison of B-Rep and F-Rep. We also discuss advantages and some important development aspects of so-called hybrid systems. We consider goals, directions, and applications of the developed, by the authors, experimental open hybrid system OpenF.

EPJ Web of Conferences
C++ Modules, one of the new features of C++20, aim to fix the long-standing build scalability pro... more 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 footprint. ROOT with C++ Modules was released as a technology preview in fall 2018, after intensive development during the previous few years. The current state is ready for production, however, there is still room for performance optimizations. In this talk, we show the road map for making this technology enabled by default in ROOT. We demonstrate a global module indexing optimization which allows reducing the memory footprint dramatically for many workflows. We will report user feedback on the migration to ROOT with C++ Modules.
Uploads
Papers by Alexander Penev