SearcharxivSearch

arXiv subjects

Valentin Volokitin

Publications and source records attributed to Valentin Volokitin.

12 recordsLinked to original sources

Rethinking Sparse Formats for RISC-V: A Hierarchical Approach to High-Performance SpMV

The sparse matrix-vector multiplication (SpMV) algorithm is a fundamental computational kernel of linear algebra and serves as a building block for numerous applications, primarily iterative solvers for systems of linear equations used in scientific and engineering simulations. This paper compares vectorized implementations of the SpMV algorithm across eight established sparse matrix storage formats and proposes a novel modification of the CSR format, Hierarchical CSR (HCSR), which enhances SpMV performance on RISC-V processors. Our SpMV implementations utilize RVV 1.0 intrinsics and are publicly available as an open-source C++ library named RVVLASparse. Computational experiments conducted on SpacemiT K1 and K3 RISC-V boards demonstrate that selecting an appropriate matrix storage format accelerates SpMV computations by an average of 1.6x, while the proposed HCSR format achieves the shortest execution time among all considered formats across a broad class of sparse matrices.

cs.DC

Performance optimization of BLAS algorithms with band matrices for RISC-V processors

The rapid development of RISC-V instruction set architecture presents new opportunities and challenges for software developers. Is it sufficient to simply recompile high-performance software optimized for x86-64 onto RISC-V CPUs? Are current compilers capable of effectively optimizing C and C++ codes or is it necessary to use intrinsics or assembler? Can we analyze and improve performance without well-developed profiling tools? Do standard optimization techniques work? Are there specific RISC-V features that need to be considered? These and other questions require careful consideration. In this paper, we present our experience optimizing four BLAS algorithms for band matrix operations on RISC-V processors. We demonstrate how RISC-V-optimized implementations of OpenBLAS algorithms can be significantly accelerated through improved vectorization of computationally intensive loops. Experiments on Lichee Pi 4A and Banana Pi BPI-F3 devices using RVV 0.7.1 and RVV 1.0 vector instruction sets respectively, show speedups of 1.5x to 10x depending on the operation compared to the OpenBLAS baseline. In particular, the successful use of vector register grouping with RVV can lead to significant performance improvements.

cs.DC

High-Performance Implementation of the Optimized Event Generator for Strong-Field QED Plasma Simulations

Numerical simulation of strong-field quantum electrodynamics (SFQED) processes is an essential step towards current and future high-intensity laser experiments. The complexity of SFQED phenomena and their stochastic nature make them extremely computationally challenging, requiring the use of supercomputers for realistic simulations. Recently, we have presented a novel approach to numerical simulation of SFQED processes based on an accurate approximation of precomputed rates, which minimizes the number of rate calculations per QED event. The current paper is focused on the high-performance implementation of this method, including vectorization of resource-intensive kernels and improvement of parallel computing efficiency. Using two codes, PICADOR and hi-$\chi$ (the latter being free and publicly available), we demonstrate significant reduction in computation time due to these improvements. We hope that the proposed approach can be applied in other codes for the numerical simulation of SFQED processes.

physics.comp-ph

Vectorization of Gradient Boosting of Decision Trees Prediction in the CatBoost Library for RISC-V Processors

The emergence and rapid development of the open RISC-V instruction set architecture opens up new horizons on the way to efficient devices, ranging from existing low-power IoT boards to future high-performance servers. The effective use of RISC-V CPUs requires software optimization for the target platform. In this paper, we focus on the RISC-V-specific optimization of the CatBoost library, one of the widely used implementations of gradient boosting for decision trees. The CatBoost library is deeply optimized for commodity CPUs and GPUs. However, vectorization is required to effectively utilize the resources of RISC-V CPUs with the RVV 0.7.1 vector extension, which cannot be done automatically with a C++ compiler yet. The paper reports on our experience in benchmarking CatBoost on the Lichee Pi 4a, RISC-V-based board, and shows how manual vectorization of computationally intensive loops with intrinsics can speed up the use of decision trees several times, depending on the specific workload. The developed codes are publicly available on GitHub.

cs.DC

Case Study for Running Memory-Bound Kernels on RISC-V CPUs

The emergence of a new, open, and free instruction set architecture, RISC-V, has heralded a new era in microprocessor architectures. Starting with low-power, low-performance prototypes, the RISC-V community has a good chance of moving towards fully functional high-end microprocessors suitable for high-performance computing. Achieving progress in this direction requires comprehensive development of the software environment, namely operating systems, compilers, mathematical libraries, and approaches to performance analysis and optimization. In this paper, we analyze the performance of two available RISC-V devices when executing three memory-bound applications: a widely used STREAM benchmark, an in-place dense matrix transposition algorithm, and a Gaussian Blur algorithm. We show that, compared to x86 and ARM CPUs, RISC-V devices are still expected to be inferior in terms of computation time but are very good in resource utilization. We also demonstrate that well-developed memory optimization techniques for x86 CPUs improve the performance on RISC-V CPUs. Overall, the paper shows the potential of RISC-V as an alternative architecture for high-performance computing.

cs.PF

Optimized event generator for strong-field QED simulations within the hi-$\chi$ framework

Probabilistic generation of photons and electron-positron pairs due to the processes of strong-field quantum electrodynamics (SFQED) is often the most resource-intensive part of the kinetic simulations required in order to model current and future experimental studies at high-intensity laser facilities. To reduce its computational demands one can exploit tabulation of the precomputed rates, time-step sub-cycling, dynamic down-sampling of particle/photon ensembles and other approaches. As the culmination of previous improvements, the method described here provides the opportunity to make the minimal possible number of rate computations per QED event and, therefore, this method can increase performance by more than an order of magnitude. The computational routine is publicly available as a part of the open-source framework hi-$\chi$ designed as a Python-controlled toolbox for collaborative development.

physics.comp-ph

Black-Scholes Option Pricing on Intel CPUs and GPUs: Implementation on SYCL and Optimization Techniques

The Black-Scholes option pricing problem is one of the widely used financial benchmarks. We explore the possibility of developing a high-performance portable code using the SYCL (Data Parallel C++) programming language. We start from a C++ code parallelized with OpenMP and show optimization techniques that are beneficial on modern Intel Xeon CPUs. Then, we port the code to SYCL and consider important optimization aspects on CPUs and GPUs (device-friendly memory access patterns, relevant data management, employing vector data types). We show that the developed SYCL code is only 10% inferior to the optimized C++ code when running on CPUs while achieving reasonable performance on Intel GPUs. We hope that our experience of developing and optimizing the code on SYCL can be useful to other researchers who plan to port their high-performance C++ codes to SYCL to get all the benefits of single-source programming.

cs.DC

High Performance Implementation of Boris Particle Pusher on DPC++. A First Look at oneAPI

New hardware architectures open up immense opportunities for supercomputer simulations. However, programming techniques for different architectures vary significantly, which leads to the necessity of developing and supporting multiple code versions, each being optimized for specific hardware features. The oneAPI framework, recently introduced by Intel, contains a set of programming tools for the development of portable codes that can be compiled and fine-tuned for CPUs, GPUs, FPGAs, and accelerators. In this paper, we report on the experience of porting the implementation of Boris particle pusher to oneAPI. Boris particle pusher is one of the most demanding computational stages of the Particle-in-Cell method, which, in particular, is used for supercomputer simulations of laser-plasma interactions. We show how to adapt the C++ implementation of the particle push algorithm from the Hi-Chi project to the DPC++ programming language and report the performance of the code on high-end Intel CPUs (Xeon Platinum 8260L) and Intel GPUs (P630 and Iris Xe Max). It turned out that our C++ code can be easily ported to DPC++. We found that on CPUs the resulting DPC++ code is only ~10% on average inferior to the optimized C++ code. Moreover, the code is compiled and run on new Intel GPUs without any specific optimizations and shows the expected performance, taking into account the parameters of the hardware.

physics.comp-ph

Optimized computation of tight focusing of short pulses using mapping to periodic space

When a pulsed, few-cycle electromagnetic wave is focused by optics with f-number smaller than two, the frequency components it contains are focused to different regions of space, building up a complex electromagnetic field structure. Accurate numerical computation of this structure is essential for many applications such as the analysis, diagnostics, and control of high-intensity laser-matter interactions. However, straightforward use of finite-difference methods can impose unacceptably high demands on computational resources, owing to the necessity of resolving far-field and near-field zones at sufficiently high resolution to overcome numerical dispersion effects. Here, we present a procedure for fast computation of tight focusing by mapping a spherically curved far-field region to periodic space, where the field can be advanced by a dispersion-free spectral solver. In many cases of interest, the mapping reduces both run time and memory requirements by a factor of order 10, making it possible to carry out simulations on a desktop machine or a single node of a supercomputer. We provide an open-source C++ implementation with Python bindings and demonstrate its use for a desktop machine, where the routine provides the opportunity to use the resolution sufficient for handling the pulses with spectra spanning over several octaves. The described approach can facilitate the stability analysis of theoretical proposals, the studies based on statistical inferences, as well as the overall development and analysis of experiments with tightly-focused short laser pulses.

physics.comp-ph

Transforming the Lindblad Equation into a System of Linear Equations: Performance Optimization and Parallelization of an Algorithm

With their constantly increasing peak performance and memory capacity, modern supercomputers offer new perspectives on numerical studies of open many-body quantum systems. These systems are often modeled by using Markovian quantum master equations describing the evolution of the system density operators. In this paper we address master equations of the Lindblad form, which are a popular theoretical tool in quantum optics, cavity quantum electrodynamics, and optomechanics. By using the generalized Gell-Mann matrices as a basis, any Lindblad equation can be transformed into a system of ordinary differential equations with real coefficients. This allows us to use standard high-performance parallel algorithms to integrate the equations and thus to emulate open quantum dynamics in a computationally efficient way. Recently we presented an implementation of the transform with the computational complexity scaling as $O(N^5 log N)$ for dense Lindbaldians and $O(N^3 log N)$ for sparse ones. However, infeasible memory costs remain a serious obstacle on the way to large models. Here we present a parallel cluster-based implementation of the algorithm and demonstrate that it allows us to integrate a sparse Lindbladian model of the dimension $N=2000$ and a dense random Lindbladian model of the dimension $N=200$ by using $25$ nodes with $64$ GB RAM per node.

physics.comp-ph

Exploiting Parallelism on Shared Memory in the QED Particle-in-Cell Code PICADOR with Greedy Load Balancing

State-of-the-art numerical simulations of laser plasma by means of the Particle-in-Cell method are often extremely computationally intensive. Therefore there is a growing need for development of approaches for efficient utilization of resources of modern supercomputers. In this paper, we address the problem of a substantially non-uniform and dynamically varying distribution of macroparticles in a computational area in simulating quantum electrodynamic (QED) cascades. We propose and evaluate a load balancing scheme for shared memory systems, which allows subdividing individual cells of the computational domain into work portions with subsequent dynamic distribution of these portions between OpenMP threads. Computational experiments on 1D, 2D, and 3D QED simulations show that the proposed scheme outperforms the previously developed standard and custom schemes in the PICADOR code by 2.1 to 10 times when employing several Intel Cascade Lake CPUs.

physics.comp-ph

Propagating large open quantum systems towards their steady states: cluster implementation of the time-evolving block decimation scheme

Many-body quantum systems are subjected to the Curse of Dimensionality: The dimension of the Hilbert space $\mathcal{H}$, where these systems live in, grows exponentially with systems' 'size' (number of their components, "bodies"). It means that, in order to specify a state of a quantum system, we need a description whose length grows exponentially with the system size. However, with some systems it is possible to escape the curse by using low-rank tensor approximations known as `matrix-product state/operator (MPS/O) representation' in the quantum community and `tensor-train decomposition' among applied mathematicians. Motivated by recent advances in computational quantum physics, we consider chains of $N$ spins coupled by nearest-neighbor interactions. The spins are subjected to an action coming from the environment. Spatially disordered interaction and environment-induced decoherence drive systems into non-trivial asymptotic states. The dissipative evolution is modeled with a Markovian master equation in the Lindblad form. By implementing the MPO technique and propagating system states with the time-evolving block decimation (TEBD) scheme (which allows to keep the length of the state descriptions fixed), it is in principle possible to reach the corresponding steady states. We propose and realize a cluster implementation of this idea. The implementation on four nodes allowed us to resolve steady states of the model systems with $N = 128$ spins.

cond-mat.stat-mech