High-Speed Small-Purpose Parallel Hybrid Architecture of Summator for Calculation Back 3x in Eighth Coding (original) (raw)
Related papers
Analysis and development tools for efficient programs on parallel architectures
Trudy Instituta sistemnogo programmirovaniâ, 2014
Аннотация. В работе предлагаются методы поддержки разработки эффективных программ для современных параллельных архитектур, включая гибридные. Описываются специализированные методы профилирования, предназначенные для программиста, занимающегося распараллеливанием существующего кода, либо для поиска неэффективного использования кеша в многопоточных программах. Рассматривается задача автоматической генерации параллельного кода для гибридных архитектур. В задачах, где для повышения производительности на гибридных архитектурах необходима существенная переработка структур данных или алгоритмов, может использоваться автотюнинг для специализации под конкретную задачу и аппаратуру во время выполнения. Показана оптимизация умножения разреженных матриц на GPU и ее применение для ускорения расчётов в пакете OpenFOAM.
Parallel number multiplication algorithm
International Journal of Open Information Technologies, 2020
Modulo multiplication, where the modulus is an n-digit number, with n approximately equal to 2 9 , is currently the main operation in the discrete logarithm algorithm. If we consider this process as multiplication of big numbers followed by taking modulo (division with remainder), then the latter is the most difficult. We suggest looking at this problem in a different way. Namely, in terms of minimizing time with an unlimited number of computing nodes. This also includes the problem of parallelization on a chip, where the nodes that perform calculations are numerous, but low-power, primarily in memory, and the connections between them are fast. We propose an algorithm for modulo multiplication taking with precalculations stored distributed. The same configuration will significantly reduce the time for multiplication with a fixed multiplier. For the multiplication itself, a parallelized column algorithm is used. The running time of the constructed algorithm on a distributed computing...
Инструменты анализа и разработки эффективного кода для параллельных архитектур
Proceedings of the Institute for System Programming of RAS, 2014
Аннотация. В работе предлагаются методы поддержки разработки эффективных программ для современных параллельных архитектур, включая гибридные. Описываются специализированные методы профилирования, предназначенные для программиста, занимающегося распараллеливанием существующего кода, либо для поиска неэффективного использования кеша в многопоточных программах. Рассматривается задача автоматической генерации параллельного кода для гибридных архитектур. В задачах, где для повышения производительности на гибридных архитектурах необходима существенная переработка структур данных или алгоритмов, может использоваться автотюнинг для специализации под конкретную задачу и аппаратуру во время выполнения. Показана оптимизация умножения разреженных матриц на GPU и ее применение для ускорения расчётов в пакете OpenFOAM.
Модификация алгоритма оценки количества целых чисел, имеющих не более трех больших простых делителей
Matematicheskie Voprosy Kriptografii [Mathematical Aspects of Cryptography], 2013
В работе предлагаются методы быстрого вычисления некоторых обобщений функции Дикмана, позволяющих оценивать количество целых чисел в интервале, имеющих не более трех больших простых делителей. Ключевые слова: гладкие и полугладкие числа, функция Дикмана, интегральные представления, быстро сходящиеся разложения A modification of an algorithm for estimating the cardinality of integers with no more than three prime divisors
Keldysh Institute Preprints
Modern graphics accelerators (GPUs) can significantly speed up the execution of numerical tasks. However, porting programs to graphics accelerators is not an easy task, sometimes requiring their almost complete rewriting. CUDA graphics accelerators, thanks to technology developed by NVIDIA, allow you to have a single source code for both conventional processors (CPUs) and CUDA. However, in this single source code, you need to somehow tell the compiler which parts of this code to parallelize on shared memory. The use of the functional programming library developed by the authors allows you to hide the use of one or another parallelization mechanism on shared memory within the library and make the user source code completely independent of the computing device used (CPU or CUDA). This article shows how this can be done.
Perspectives of Functional Programming of Parallel Computations
Russian Digital Libraries Journal, 2022
The article is devoted to the results of the analysis of modern trends in functional programming, considered as a metaparadigm for solving the problems of organizing parallel computations and multithreaded programs for multiprocessor complexes and distributed systems. Taking into account the multi-paradigm nature of parallel programming, the paradigm analysis of languages and functional programming systems is used. This makes it possible to reduce the complexity of the problems being solved by methods of decomposition of programs into autonomously developed components, to evaluate their similarities and differences. Consideration of such features is necessary when predicting the course of application processes, as well as when planning the study and organizing the development of programs. There is reason to believe that functional programming has the ability to improve programs performance. A variety of paradigmatic characteristics inherent in the preparation and debugging of long-l...
Two-Module Weight-Based Sum Code in Residue Ring Modulo M=4
SPIIRAS Proceedings
The paper describes research results of features of error detection in data vectors by sum codes. The task is relevant in this setting, first of all, for the use of sum codes in the implementation of the checkable discrete systems and the technical means for the diagnosis of their components. Methods for sum codes constructing are described. A brief overview in the field of methods for sum codes constructing is provided. The article highlights codes for which the values of all data bits are taken into account once by the operations of summing their values or the values of the weight coefficients of the bits during the formation of the check vector. The paper also highlights codes that are formed when the data vectors are initially divided into subsets, in particular, into two subsets. An extension of the sum code class obtained by isolating two independent parts in the data vectors, as well as weighting the bits of the data vectors at the stage of code construction, is proposed. The...