Acesso aberto Acesso aberto  Acesso é fechado Acesso está concedido  Acesso é fechado Somente assinantes

Volume 42, Nº 1 (2016)

Article

Studies in the theory of algebraic models of programs with procedures

Podlovchenko R.

Resumo

Algebraic models of programs with procedures extend algebraic models of programs that are free of procedures (simple models of programs). A specific feature of both types of models is that they are built for some formalization of software programs. Models of programs are intended for studying functional equivalence of formalized programs and constructing wide sets of equivalent transformations of programs. Two basic problems in the theory of algebraic models of programs are the equivalence problem and the problem of building complete systems of equivalent transformations. An increasing interest in models of programs with procedures is due to the abundance of results obtained for simple models of programs. The most suitable model of programs with procedures is a gateway model. A remarkable feature of these models is that every such model is induced by some simple model of programs. This paper gives a survey of the latest results obtained for gateway models of programs.

Programming and Computer Software. 2016;42(1):1-4
pages 1-4 views

About performance and intellectuality of supercomputer modeling

Il’in V., Skopin I.

Resumo

The concept of supercomputer technologies is traditionally related to mapping algorithms onto the computer architecture, which, taking into account the explosive growth of computational capabilities, implies the necessity for an adequate increase in the performance of algorithms and programs. At the same time, it is well known that the rate of building “computer muscles” far exceeds the rate of increasing the labor productivity of software developers, which becomes a bottleneck of computer evolution. The only way to deal with this problem is to automate the construction of models, algorithms, and programs, which directly implies the revolutionary change in the level of artificial intelligence in supercomputer technologies. In this paper, it is from this standpoint that main computational stages of mathematical modeling of various processes and phenomena are discussed, some aspects of high logical complexity of modern high-performance methods for solving “large” applied problems are pointed out, and some intelligent solutions for various modeling problems are proposed.

Programming and Computer Software. 2016;42(1):5-16
pages 5-16 views

Methods of resource management in problem-oriented computing environment

Sokolinsky L., Shamakina A.

Resumo

One of the important classes of computational problems is problem-oriented workflow applications executed in distributed computing environment. A problem-oriented workflow application can be represented by a directed graph whose vertices are tasks and arcs are data flows. For a problem-oriented workflow application, we can get a priori estimates of the task execution time and the amount of data to be transferred between the tasks. A distributed computing environment designed for the execution of such tasks in a certain subject domain is called problem-oriented environment. To efficiently use resources of the distributed computing environment, special scheduling algorithms are applied. Nowadays, a great number of such algorithms have been proposed. Some of them (like the DSC algorithm) take into account specific features of problem-oriented workflow applications. Others (like Min–Min algorithm) take into account many-core structure of nodes of the computational network. However, none of them takes into account both factors. In this paper, a mathematical model of problem-oriented computing environment is constructed, and a new problem-oriented scheduling (POS) algorithm is proposed. The POS algorithm takes into account both specifics of the problem-oriented jobs and multi-core structure of the computing system nodes. Results of computational experiments comparing the POS algorithm with other known scheduling algorithms are presented.

Programming and Computer Software. 2016;42(1):17-26
pages 17-26 views

Scalable and accurate detection of code clones

Sargsyan S., Kurmangaleev S., Belevantsev A., Avetisyan A.

Resumo

A detailed description of a method for detection of code clones is described. This method is based on the semantic analysis of programs and on new algorithms that make it scalable without affecting its accuracy. The proposed method involves two phases. In the first phase, the program dependence graph (PDG) is constructed while the program is compiled. LLVM is used as the compilation infrastructure. In the second phase, similar subgraphs of maximum size that represent code clones are detected. Before starting the search for similar subgraphs, the PDG is divided into subgraphs that will be considered as potential clones of each other. To ensure scalability of the search for similar subgraphs, the composition of algorithms is used. The first algorithm checks that a pair of graphs cannot have similar subgraphs of the desired size; this is done in a linear amount of time. If this algorithm fails, another (approximate) algorithm is executed to find similar subgraphs of maximum size. After similar subgraphs have been found, the program code is additionally checked for the position of the code lines corresponding to the detected clone candidates. Tests showed that the developed tool is more accurate than similar tools, such as MOSS, CCFinder, and CloneDR. Results obtained for the projects Linux-2.6, Firefox Mozilla, LLVM/Clang, and OpenSSL are presented.

Programming and Computer Software. 2016;42(1):27-33
pages 27-33 views

Alternatives of profile-guided code optimizations for one-stage compilation

Chetverina O.

Resumo

Optimizing compilers increase the resulting code performance by carrying out a number of code optimization techniques. Profile information assistance for code optimizations gives an opportunity to greatly increase the code performance in some cases. However, the impossibility to provide a representative training execution often leads to the decline in efficiency of profile-dependent code optimizations. This paper investigates the main causes of the performance loss for the one-stage optimization as compared to the profileguided optimization (PGO) and introduces some alternative compilation techniques to reduce this loss. The effectiveness of these techniques is evaluated for a VLIW-architecture Elbrus compiler.

Programming and Computer Software. 2016;42(1):34-40
pages 34-40 views

Estimation of the execution time in real-time systems

Kozyrev V.

Resumo

Estimation of the worst-case execution time (WCET) of programs is an important problem for the development of real-time systems. In particular, the estimation of the WCET is a goal in the verification of aeronautical software specified in DO-178B/C. This is a difficult problem, and its exact solution is often practically impossible. This problem has been studied for many years; as a result, a lot of techniques for various cases have been developed. A survey of the available techniques for estimating the WCET is presented, which can be useful for choosing methods for solving particular problems.

Programming and Computer Software. 2016;42(1):41-48
pages 41-48 views

Analysis of entities in C and C++ programs and relations between them for program understanding

Belevantsev A., Veselevich E., Ivannikov V.

Resumo

A tool for the static analysis of programs that can detect entities in C and C++ programs, their metrics, and relations between them is considered. The program entities are files, functions, classes, methods, etc., and relations are calls, inheritance, read/write operations of global variables, file inclusion, and aggregation. Methods for the development of such a tool based on the open compiler infrastructure LLVM [1], including the necessary modifications in the Clang compiler [2], and the developed analyzer are described. Results of the tool testing on the Android code are presented.

Programming and Computer Software. 2016;42(1):49-53
pages 49-53 views

Este site utiliza cookies

Ao continuar usando nosso site, você concorda com o procedimento de cookies que mantêm o site funcionando normalmente.

Informação sobre cookies