code annotations
Recently Published Documents


TOTAL DOCUMENTS

27
(FIVE YEARS 9)

H-INDEX

5
(FIVE YEARS 1)

PLoS ONE ◽  
2021 ◽  
Vol 16 (4) ◽  
pp. e0250306
Author(s):  
Jonas Latt ◽  
Christophe Coreixas ◽  
Joël Beny

We present a novel, hardware-agnostic implementation strategy for lattice Boltzmann (LB) simulations, which yields massive performance on homogeneous and heterogeneous many-core platforms. Based solely on C++17 Parallel Algorithms, our approach does not rely on any language extensions, external libraries, vendor-specific code annotations, or pre-compilation steps. Thanks in particular to a recently proposed GPU back-end to C++17 Parallel Algorithms, it is shown that a single code can compile and reach state-of-the-art performance on both many-core CPU and GPU environments for the solution of a given non trivial fluid dynamics problem. The proposed strategy is tested with six different, commonly used implementation schemes to test the performance impact of memory access patterns on different platforms. Nine different LB collision models are included in the tests and exhibit good performance, demonstrating the versatility of our parallel approach. This work shows that it is less than ever necessary to draw a distinction between research and production software, as a concise and generic LB implementation yields performances comparable to those achievable in a hardware specific programming language. The results also highlight the gains of performance achieved by modern many-core CPUs and their apparent capability to narrow the gap with the traditionally massively faster GPU platforms. All code is made available to the community in form of the open-source project stlbm, which serves both as a stand-alone simulation software and as a collection of reusable patterns for the acceleration of pre-existing LB codes.


2020 ◽  
Author(s):  
Phyllipe Lima ◽  
Eduardo Guerra ◽  
Paulo Meirelles

Java developers make extensive use of code annotations sincetheir introduction in version 5 of the language. They areinserted directly on the source code for custom metadata configuration,similar to C# attributes. The software engineeringcommunity has few works investigating their usage and impacton source code. Being able to visualize characteristics ofcode annotations might aid developers in detecting potentialmisuse, outliers as well as increase the comprehensibility andreadability of the source code. In this paper, we present anapproach to use software metrics to generate a 2D polymetricview targeting the visualization of code annotations in Javaclasses. We developed a prototype tool using the Unity GameEngine. It displays classes and packages as rectangles andannotations as circles. We demonstrated the tool with a smallsample Java program.


2020 ◽  
Vol 191 ◽  
pp. 102418 ◽  
Author(s):  
Pedro Pinheiro ◽  
José Carlos Viana ◽  
Márcio Ribeiro ◽  
Leo Fernandes ◽  
Fabiano Ferrari ◽  
...  

2020 ◽  
Vol 5 (47) ◽  
pp. 1960
Author(s):  
Phyllipe Lima ◽  
Eduardo Guerra ◽  
Paulo Meirelles
Keyword(s):  

Author(s):  
Roman Kápl ◽  
Pavel Parízek

Abstract Computers store numbers in two mutually incompatible ways: little-endian or big-endian. They differ in the order of bytes within representation of numbers. This ordering is called endianness. When two computer systems, programs or devices communicate, they must agree on which endianness to use, in order to avoid misinterpretation of numeric data values. We present Endicheck, a dynamic analysis tool for detecting endianness bugs, which is based on the popular Valgrind framework. It helps developers to find those code locations in their program where they forgot to swap bytes properly. Endicheck requires less source code annotations than existing tools, such as Sparse used by Linux kernel developers, and it can also detect potential bugs that would only manifest if the given program was run on computer with an opposite endianness. Our approach has been evaluated and validated on the Radeon SI Linux OpenGL driver, which is known to contain endianness-related bugs, and on several open-source programs. Results of experiments show that Endicheck can successfully identify many endianness-related bugs and provide useful diagnostic messages together with the source code locations of respective bugs.


10.29007/f5md ◽  
2019 ◽  
Author(s):  
Santiago Hyun Dorado ◽  
Julio Ariel Hurtado

The architectural rationale is the documentation of the reasons why certain software design decisions are made that satisfy quality needs in a system. On many occasions this rationale is implicitly found in precise sentences of the system's documentation or the same source code, making it difficult to understand and make decisions on the maintenance phase, leading to a deviation and erosion of the architecture and therefore aging of the software. In this paper, we discuss the utility of a tool based on code annotations as an alternative to document the architectural rationale with the source code. For this, a quasi-experiment with local industry software engineers is done, in order to answer the research question: Does the source code annotations, with information about the architectural rationale, improves the software maintenance? The quasi-experiment is done with software engineers who know Java language and notions of software architectures. It included 3 tasks that involve changes to the architecture and its documentation. After the results were analyzed using the t-student test, concluding that the participants who use the annotations with information of the Architectural Rationale achieve a better understanding of the architecture and its Rationale than those using a traditional way for documenting the rationale(documents). However, the efficiency and effectiveness of maintenance time do not depend on the Rationale specification. With the same problem, the variation was due to the ability of individuals to develop software, but the documentation of the architecture, in general, was very important to be able to make the changes within the limits.


2019 ◽  
Vol 27 (4) ◽  
pp. 1505-1530
Author(s):  
Maximilian Schramme ◽  
José A. Macías

Author(s):  
Pierre-Loïc Garoche

This chapter claims that code generation can be adapted to enable the expression of system-level properties at code level, and be later proved with respect to the code semantics. All previous analyses were performed on discrete dynamical systems models. However, once the control-level properties have been expressed and analyzed at model level, their validity must be asserted on the code artifact extracted from the model. Luckily, this extraction of code from models is largely automatized thanks to autocoding framework generating embedded code from dataflow models. Indeed, code generation from dataflow language is now effective and widely used in the industry. With these in mind, the chapter first gives an overview of the modeling framework, enabling the expression of properties at model and code level. A second part explains the generation of such code annotations, while a last part focuses on their verification.


Sign in / Sign up

Export Citation Format

Share Document