161 results on '"Code Generation"'
Search Results
2. Novel rapid control prototyping for permanent magnet synchronous motor via model-based design and STM32 chip.
- Author
-
Hu, Mingyuan, Ahn, Hyeongki, Park, Jihoon, and You, Kwanho
- Subjects
- *
PERMANENT magnet motors , *ALGORITHMS , *COMPUTER software - Abstract
As control algorithms become increasingly sophisticated, delivering improved performance at the expense of greater complexity, practical experiments often become unfeasible. To address this challenge, this study introduces a novel rapid control prototyping (NRCP) approach based on model-based design (MBD) using MATLAB/Simulink, STM32CubeMX software, and field-oriented control strategies for permanent magnet synchronous motors. Compared with existing rapid control prototyping methods, our NRCP design offers several advantages: it simplifies model construction by utilizing only basic Simulink modules, minimizes dependency on MATLAB/Simulink toolboxes by only requiring Embedded Code conversion to C language, and ensures strong compatibility as the experimental code involves only C language. To demonstrate the feasibility and efficiency of this approach, sensor-based and sensorless control models were developed using the MBD method. The practicality of the NRCP was successfully validated through sensor-based and sensorless experiments using an ARM Cortex-M4-based STM32 microcontroller. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
3. TSCompiler: efficient compilation framework for dynamic-shape models.
- Author
-
Luo, Xiang, Zhang, Chen, Geng, Chenbo, Yi, Yanzhi, Hu, Jiahui, Zhang, Renwei, Zhang, Zhen, Consolaro, Gianpietro, Yang, Fan, Lu, Tun, Gu, Ning, and Shang, Li
- Abstract
Today’s deep learning models face an increasing demand to handle dynamic shape tensors and computation whose shape information remains unknown at compile time and varies in a nearly infinite range at runtime. This shape dynamism brings tremendous challenges for existing compilation pipelines designed for static models which optimize tensor programs relying on exact shape values. This paper presents TSCompiler, an end-to-end compilation framework for dynamic shape models. TSCompiler first proposes a symbolic shape propagation algorithm to recover symbolic shape information at compile time to enable subsequent optimizations. TSCompiler then partitions the shape-annotated computation graph into multiple subgraphs and fine-tunes the backbone operators from the subgraph within a hardware-aligned search space to find a collection of high-performance schedules. TSCompiler can propagate the explored backbone schedule to other fusion groups within the same subgraph to generate a set of parameterized tensor programs for fused cases based on dependence analysis. At runtime, TSCompiler utilizes an occupancy-targeted cost model to select from pre-compiled tensor programs for varied tensor shapes. Extensive evaluations show that TSCompiler can achieve state-of-the-art speedups for dynamic shape models. For example, we can improve kernel efficiency by up to 3.97× on NVIDIA RTX3090, and 10.30 × on NVIDIA A100 and achieve up to five orders of magnitude speedups on end-to-end latency. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
4. Deep learning for code generation: a survey.
- Author
-
Zhang, Huangzhao, Zhang, Kechi, Li, Zhuo, Li, Jia, Li, Yongmin, Zhao, Yunfei, Zhu, Yuqi, Liu, Fang, Li, Ge, and Jin, Zhi
- Abstract
In the past decade, thanks to the powerfulness of deep-learning techniques, we have witnessed a whole new era of automated code generation. To sort out developments, we have conducted a comprehensive review of solutions to deep learning-based code generation. In this survey, we generally formalize the pipeline and procedure of code generation and categorize existing solutions according to taxonomy from perspectives of architecture, model-agnostic enhancing strategy, metrics, and tasks. In addition, we outline the challenges faced by current dominant large models and list several plausible directions for future research. We hope that this survey may provide handy guidance to understanding, utilizing, and developing deep learning-based code-generation techniques for researchers and practitioners. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
5. A journey with ASMETA from requirements to code: application to an automotive system with adaptive features.
- Author
-
Arcaini, Paolo, Bonfanti, Silvia, Gargantini, Angelo, Riccobene, Elvinia, and Scandurra, Patrizia
- Subjects
- *
ADAPTIVE control systems , *MACHINE theory , *SYSTEMS engineering , *METHODS engineering , *REQUIREMENTS engineering - Abstract
Modern automotive systems with adaptive control features require rigorous analysis to guarantee correct operation. We report our experience in modeling the automotive case study from the ABZ2020 conference using the ASMETA toolset, based on the Abstract State Machine formal method. We adopted a seamless system engineering method: from an incremental formal specification of high-level requirements to increasingly refined ASMETA models, to the C++ code generation from the model. Along this process, different validation and verification activities were performed. We explored modeling styles and idioms to face the modeling complexity and ensure that the ASMETA models can best capture and reflect specific behavioral patterns. Through this realistic automotive case study, we evaluated the applicability and usability of our formal modeling approach. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
6. Leveraging pre-trained language models for code generation.
- Author
-
Soliman, Ahmed, Shaheen, Samir, and Hadhoud, Mayada
- Subjects
LANGUAGE models ,NATURAL language processing ,CAUSAL models ,COMPUTER software development ,COMPUTER software developers - Abstract
Code assistance refers to the utilization of various tools, techniques, and models to help developers in the process of software development. As coding tasks become increasingly complex, code assistant plays a pivotal role in enhancing developer productivity, reducing errors, and facilitating a more efficient coding workflow. This assistance can manifest in various forms, including code autocompletion, error detection and correction, code generation, documentation support, and context-aware suggestions. Language models have emerged as integral components of code assistance, offering developers the capability to receive intelligent suggestions, generate code snippets, and enhance overall coding proficiency. In this paper, we propose new hybrid models for code generation by leveraging pre-trained language models BERT, RoBERTa, ELECTRA, and LUKE with the Marian Causal Language Model. Selecting these models based on their strong performance in various natural language processing tasks. We evaluate the performance of these models on two datasets CoNaLa and DJANGO and compare them to existing state-of-the-art models. We aim to investigate the potential of pre-trained transformer language models to revolutionize code generation, offering improved precision and efficiency in navigating complex coding scenarios. Additionally, conducting error analysis and refining the generated code. Our results show that these models, when combined with the Marian Decoder, significantly improve code generation accuracy and efficiency. Notably, the RoBERTaMarian model achieved a maximum BLEU score of 35.74 and an exact match accuracy of 13.8% on CoNaLa, while LUKE-Marian attained a BLEU score of 89.34 and an exact match accuracy of 78.50% on DJANGO. Implementation of this work is available at https://github.com/AhmedSSoliman/Leveraging-Pretrained-Language-Models-for-Code-Generation. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
7. Generating interactive documents for domain-specific validation of formal models.
- Author
-
Vu, Fabian, Happe, Christopher, and Leuschel, Michael
- Subjects
- *
CODE generators , *MODEL validation , *JAVASCRIPT programming language , *DATA visualization , *C++ , *INDUSTRIAL applications - Abstract
Especially in industrial applications of formal modeling, validation is as important as verification. Thus, it is important to integrate the stakeholders' and the domain experts' feedback as early as possible. In this work, we propose two approaches to enable this: (1) a static export of an animation trace into a single HTML file, and (2) a dynamic export of a classical B model as an interactive HTML document, both based on domain-specific visualizations. For the second approach, we extend the high-level code generator B2Program by JavaScript and integrate VisB visualizations alongside SimB simulations with timing, probabilistic and interactive elements. An important aspect of this work is to ease communication between modelers and domain experts. This is achieved by implementing features to run simulations, sharing animated traces with descriptions and giving feedback to each other. This work also evaluates the performance of the generated JavaScript code compared with existing approaches with Java and C++ code generation as well as the animator, constraint solver, and model checker ProB. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
8. A framework for embedded software portability and verification: from formal models to low-level code.
- Author
-
Martins Gomes, Renata, Aichernig, Bernhard, and Baunach, Marcel
- Subjects
- *
SOFTWARE compatibility , *SOFTWARE frameworks , *SOFTWARE verification , *COMPUTER software development , *PROOF of concept - Abstract
Porting software to new target architectures is a common challenge, particularly when dealing with low-level functionality in drivers or OS kernels that interact directly with hardware. Traditionally, adapting code for different hardware platforms has been a manual and error-prone process. However, with the growing demand for dependability and the increasing hardware diversity in systems like the IoT, new software development approaches are essential. This includes rigorous methods for verifying and automatically porting Real-Time Operating Systems (RTOS) to various devices. Our framework addresses this challenge through formal methods and code generation for embedded RTOS. We demonstrate a hardware-specific part of a kernel model in Event-B, ensuring correctness according to the specification. Since hardware details are only added in late modeling stages, we can reuse most of the model and proofs for multiple targets. In a proof of concept, we refine the generic model for two different architectures, also ensuring safety and liveness properties. We then showcase automatic low-level code generation from the model. Finally, a hardware-independent factorial function model illustrates more potential of our approach. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
9. Towards optimized tensor code generation for deep learning on sunway many-core processor.
- Author
-
Li, Mingzhen, Liu, Changxi, Liao, Jianjin, Zheng, Xuegui, Yang, Hailong, Sun, Rujun, Xu, Jun, Gan, Lin, Yang, Guangwen, Luan, Zhongzhi, and Qian, Depei
- Abstract
The flourish of deep learning frameworks and hardware platforms has been demanding an efficient compiler that can shield the diversity in both software and hardware in order to provide application portability. Among the existing deep learning compilers, TVM is well known for its efficiency in code generation and optimization across diverse hardware devices. In the meanwhile, the Sunway many-core processor renders itself as a competitive candidate for its attractive computational power in both scientific computing and deep learning workloads. This paper combines the trends in these two directions. Specifically, we propose swTVM} that extends the original TVM to support ahead-of-time compilation for architecture requiring cross-compilation such as Sunway. In addition, we leverage the architecture features during the compilation such as core group for massive parallelism, DMA for high bandwidth memory transfer and local device memory for data locality, in order to generate efficient codes for deep learning workloads on Sunway. The experiment results show that the codes generated by swTVM} achieve 1.79× improvement of inference latency on average compared to the state-of-the-art deep learning framework on Sunway, across eight representative benchmarks. This work is the first attempt from the compiler perspective to bridge the gap of deep learning and Sunway processor particularly with productivity and efficiency in mind. We believe this work will encourage more people to embrace the power of deep learning and Sunway many-core processor. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
10. Towards Automatic Code Generation for Robotic Soccer Behavior Simulation.
- Author
-
Sales, Raoni, Fontes Magalhães Mascarenhas, Ana Patrícia, Simões, Marco A. C., and Rodrigues de Souza, Josemar
- Abstract
Multi-Agent Systems (MAS) are an Artificial Intelligence (AI) branch where agents handle distributed nature tasks in a cooperative system. MAS is widely used in robotic systems in scenarios where multiple robots must cooperate. In this direction, the robot soccer domain has been used as a test bed to stimulate research in this area, as it reproduces some important features of these systems, such as coordination. Each soccer team member is an agent whose behavior must be coordinated with the other team members cooperating to win the game. Simulation tools are frequently used in this context to create rehearsed plays, called setplays, during team training. However, these tools generally have a limited set of behaviors, e.g., kicking, available to use in setplays, and new behaviors must be manually implemented. This implementation requires knowledge of specific source codes and a significant programming effort, in addition to leaving the behavior coupled and dependent on the tool. This work proposes the Robot Soccer Behavior Generator (RoboSocBG), a solution to develop new behaviors in the context of simulated soccer robots. It uses Model-Driven Development (MDD), an approach that enables the specification of behavior platform-independent models and code generation in specific tools. The solution was tested in our laboratory and validated in a case study. The results evidenced its feasibility to generate code in different platforms. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
11. A process for creating KDM2PSM transformation engines.
- Author
-
Angulo, Guisella, San Martín, Daniel, Ferrari, Fabiano, García-Rodríguez de Guzmán, Ignacio, Perez-Castillo, Ricardo, and Vieira de Camargo, Valter
- Subjects
- *
REVERSE engineering , *SOFTWARE engineers , *SOURCE code , *ENGINES , *ENGINEERS - Abstract
Architecture-Driven Modernization (ADM) is a special kind of reengineering that employs models along the process. The main ADM metamodel is the Knowledge Discovery Metamodel (KDM), which is a platform-independent metamodel able to represent several views of a system. Although a lot of research is currently focused on the reverse engineering phase of ADM, little has been devoted to the forward engineering one, mainly on the generation of Platform-Specific Models (PSMs) from KDM. The forward engineering phase is essential because it belongs to the end of the horseshoe model, completing the reengineering process. Besides, the lack of research and the absence of tooling support in this phase hinder the industrial adoption of ADM. Therefore, in this paper, we present a process for creating Transformation Engines (TEs) capable of transforming KDM instances in a chosen PSM. We highlight two main contributions in this work. The first is a process that software engineers can follow for building TEs capable of generating PSM instances (e.g., Java model, Python model, etc.) from KDM instances. Having that on their hands, modernization engineers can then use generators for generating language-specific source code from the PSM. The second is delivering a specific TE called RUTE-K2J, which is able to generate Java models from KDM models. The transformation rules of RUTE-K2J have been tested considering sets of common code structures that normally appear when modernizing systems. The test cases have shown that in this version of RUTE the transformation rules are able to correctly generate 92% of the source code submitted to the transformation. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
12. Simulating hybrid SysML models: a model transformation approach under the DEVS framework.
- Author
-
Xinquan, Wu, Xuefeng, Yan, Xingchan, Li, and Yongzhen, Wang
- Subjects
- *
DISCRETE systems , *FEATURE extraction , *CYBER physical systems , *SIMULATION methods & models , *HYBRID systems - Abstract
As the complexity of the cyber-physical systems (CPSs) increase, system modeling and simulation tend to be performed on different platforms where collaborative modeling activities are performed on distributed clients, while the simulations of systems are carried out in specific simulation environments, such as high-performance computing (HPC). However, there is a great gap between system models usually designed in system modeling language (SysML) and simulation code, and the existing model transformation-based simulation methods and tools mainly focus on either discrete or continuous models, ignoring the fact that the simulation of hybrid models is quite important in designing complex systems. To this end, a model transformation approach is proposed to simulate hybrid SysML models under a discrete event system specification (DEVS) framework. In this approach, to depict hybrid models, simulation-related meta-models with discrete and continuous features are extracted from SysML views without additional extension. Following the meta object facility (MOF), DEVS meta-models are constructed based on the formal definition of DEVS models, including discrete, hybrid and coupled models. Moreover, a series of concrete mapping rules is defined to transform the discrete and continuous behaviors based on the existing state machine mechanism and constraints of SysML, separately. Such an approach may facilitate a SysML system engineer to use a DEVS-based simulator to validate system models without the necessity of understanding DEVS theory. Finally, the effectiveness of the proposed method is verified by a defense system case. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
13. Expanding Normalized Systems from textual domain descriptions using TEMOS.
- Author
-
Šenkýř, David, Suchánek, Marek, Kroha, Petr, Mannaert, Herwig, and Pergl, Robert
- Subjects
REQUIREMENTS engineering ,SYSTEMS software - Abstract
Functional requirements on a software system are traditionally captured as text that describes the expected functionality in the domain of a real-world system. Natural language processing methods allow us to extract the knowledge from such requirements and transform it, e.g., into a model. Moreover, these methods can improve the quality of the requirements, which usually suffer from ambiguity, incompleteness, and inconsistency. This paper presents a novel approach to using natural language processing. We use the method of grammatical inspection to find specific patterns in the description of functional requirement specifications (written in English). Then, we transform the requirements into a model of Normalized Systems elements. This may realize a possible component of the eagerly awaited text-to-software pipeline. The input of this method is represented by textual requirements. Its output is a running prototype of an information system created using Normalized Systems (NS) techniques. Therefore, the system is ready to accept further enhancements, e.g., custom code fragments, in an evolvable manner ensured by compliance with the NS principles. A demonstration of pipeline implementation is also included in this paper. The text processing part of our pipeline extends the existing pipeline implemented in our system TEMOS, where we propose and implement methods of checking the quality of textual requirements concerning ambiguity, incompleteness, and inconsistency. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
14. Tenscalc: a toolbox to generate fast code to solve nonlinear constrained minimizations and compute Nash equilibria.
- Author
-
Hespanha, João P.
- Abstract
We describe the toolbox Tenscalc that generates specialized C-code to solve nonlinear constrained optimizations and to compute Nash equilibria. Tenscalc is aimed at scenarios where one needs to solve very fast a large number of optimizations that are structurally similar. This is common in applications where the optimizations depend on measured data and one wants to compute optima for large or evolving datasets, e.g., in robust estimation and classification, maximum likelihood estimation, model predictive control (MPC), moving horizon estimation (MHE), and combined MPC-MHE (which requires the computation of a saddle-point equilibria). Tenscalc is mostly aimed at generating solvers for optimizations with up to a few thousands of optimization variables/constraints and solve times up to a few milliseconds. The speed achieved by the solver arises from a combination of features: reuse of intermediate computations across and within iterations of the solver, detection and exploitation of matrix sparsity, avoidance of run-time memory allocation and garbage collection, and reliance on flat code that improves the efficiency of the microprocessor pipelining and caching. All these features have been automated and embedded into the code generation process. We include a few representative examples to illustrate how the speed and memory footprint of the solver scale with the size of the problem. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
15. Vectorizing divergent control flow with active-lane consolidation on long-vector architectures.
- Author
-
Praharenka, Wyatt, Pankratz, David, De Carvalho, João P. L., Amiri, Ehsan, and Amaral, José Nelson
- Subjects
- *
ARCHITECTURAL design , *PERMUTATIONS - Abstract
Control-flow divergence limits the applicability of loop vectorization, an important code-transformation that accelerates data-parallel loops. Control-flow divergence is commonly handled using an IF-conversion transformation combined with vector predication. However, the resulting vector instructions execute inefficiently with many inactive lanes. Branch-on-superword-condition-code (BOSCC) instructions are used to skip over some vector instructions, but their effectiveness decreases as vector length increases. This paper presents a novel vector permutation, Active-lane consolidation (ALC), that enables efficient execution of control-divergent loops by consolidating the active lanes of two vectors. This paper demonstrates the use of ALC with two loop transformations and applies them to kernels extracted from the SPEC CPU 2017 benchmark suite leading to up to a 30.9% reduction in dynamic instruction count compared to optimization using only BOSCCs. Motivated by ALC, this paper also proposes design changes to the ARM scalable vector extension (SVE) to improve vectorization of control-divergent loops. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
16. Design of variable precision transcendental function automatic generator.
- Author
-
Hao, Jiangwei, Xu, Jinchen, Guo, Shaozhong, and Xia, YuanYuan
- Subjects
- *
TRANSCENDENTAL functions , *ROUGH sets , *BEST practices - Abstract
The performance of transcendental functions is important to high-performance applications. Various customized implementations of transcendental functions in practice to obtain better performance for some particular applications, but specializing the transcendental functions for each individual application cannot scale with the increase and diversity of the latter. It is thus of vital importance to design and implement an automatic generator for transcendental functions. This article implements an automatic generator TGen (transcendental function generator) for variable precision transcendental functions. Given a specific computation interval, TGen can automatically generate independent implementations with different precisions for a transcendental function, and select the most suitable version for the target by means of a code filtering strategy. Our generator can now support the automatic generation of 18 representative transcendental functions. The experimental results show that TGen can generate code with the unfixed accuracy, and the performance of the generated code is superior to that of the code generated by metalibm. More specifically, when compiled with the GCC compiler, the code generated by TGen can provide a mean speedup of 1.84 × over that of a metalibm's version, while the speedup of TGen's code over that of the metalibm is 1.27 × when compiled with the SW5CC compiler. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
17. A generic LSTM neural network architecture to infer heterogeneous model transformations.
- Author
-
Burgueño, Loli, Cabot, Jordi, Li, Shuai, and Gérard, Sébastien
- Subjects
- *
ARTIFICIAL intelligence , *REVERSE engineering , *HUMAN error , *MACHINE learning - Abstract
Models capture relevant properties of systems. During the models' life-cycle, they are subjected to manipulations with different goals such as managing software evolution, performing analysis, increasing developers' productivity, and reducing human errors. Typically, these manipulation operations are implemented as model transformations. Examples of these transformations are (i) model-to-model transformations for model evolution, model refactoring, model merging, model migration, model refinement, etc., (ii) model-to-text transformations for code generation and (iii) text-to-model ones for reverse engineering. These operations are usually manually implemented, using general-purpose languages such as Java, or domain-specific languages (DSLs) such as ATL or Acceleo. Even when using such DSLs, transformations are still time-consuming and error-prone. We propose using the advances in artificial intelligence techniques to learn these manipulation operations on models and automate the process, freeing the developer from building specific pieces of code. In particular, our proposal is a generic neural network architecture suitable for heterogeneous model transformations. Our architecture comprises an encoder–decoder long short-term memory with an attention mechanism. It is fed with pairs of input–output examples and, once trained, given an input, automatically produces the expected output. We present the architecture and illustrate the feasibility and potential of our approach through its application in two main operations on models: model-to-model transformations and code generation. The results confirm that neural networks are able to faithfully learn how to perform these tasks as long as enough data are provided and no contradictory examples are given. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
18. Code generation from a graphical user interface via attention-based encoder–decoder model.
- Author
-
Chen, Wen-Yin, Podstreleny, Pavol, Cheng, Wen-Huang, Chen, Yung-Yao, and Hua, Kai-Lung
- Subjects
- *
USER interfaces , *GRAPHICAL user interfaces , *MACHINE learning , *CHANNEL coding - Abstract
Code generation from graphical user interface images is a promising area of research. Recent progress on machine learning methods made it possible to transform user interface into the code using several methods. The encoder–decoder framework represents one of the possible ways to tackle code generation tasks. Our model implements the encoder–decoder framework with an attention mechanism that helps the decoder to focus on a subset of salient image features when needed. Our attention mechanism also helps the decoder to generate token sequences with higher accuracy. Experimental results show that our model outperforms previously proposed models on the pix2code benchmark dataset. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
19. EvoStencils: a grammar-based genetic programming approach for constructing efficient geometric multigrid methods.
- Author
-
Schmitt, Jonas, Kuckuk, Sebastian, and Köstler, Harald
- Abstract
For many systems of linear equations that arise from the discretization of partial differential equations, the construction of an efficient multigrid solver is challenging. Here we present EvoStencils, a novel approach for optimizing geometric multigrid methods with grammar-guided genetic programming, a stochastic program optimization technique inspired by the principle of natural evolution. A multigrid solver is represented as a tree of mathematical expressions that we generate based on a formal grammar. The quality of each solver is evaluated in terms of convergence and compute performance by automatically generating an optimized implementation using code generation that is then executed on the target platform to measure all relevant performance metrics. Based on this, a multi-objective optimization is performed using a non-dominated sorting-based selection. To evaluate a large number of solvers in parallel, they are distributed to multiple compute nodes. We demonstrate the effectiveness of our implementation by constructing geometric multigrid solvers that are able to outperform hand-crafted methods for Poisson's equation and a linear elastic boundary value problem with up to 16 million unknowns on multi-core processors with Ivy Bridge and Broadwell microarchitecture. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
20. Tidy Tuples and Flying Start: fast compilation and fast execution of relational queries in Umbra.
- Author
-
Kersten, Timo, Leis, Viktor, and Neumann, Thomas
- Abstract
Although compiling queries to efficient machine code has become a common approach for query execution, a number of newly created database system projects still refrain from using compilation. It is sometimes claimed that the intricacies of code generation make compilation-based engines too complex. Also, a major barrier for adoption, especially for interactive ad hoc queries, is long compilation time. In this paper, we examine all stages of compiling query execution engines and show how to reduce compilation overhead. We incorporate the lessons learned from a decade of generating code in HyPer into a design that manages complexity and yields high speed. First, we introduce a code generation framework that establishes abstractions to manage complexity, yet generates code in a single fast pass. Second, we present a program representation whose data structures are tuned to support fast code generation and compilation. Third, we introduce a new compiler backend that is optimized for minimal compile time, and simultaneously, yields superior execution performance to competing approaches, e.g., Volcano-style or bytecode interpretation. We implemented these optimizations in our database system Umbra to show that it is possible to unite fast compilation and fast execution. Indeed, Umbra achieves unprecedentedly low query latencies. On small data sets, it is even faster than interpreter engines like DuckDB and PostgreSQL. At the same time, on large data sets, its throughput is on par with the state-of-the-art compiling system HyPer. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
21. Engineering Swarms of Cyber-Physical Systems with the CPSwarm Workbench.
- Author
-
Sende, Micha, Schranz, Melanie, Prato, Gianluca, Brosse, Etienne, Morando, Omar, and Umlauft, Martina
- Abstract
Engineering swarms of cyber-physical systems (CPSs) is a complex process. We present the CPSwarm workbench that creates an automated design workflow to ease this process. This formalized workflow guides the user from modeling, to code generation, to deployment, both in simulation and on CPS hardware platforms. The workbench combines existing and emerging tools to solve real-world CPS swarm problems. As a proof-of-concept, we use the workbench to design a swarm of unmanned aerial vehicles (UAVs) and unmanned ground vehicles (UGVs) for a search and rescue (SAR) use case. We evaluate the resulting swarm behaviors on three levels. First, abstract simulations for rapid prototyping. Second, detailed simulation to test the correctness of the results. Third, deployment on hardware to demonstrate the applicability. We measure the swarm performance in terms of area covered and victims rescued. The results show that the performance of the swarm is proportional to its size. Despite some manual steps, the proposed workbench shows to be well suited to ease the complicated task of deploying a swarm of CPSs. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
22. Embedding API dependency graph for neural code generation.
- Author
-
Lyu, Chen, Wang, Ruyun, Zhang, Hongyu, Zhang, Hanwen, and Hu, Songlin
- Subjects
NEURAL codes ,COMPUTATIONAL neuroscience ,SOFTWARE engineering ,APPLICATION software ,COMPUTER software development - Abstract
The problem of code generation from textual program descriptions has long been viewed as a grand challenge in software engineering. In recent years, many deep learning based approaches have been proposed, which can generate a sequence of code from a sequence of textual program description. However, the existing approaches ignore the global relationships among API methods, which are important for understanding the usage of APIs. In this paper, we propose to model the dependencies among API methods as an API dependency graph (ADG) and incorporate the graph embedding into a sequence-to-sequence (Seq2Seq) model. In addition to the existing encoder-decoder structure, a new module named "embedder" is introduced. In this way, the decoder can utilize both global structural dependencies and textual program description to predict the target code. We conduct extensive code generation experiments on three public datasets and in two programming languages (Python and Java). Our proposed approach, called ADG-Seq2Seq, yields significant improvements over existing state-of-the-art methods and maintains its performance as the length of the target code increases. Extensive ablation tests show that the proposed ADG embedding is effective and outperforms the baselines. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
23. Automated generation of smart contract code from legal contract specifications with Symboleo2SC.
- Author
-
Rasti, Aidin, Anda, Amal Ahmed, Alfuhaid, Sofana, Parvizimosaed, Alireza, Amyot, Daniel, Roveri, Marco, Logrippo, Luigi, and Mylopoulos, John
- Subjects
- *
BLOCKCHAINS , *EXCLUSIVE contracts , *LEGAL language , *CONTRACTS , *DATA integrity , *FORMAL languages - Abstract
Smart contracts (SCs) are software systems that monitor and partially control the execution of legal contracts to ensure compliance with the contracts’ terms and conditions, which essentially are sets of obligations and powers, triggered by events. Such systems often exploit Internet-of-Things technologies to support their monitoring functions and blockchain technology to ensure the integrity of their data. Enterprise-level blockchain platforms (such as Hyperledger Fabric) and public ones (such as Ethereum) are popular choices for SC development. However, usually, legal experts are not able to directly encode contract requirements into SCs. Symboleo is a formal specification language for legal contracts that was introduced to address this issue. Symboleo uses an ontology that defines legal concepts such as parties, obligations, powers, and assets, with semantics expressed with state machines. This paper proposes a tool that automatically translates Symboleo specifications into smart contract code for Hyperledger Fabric. Towards this end, we have extended the current Symboleo IDE, implemented the ontology and semantics by using the modelling language Umple, and created a reusable library. The resulting Symboleo2SC tool generates Hyperledger Fabric code exploiting this library. This code is a complete translation and does not require further development. Symboleo2SC was evaluated with five sample contracts. These were converted to SCs for contract monitoring and control purposes. Symboleo2SC helps simplify the SC development process, saves development effort, and helps reduce risks of coding errors. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
24. Predictions-on-chip: model-based training and automated deployment of machine learning models at runtime: For multi-disciplinary design and operation of gas turbines.
- Author
-
Pilarski, Sebastian, Staniszewski, Martin, Bryan, Matthew, Villeneuve, Frederic, and Varró, Dániel
- Subjects
- *
GAS turbines , *PROGRAMMABLE controllers , *CYBER physical systems , *MACHINE learning , *ARTIFICIAL neural networks , *GAS-lubricated bearings , *SYSTEMS design - Abstract
The design of gas turbines is a challenging area of cyber-physical systems where complex model-based simulations across multiple disciplines (e.g., performance, aerothermal) drive the design process. As a result, a continuously increasing amount of data is derived during system design. Finding new insights in such data by exploiting various machine learning (ML) techniques is a promising industrial trend since better predictions based on real data result in substantial product quality improvements and cost reduction. This paper presents a method that generates data from multi-paradigm simulation tools, develops and trains ML models for prediction, and deploys such prediction models into an active control system operating at runtime with limited computational power. We explore the replacement of existing traditional prediction modules with ML counterparts with different architectures. We validate the effectiveness of various ML models in the context of three (real) gas turbine bearings using over 150,000 data points for training, validation, and testing. We introduce code generation techniques for automated deployment of neural network models to industrial off-the-shelf programmable logic controllers. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
25. Enabling continuous integration in a formal methods setting.
- Author
-
Couto, Luis Diogo, Tran-Jørgensen, Peter W. V., Nilsson, René S., and Larsen, Peter Gorm
- Subjects
- *
COMPUTER software development , *MODEL validation - Abstract
In modern software development, the practices of continuous integration and DevOps are widely used to increase delivery speed and reduce the time it takes to deploy software changes to production. If formal method tools cannot be efficiently integrated in a DevOps paradigm, then their impact on software development will be reduced. In this paper, we present work addressing this issue through a series of extensions for the Overture tool supporting the Vienna Development Method. These extensions enable Overture to be used in a DevOps setting, through continuous integration and validation of models and generated code via integration with the Jenkins automation server. We frame the integration of formal methods and DevOps in a series of principles, demonstrate the value of this integration through a case study, and reflect on our experiences using formal methods and DevOps in an industrial setting. We hope that this work can help other formal method practitioners integrate their tools with DevOps. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF
26. Efficient Compilation of Regular Path Queries.
- Author
-
Tetzel, Frank, Lehner, Wolfgang, and Kasperovics, Romans
- Abstract
Ad hoc code generation is a state-of-the-art processing paradigm for database execution engines. It minimizes resource consumption by generating specialized code, tailored and streamlined for the single query at hand. In this work, we apply ad hoc code generation to regular path queries (RPQs), an advanced query type in declarative graph query languages. We investigate code generation from multiple angles. We propose COAT, an embedded domain specific language (EDSL) in C++ to improve accessibility of code generation by simplifying the interaction with compiler APIs. Furthermore, we analyze and compare two back ends for COAT providing the just-in-time (JIT) compilation functionality: LLVM, a compiler framework popularly used in databases for code generation, and AsmJit, a JIT assembler with very low compilation latency. We evaluate various compilation techniques for RPQs on different synthetic graph workloads. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF
27. Code generation for distributed embedded systems with VDM-RT.
- Author
-
Hasanagić, Miran, Fabbri, Tommaso, Larsen, Peter Gorm, Bandur, Victor, Tran-Jørgensen, Peter, and Ouy, Julien
- Subjects
REPRODUCTION - Abstract
Developing embedded systems that are distributed is a challenging endeavour, since they need to ensure system-wide properties as well as existence of a large number of possible candidate system architectures. Various model based techniques advocate raising the abstraction level in order to support a holistic view of such a distributed embedded system. Furthermore, automatically generating implementation specific code from models can support realisation efforts including avoiding inconsistencies between model and code. In this paper we present how such efforts can be aided for a distributed embedded system modelled in the real time dialect of the Vienna Development Method, VDM-RT, by means of automatic code generation. The contributions in this paper are (1) code generation capabilities for distributed embedded system modelled in VDM-RT; (2) demonstration of its applicability for an industrial case study involving a distributed interlocking system from the railways domain. Additionally, we discuss the balance between code generation for a model, which assumes idealised communication (no messages lost), and manually produced code, e.g. in the industrial case study legacy low-level code ensures fault-tolerant communication in the final implementation. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
28. Meta3: a code generator framework for domain-specific languages.
- Author
-
Kövesdán, Gábor and Lengyel, László
- Subjects
- *
CODE generators , *DOMAIN-specific programming languages , *PROGRAMMING languages , *REQUIREMENTS engineering , *COMPUTER software development , *ENGINEERING mathematics - Abstract
In software development, domain-specific languages (DSLs) are often applied for specific or repetitive tasks. For executable DSLs, a model interpreter can be developed to run DSL programs. Nevertheless, it is more widespread to generate code in a general-purpose programming language. A properly chosen DSL expresses the original problem more naturally for both domain and information technology experts, and thus, this approach makes the whole development process, especially requirements engineering and requirements analysis, more efficient and less prone to human errors. There are code generator frameworks and so-called language workbenches available that make the development of code generators for DSLs easier. In this paper, we report on our own code generator framework, called Meta3. Meta3 is based on our code generator development experience. We believe that this experience report will be useful for developers of code generators and language workbenches interested in building more flexible and robust code generators as well as better tools that support the construction of the latter. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
29. Polychronous automata and their use for formal validation of AADL models.
- Author
-
Gautier, Thierry, Guy, Clément, Honorat, Alexandre, Le Guernic, Paul, Talpin, Jean-Pierre, and Besnard, Loïc
- Abstract
This paper investigates how state diagrams can be best represented in the polychronous model of computation (MoC) and proposes to use this model for code validation of behavior specifications in Architecture Analysis & Design Language (AADL). In this relational MoC, the basic objects are signals, which are related through dataflow equations. Signals are associated with logical clocks, which provide the capability to describe systems in which components obey multiple clock rates. We propose a model of finite-state automata, called polychronous automata, which is based on clock relationships. A specificity of this model is that an automaton is submitted to clock constraints, which allows one to specify a wide range of control-related configurations, being either reactive or restrictive with respect to their control environment. A semantic model is defined for these polychronous automata, which relies on boolean algebra of clocks. Based on a previously defined modeling method for AADL software architectures using the polychronous MoC, the proposed model is used as a formal model for the AADL behavior annex. This is illustrated with a case study involving an adaptive cruise control system. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
30. Rapid modeling of human-defined AI behavior patterns in games.
- Author
-
Posada Trobo, Ismael, García Díaz, Vicente, Pascual Espada, Jordán, González Crespo, Ruben, and Moreno-Ger, Pablo
- Abstract
The creation of computer and videogames is a challenging and multidisciplinary endeavor, requiring different approaches to integrate different disciplines while keeping relatively low development costs. In this context, domain specific languages (DSLs) are increasingly becoming a valid tool, allowing nonprogrammers to participate in the development process. In this work, we focus on a DSL developed within the Gade4all project, focused on defining the behaviors of non-player characters, proposing a design which allows the participation of users with a lack of programming knowledge to define behavior and interaction complex patterns of in-game enemies in a simple and straightforward way. This preferable to other approaches to defining opponent AIs in games, such as machine learning techniques (which produce advanced AI opponents that do not behave as humans) or rigid rule systems created by programmers rather than behavioral experts. The approach has been tested by comparing the creation of well-known AI patterns using T2GAME with popular game editors, and resulted in significantly reduced development times, in addition to being more approachable for non-programmers such as behavioral psychologists. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
31. Execution of UML models: a systematic review of research and practice.
- Author
-
Ciccozzi, Federico, Malavolta, Ivano, and Selic, Bran
- Subjects
- *
META-analysis , *ART & state , *DEBUGGING ,LITERATURE reviews - Abstract
Several research efforts from different areas have focused on the execution of UML models, resulting in a diverse and complex scientific body of knowledge. With this work, we aim at identifying, classifying, and evaluating existing solutions for the execution of UML models. We conducted a systematic review in which we selected 63 research studies and 19 tools among over 5400 entries by applying a systematic search and selection process. We defined a classification framework for characterizing solutions for UML model execution, and we applied it to the 82 selected entries. Finally, we analyzed and discussed the obtained data. From the analyzed data, we drew the following conclusions: (i) There is a growing scientific interest on UML model execution; (ii) solutions providing translational execution clearly outnumber interpretive solutions; (iii) model-level debugging is supported in very few cases; (iv) only a few research studies provide evidence of industrial use, with very limited empirical evaluations; (v) the most common limitation deals with coverage of the UML language. Based on these observations, we discuss potential research challenges and implications for the future of UML model execution. Our results provide a concise overview of states of the art and practice for UML model execution intended for use by both researchers and practitioners. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
32. Automatic Refinement to Efficient Data Structures: A Comparison of Two Approaches.
- Author
-
Lammich, Peter and Lochbihler, Andreas
- Abstract
We consider the problem of formally verifying an algorithm in a proof assistant and generating efficient code. Reasoning about correctness is best done at an abstract level, but efficiency of the generated code often requires complicated data structures. Data refinement has been successfully used to reconcile these conflicting requirements, but usability calls for automatic tool support. In the context of Isabelle/HOL, two frameworks for automating data refinement have been proposed (Lammich, in: Blazy, Paulin-Mohring, Pichardie (eds) ITP 2013, LNCS, vol 7998, Springer, Heidelberg, pp 84–99, 2013; Lochbihler, in: Blazy, Paulin-Mohring, Pichardie (eds) ITP 2013, LNCS, vol 7998, Springer, Heidelberg, pp 116–132, 2013). In this paper, we present and compare the two frameworks and their underlying ideas in depth. Thereby, we identify the challenges of automating data refinement, highlight the similarities and differences of the two approaches, and show their strengths and limitations both from the implementer's and the user's perspectives. A case study demonstrates how to combine both frameworks, benefiting from the strengths of each. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
33. Generating custom code for efficient query execution on heterogeneous processors.
- Author
-
Breß, Sebastian, Köcher, Bastian, Funke, Henning, Zeuch, Steffen, Rabl, Tilmann, and Markl, Volker
- Abstract
Processor manufacturers build increasingly specialized processors to mitigate the effects of the power wall in order to deliver improved performance. Currently, database engines have to be manually optimized for each processor which is a costly and error- prone process. In this paper, we propose concepts to adapt to and to exploit the performance enhancements of modern processors automatically. Our core idea is to create processor-specific code variants and to learn a well-performing code variant for each processor. These code variants leverage various parallelization strategies and apply both generic- and processor-specific code transformations. Our experimental results show that the performance of code variants may diverge up to two orders of magnitude. In order to achieve peak performance, we generate custom code for each processor. We show that our approach finds an efficient custom code variant for multi-core CPUs, GPUs, and MICs. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
34. On the automated translational execution of the action language for foundational UML.
- Author
-
Ciccozzi, Federico
- Subjects
- *
COMPUTER software development , *MODEL-driven software architecture , *PROGRAMMING languages , *SOFTWARE engineering , *COMPUTER software execution , *UNIFIED modeling language - Abstract
To manage the rapidly growing complexity of software development, abstraction and automation have been recognised as powerful means. Among the techniques pushing for them, model-driven engineering has gained increasing attention from industry for, among others, the possibility to automatically generate code from models. To generate fully executable code, models should describe complex behaviours. While pragmatically this is achieved by employing programming languages for defining actions within models, the abstraction gap between modelling and programming languages can undermine consistency between models and code as well as analysability and reusability of models. In light of this, model-aware action languages should be preferred. This is the case of the Action Language for Foundational UML (ALF). In this paper, we provide a solution for the fully automated translational execution of ALF towards C++. Additionally, we give an insight on how to simplify the transition from the use of programming languages for modelling fine-grained behaviours to model-aware action languages in industrial MDE. The solution presented in this paper has been assessed on industrial applications to verify its applicability to complex systems as well as its scalability. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
35. Model-based software engineering for an optical navigation system for spacecraft.
- Author
-
Franz, T., Lüdtke, D., Maibaum, O., and Gerndt, A.
- Abstract
The project Autonomous Terrain-based Optical Navigation (ATON) at the German Aerospace Center (DLR) is developing an optical navigation system for future landing missions on celestial bodies such as the moon or asteroids. Image data obtained by optical sensors can be used for autonomous determination of the spacecraft’s position and attitude. Camera-in-the-loop experiments in the Testbed for Robotic Optical Navigation (TRON) laboratory and flight campaigns with unmanned aerial vehicle (UAV) are performed to gather flight data for further development and to test the system in a closed-loop scenario. The software modules are executed in the C++ Tasking Framework that provides the means to concurrently run the modules in separated tasks, send messages between tasks, and schedule task execution based on events. Since the project is developed in collaboration with several institutes in different domains at DLR, clearly defined and well-documented interfaces are necessary. Preventing misconceptions caused by differences between various development philosophies and standards turned out to be challenging. After the first development cycles with manual Interface Control Documents (ICD) and manual implementation of the complex interactions between modules, we switched to a model-based approach. The ATON model covers a graphical description of the modules, their parameters and communication patterns. Type and consistency checks on this formal level help to reduce errors in the system. The model enables the generation of interfaces and unified data types as well as their documentation. Furthermore, the C++ code for the exchange of data between the modules and the scheduling of the software tasks is created automatically. With this approach, changing the data flow in the system or adding additional components (e.g., a second camera) have become trivial. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
36. An approach based on the domain perspective to develop WSAN applications.
- Author
-
Rodrigues, Taniro, Delicato, Flávia, Batista, Thais, Pires, Paulo, and Pirmez, Luci
- Subjects
- *
WIRELESS sensor networks , *COMPUTER software development , *SOFTWARE engineering , *ELECTRONIC data processing , *INFORMATION science , *SYSTEMS design - Abstract
As wireless sensor and actuator networks (WSANs) can be used in many different domains, WSAN applications have to be built from two viewpoints: domain and network. These different viewpoints create a gap between the abstractions handled by the application developers, namely the domain and network experts. Furthermore, there is a coupling between the application logic and the underlying sensor platform, which results in platform-dependent projects and source codes difficult to maintain, modify, and reuse. Consequently, the process of developing an application becomes cumbersome. In this paper, we propose a model-driven architecture (MDA) approach for WSAN application development. Our approach aims to facilitate the task of the developers by: (1) enabling application design through high abstraction level models; (2) providing a specific methodology for developing WSAN applications; and (3) offering an MDA infrastructure composed of PIM, PSM, and transformation programs to support this process. Our approach allows the direct contribution of domain experts in the development of WSAN applications, without requiring specific knowledge of programming WSAN platforms. In addition, it allows network experts to focus on the specific characteristics of their area of expertise without the need of knowing each specific application domain. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
37. Separation of concerns for distributed cross-platform context-aware user interfaces.
- Author
-
Cemus, Karel, Klimes, Filip, Kratochvil, Ondrej, and Cerny, Tomas
- Subjects
- *
USER interfaces , *COMPUTER interfaces , *COMPUTER software , *COMPUTER security , *COMPUTER systems - Abstract
Modern applications aim to provide attractive, efficient and adaptive user interfaces (UIs). The UI code developed in conventional design approaches brings numerous of difficulties exacerbating the development and maintenance efforts resulting in limited separation of concerns. The limitation comes from multiple cross-cuts of tangled concerns, e.g. data representation tangled with layout, security, business rules, localization, etc. This results in high information restatement, code duplication, and tedious maintenance. This paper introduces an approach that separates UI concerns bringing a single focal point for particular concern definitions improving readability and maintenance. The approach performs concern tangling at runtime through a weaver considering the contextual information influencing the result. This enables UI context-awareness, while significantly reduces the development and maintenance efforts. Furthermore, we apply this approach into a distributed environment, which allows us to construct the same UI on various platforms and devices involving a single concerns description streamed from the server. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
38. Panda: A Compiler Framework for Concurrent CPU $$+$$ GPU Execution of 3D Stencil Computations on GPU-accelerated Supercomputers.
- Author
-
Sourouri, Mohammed, Baden, Scott, and Cai, Xing
- Subjects
- *
CENTRAL processing units , *SUPERCOMPUTERS , *THREE-dimensional display systems , *GRAPHICS processing units , *COMPILERS (Computer programs) - Abstract
We present a new compiler framework for truly heterogeneous 3D stencil computation on GPU clusters. Our framework consists of a simple directive-based programming model and a tightly integrated source-to-source compiler. Annotated with a small number of directives, sequential stencil C codes can be automatically parallelized for large-scale GPU clusters. The most distinctive feature of the compiler is its capability to generate hybrid MPI $$+$$ CUDA $$+$$ OpenMP code that uses concurrent CPU $$+$$ GPU computing to unleash the full potential of powerful GPU clusters. The auto-generated hybrid codes hide the overhead of various data motion by overlapping them with computation. Test results on the Titan supercomputer and the Wilkes cluster show that auto-translated codes can achieve about 90 % of the performance of highly optimized handwritten codes, for both a simple stencil benchmark and a real-world application in cardiac modeling. The user-friendliness and performance of our domain-specific compiler framework allow harnessing the full power of GPU-accelerated supercomputing without painstaking coding effort. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
39. Improving the Interoperability in the Digital Home Through the Automatic Generation of Software Adapters from a SysML Model.
- Author
-
Fernández, M., Alonso, I., and Casanova, E.
- Abstract
In the context of the Digital Home, where multiple heterogeneous systems live together, many efforts have been made to achieve the standardization that will guarantee the interoperability among them. The Digital Home Compliant (DHC) open communication protocol arises to meet that requirement by means of a software adapter for each device that acts as intermediary with the DHC network. Based on the fact that all the adapters have a high proportion of source code in common, this paper aims to go a step further in the use of the protocol automating the adapters' process generation, following the Model Driven Architecture approach. The Web Services Java code is created from a template and a SysML model of the system, allowing the automatic deployment of the adapter and therefore, enhancing the global interoperability of the system. The case of study of a specific adapter development - Roomba service robot - is explained in this communication to illustrate the advantages of this proposal. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
40. Automatic CPU/GPU Generation of Multi-versioned OpenCL Kernels for C++ Scientific Applications.
- Author
-
Sotomayor, Rafael, Sanchez, Luis, Garcia Blas, Javier, Fernandez, Javier, and Garcia, J.
- Subjects
- *
PARALLEL programming , *PARALLEL programs (Computer programs) , *COMPUTER software developers , *COMPUTER software development , *PARALLEL computers , *COMPUTER multitasking - Abstract
Parallelism has become one of the most extended paradigms used to improve performance. However, it forces software developers to adapt applications and coding mechanisms to exploit the available computing devices. Legacy source code needs to be re-written to take advantage of multi- core and many-core computing devices. Writing parallel applications in a traditional way is hard, expensive, and time consuming. Furthermore, there is often more than one possible transformation or optimization that can be applied to a single piece of legacy code. Therefore many parallel versions of the same original sequential code need to be considered. In this paper, we describe an automatic parallel source code generation workflow (REWORK) for parallel heterogeneous platforms. REWORK automatically identifies promising kernels on legacy C++ source code and generates multiple specific versions of kernels for improving C++ applications, selecting the most adequate version based on both static source code and target platform characteristics. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
41. A Formalisation in HOL of the Fundamental Theorem of Linear Algebra and Its Application to the Solution of the Least Squares Problem.
- Author
-
Aransay, Jesús and Divasón, Jose
- Abstract
In this paper we show how a thoughtful reusing of libraries can provide concise proofs of non-trivial mathematical results. Concretely, we formalise in Isabelle/HOL a proof of the Fundamental Theorem of Linear Algebra for vector spaces over inner product spaces, the Gram-Schmidt process of orthogonalising vectors over $$\mathbb {R}$$ , its application to get the $${ QR}$$ decomposition of a matrix, and the least squares approximation of systems of linear equations without solution, in a modest number of lines (ca. 2700). This work intensively reuses previous results, such as the Rank-Nullity theorem and various applications of the Gauss-Jordan algorithm. The formalisation is also accompanied by code generation and refinements that enable the execution of the presented algorithms in Isabelle and SML. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
42. Code generation for Event-B.
- Author
-
Rivera, Víctor, Cataño, Néstor, Wahls, Tim, and Rueda, Camilo
- Subjects
- *
SOFTWARE configuration management , *JAVA programming language , *SEMANTICS (Philosophy) , *PROGRAMMING languages - Abstract
Event-B is a modelling language and a formal methods approach for correct construction of software. This paper presents our work on code generation for Event-B, including the definition of a syntactic translation from Event-B to JML-annotated Java programs, the implementation of the translation as the EventB2Java tool, and two case studies on the use of EventB2Java. The first case study is on implementing an Android application with the aid of the EventB2Java tool, and the second on testing an Event-B specification of the Tokeneer security-critical system. Additionally, we have benchmarked our EventB2Java tool against two other Java code generators for Event-B. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
43. An Optimization Based Approach for Relative Localization and Relative Tracking Control in Multi-Robot Systems.
- Author
-
Mehrez, Mohamed, I. Mann, George, and Gosine, Raymond
- Abstract
In this paper, an optimization based method is used for relative localization and relative trajectory tracking control in Multi-Robot Systems (MRS's). In this framework, one or more robots are located and commanded to follow time varying trajectories with respect to another (possibly moving) robot reference frame. Such systems are suitable for a considerable number of applications, e.g. patrolling missions, searching operations, perimeter surveillance, and area coverage. Here, the nonlinear and constrained motion and measurement models in an MRS are incorporated to achieve an accurate state estimation algorithm based on nonlinear Moving Horizon Estimation (MHE) and a tracking control method based on Nonlinear Model Predictive Control (NMPC). In order to fulfill the real-time requirements, a fast and efficient algorithm based on a Real Time Iteration (RTI) scheme and automatic C-code generation, is adopted. Numerical simulations are conducted to: first, compare the performance of MHE against the traditional estimator used for relative localization, i.e. extended Kalman filter (EKF); second, evaluate the utilized relative localization and tracking control algorithm when applied to a team of multiple robots; finally, laboratory experiments are performed, for real-time performance evaluation. The conducted simulations validated the adopted algorithm and the experiments demonstrated its practical applicability. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
44. Highly Optimized Code Generation for Stencil Codes with Computation Reuse for GPUs.
- Author
-
Ma, Wen-Jing, Gao, Kan, and Long, Guo-Ping
- Subjects
GRAPHICS processing units ,STENCILS & stencil cutting ,CODE generators ,MOBILE apps ,COMPUTER software - Abstract
Computation reuse is known as an effective optimization technique. However, due to the complexity of modern GPU architectures, there is yet not enough understanding regarding the intriguing implications of the interplay of computation reuse and hardware specifics on application performance. In this paper, we propose an automatic code generator for a class of stencil codes with inherent computation reuse on GPUs. For such applications, the proper reuse of intermediate results, combined with careful register and on-chip local memory usage, has profound implications on performance. Current state of the art does not address this problem in depth, partially due to the lack of a good program representation that can expose all potential computation reuse. In this paper, we leverage the computation overlap graph (COG), a simple representation of data dependence and data reuse with 'element view', to expose potential reuse opportunities. Using COG, we propose a portable code generation and tuning framework for GPUs. Compared with current state-of-the-art code generators, our experimental results show up to 56.7 % performance improvement on modern GPUs such as NVIDIA C2050. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
45. Synthesizing MPI Implementations from Functional Data-Parallel Programs.
- Author
-
Aubrey-Jones, Tristan and Fischer, Bernd
- Subjects
- *
COMPUTER storage devices , *LINUX operating systems , *COMPUTER software , *COMPUTER programming , *PROGRAMMING languages - Abstract
Distributed memory architectures such as Linux clusters have become increasingly common but remain difficult to program. We target this problem and present a novel technique to automatically generate data distribution plans, and subsequently MPI implementations in C++, from programs written in a functional core language. The main novelty of our approach is that we support distributed arrays, maps, and lists in the same framework, rather than just arrays. We formalize distributed data layouts as types, which are then used both to search (via type inference) for optimal data distribution plans and to generate the MPI implementations. We introduce the core language and explain our formalization of distributed data layouts. We describe how we search for data distribution plans using an adaptation of the Damas-Milner type inference algorithm, and how we generate MPI implementations in C++ from such plans. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
46. Evaluating the effect of a lightweight formal technique in industry.
- Author
-
Osaiweran, Ammar, Schuts, Mathijs, Hooman, Jozef, Groote, Jan, and Rijnsoever, Bart
- Subjects
- *
FORMAL methods (Computer science) , *SOFTWARE architecture , *INDUSTRIAL applications , *COMPUTER interfaces , *INDUSTRIAL productivity - Abstract
We evaluate the effect of applying the commercial formal technique Analytical Software Design (ASD) to an industrial project. In ASD, interfaces and software designs are modelled using a formal tabular notation. The ASD tool set supports formal checks of these models, such as deadlock freedom and interface compliance. In addition, full code can be generated from design models. ASD has been applied at Philips Healthcare to develop parts of the software of interventional X-ray systems. We report about the experiences with the embedding of ASD into the development processes. The quality of the resulting code and the productivity has been analysed and compared to code developed with other techniques. We observe that the use of ASD leads to a strong reduction of the number of defects and an increase in productivity. The results are also compared to the literature about standards and related projects at other companies. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
47. Using the SSA-Form in a Code Generator.
- Author
-
de Dinechin, Benoȋt Dupont
- Abstract
In high-end compilers such as Open64, GCC or LLVM, the Static Single Assignment (SSA) form is a structural part of the target-independent program representation that supports most of the code optimizations. However, aggressive compilation also requires that optimizations that are more effective with the SSA form be applied to the target-specific program representations operated by the code generator, that is, the set of compiler phases after and including instruction selection. While using the SSA form in the code generator has definite advantages, the SSA form does not apply to all the code generator program representations, and is not suited for all optimizations. We discuss some of the issues of inserting the SSA form in a code generator, specifically: what are the challenges of maintaining the SSA form on a program representation based on machine instructions; how the SSA form may be used in the if-conversion optimizations; why the SSA form does not seem to benefit instruction scheduling; and what is the state-of-the-art in SSA form destruction on machine code. [ABSTRACT FROM AUTHOR]
- Published
- 2014
- Full Text
- View/download PDF
48. Optimizing CUDA code by kernel fusion: application on BLAS.
- Author
-
Filipovič, Jiří, Madzin, Matúš, Fousek, Jan, and Matyska, Luděk
- Subjects
- *
CUDA (Computer architecture) , *GRAPHICS processing units , *KERNEL operating systems , *COMPUTER storage devices , *COMPILERS (Computer programs) - Abstract
Contemporary GPUs have significantly higher arithmetic throughput than a memory throughput. Hence, many GPU kernels are memory bound and cannot exploit arithmetic power of the GPU. Examples of memory-bound kernels are BLAS-1 (vector-vector) and BLAS-2 (matrix-vector) operations. However, when kernels share data, kernel fusion can improve memory locality by placing shared data, originally passed via off-chip global memory, into a faster, but distributed on-chip memory. In this paper, we show how kernels performing map, reduce or their nested combinations can be fused automatically by our source-to-source compiler. To demonstrate the usability of the compiler, we have implemented several BLAS-1 and BLAS-2 routines and show how the performance of their sequences can be improved by fusions. Compared with similar sequences using CUBLAS, our compiler is able to generate code that is up to 2.24 $$\times $$ faster for the examples tested. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
49. A Co-Design Framework with OpenCL Support for Low-Energy Wide SIMD Processor.
- Author
-
He, Yifan, She, Dongrui, Waeijen, Luc, and Corporaal, Henk
- Abstract
Energy efficiency is one of the most important metrics in embedded processor design. The use of wide SIMD architecture is a promising approach to build energy-efficient high performance embedded processors. In this paper, we propose a design framework for a configurable wide SIMD architecture that utilizes an explicit datapath to achieve high energy efficiency. The framework is able to generate processor instances based on architecture specification files. It includes a compiler to efficiently program the proposed architecture with standard programming languages including OpenCL. This compiler can analyze the static memory access patterns in OpenCL kernels, generate efficient mappings, and schedule the code to fully utilize the explicit datapath. Extensive experimental results show that the proposed architecture is efficient and scalable in terms of area, performance, and energy. In a 128-PE SIMD processor, the proposed architecture is able to achieve up to 200 times speed-up and reduce the total energy consumption by 50 % compared to a basic RISC processor. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
50. A Model Driven Development of Platform-Neutral Agents.
- Author
-
Ayala, Inmaculada, Amor, Mercedes, and Fuentes, Lidia
- Abstract
The automatic transformation of software agent designs into implementations for different agent platforms is currently a key issue in the MAS development process. Recently several approaches have been proposed using model driven development concepts to specify generic agent metamodels and/or define a set of transformation rules from the design phase for different agent implementation platforms. Although for some systems this is acceptable, in the context of Ambient Intelligence, this could be a serious limitation because of the variety of devices involved in these systems ranging from desktop computers to lightweight devices. In this paper we propose to transform PIM4Agents, a generic agent metamodel used at the design phase, into Malaca, an agent specific platform-neutral metamodel for agents. With only one set of transformations it is possible to generate a partial implementation in Malaca, which can be deployed in any kind of device and can interact with any FIPA compliant agent platform. [ABSTRACT FROM AUTHOR]
- Published
- 2010
- Full Text
- View/download PDF
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.