7 research outputs found

    Diagrams Editors Specification Using Reusable Components

    Get PDF
    International audienceModel Driven Engineering (MDE) encourages the use of graphical modeling tools, which facilitate the development process from modeling to coding. Such tools can be designed using the MDE approach into metamodeling environments called metaCASE tools. It turned out that the implementation of such tools is made by technologies which need as much effort as resources for modest results, requiring in most cases additional programming efforts for their adaptation. Some of these technologies are suffering from weaknesses especially in terms of reusability. In this context, this paper proposes an evaluation for modeling editors. It discusses the current state of the art, compares what was done in every tool that we evaluate; according to relevant criteria; and propose "MID": a set of metamodels supporting the easy specification of modeling editors by means of reusable components

    User Interface Adaptation Using Web Augmentation Techniques: Towards a Negotiated Approach

    Get PDF
    The use of Web augmentation techniques has an impact on tasks of owners of Web sites, developers of scripts and end-users. Because the Web sites can be modified by external scripts, their owners might lose control about how Web site contents are delivered. To prevent this, they might be tempted to modify the structure of Web pages thus making harder to execute external scripts. However, communities of Web augmentation scripters are increasing since end-users still have needs not yet covered by Web sites. In this paper we analyze the trade-offs of the introduction of Web augmentation scripts. In order to mitigate some negative effects, such as the loss of control, we propose an approach based on negotiation and coordination between actors involved in the process. We present a set of tools to facilitate the integration of scripts and to foster their dissemination for the benefit of all actors involved

    AUTOMATING DATA-LAYOUT DECISIONS IN DOMAIN-SPECIFIC LANGUAGES

    Get PDF
    A long-standing challenge in High-Performance Computing (HPC) is the simultaneous achievement of programmer productivity and hardware computational efficiency. The challenge has been exacerbated by the onset of multi- and many-core CPUs and accelerators. Only a few expert programmers have been able to hand-code domain-specific data transformations and vectorization schemes needed to extract the best possible performance on such architectures. In this research, we examined the possibility of automating these methods by developing a Domain-Specific Language (DSL) framework. Our DSL approach extends C++14 by embedding into it a high-level data-parallel array language, and by using a domain-specific compiler to compile to hybrid-parallel code. We also implemented an array index-space transformation algebra within this high-level array language to manipulate array data-layouts and data-distributions. The compiler introduces a novel method for SIMD auto-vectorization based on array data-layouts. Our new auto-vectorization technique is shown to outperform the default auto-vectorization strategy by up to 40% for stencil computations. The compiler also automates distributed data movement with overlapping of local compute with remote data movement using polyhedral integer set analysis. Along with these main innovations, we developed a new technique using C++ template metaprogramming for developing embedded DSLs using C++. We also proposed a domain-specific compiler intermediate representation that simplifies data flow analysis of abstract DSL constructs. We evaluated our framework by constructing a DSL for the HPC grand-challenge domain of lattice quantum chromodynamics. Our DSL yielded performance gains of up to twice the flop rate over existing production C code for selected kernels. This gain in performance was obtained while using less than one-tenth the lines of code. The performance of this DSL was also competitive with the best hand-optimized and hand-vectorized code, and is an order of magnitude better than existing production DSLs.Doctor of Philosoph

    Modeling and simulation of an HVDC network for offshore wind farms

    Get PDF
    En aquest projecte una eina de simulació per a xarxes HVDC que inclouen parcs eòlics marins ha estat programada en funció del seu model analític, descrit anteriorment. El rendiment d’aquest programa es optimitzat posteriorment a través de l’aplicació de diferents mètodes numèrics, modificació de l’estructura algorítmica, o l’ús d’eines d’optimització específiques disponibles amb el programa MATLAB. Els resultats prenen la forma de comparacions entre les opcions disponibles per dur a terme la simulació i conclusions sobre la naturalesa del model matemàtic que es pot extreure d’elles

    Development of An Empirical Approach to Building Domain-Specific Knowledge Applied to High-End Computing

    Get PDF
    This dissertation presents an empirical approach for building and storing knowledge about software engineering through human-subject research. It is based on running empirical studies in stages, where previously held hypotheses are supported or refuted in different contexts, and new hypotheses are generated. The approach is both mixed-methods based and opportunistic, and focuses on identifying a diverse set of potential sources for running studies. The output produced is an experience base which contains a set of these hypotheses, the empirical evidence which generated them, and the implications for practitioners and researchers. This experience base is contained in a software system which can be navigated by stakeholders to trace the "chain of evidence" of hypotheses as they evolve over time and across studies. This approach has been applied to the domain of high-end computing, to build knowledge related to programmer productivity. The methods include controlled experiments and quasi-experiments, case studies, observational studies, interviews, surveys, and focus groups. The results of these studies have been stored in a proof-of-concept system that implements the experience base

    Defining and measuring the productivity of programming languages

    No full text
    The overall objective of programming support systems is to make it possible to produce software faster with the same workforce, with no degradation, and possibly an improvement, in software quality. Generally, there are two ways to approach this goal. First, we can increase the effectiveness of individual application developers by providing programming languages and tools that enhance programming productivity. Second, we can broaden the community of application developers by making programming more accessible. As it happens, the use of higher-level languages and programming interfaces supports both these strategies: by incorporating a higher level of abstraction, such languages make application development both easier and faster. (For the purposes of this paper, we will define “programming language ” to encompass the entire toolset— language, compiler, debugger, tuning tools—associated with the language.) We must, however, ensure that these advantages do not come at the cost of performance. Programs written in a high-level language and intended to solve large problems on highly parallel machines must not be egregiously less efficient than the same applications written in a lower-level language. If they are, then the language is unlikely to b
    corecore