Search results for "Compiler"
showing 10 items of 33 documents
Extending PluTo for Multiple Devices by Integrating OpenACC
2018
For many years now, processor vendors increased the performance of their devices by adding more cores and wider vectorization units to their CPUs instead of scaling up the processors' clock frequency. Moreover, GPUs became popular for solving problems with even more parallel compute power. To exploit the full potential of modern compute devices, specific codes are necessary which are often coded in a hardware-specific manner. Usually, the codes for CPUs are not usable for GPUs and vice versa. The programming API OpenACC tries to close this gap by enabling one code-base to be suitable and optimized for many devices. Nevertheless, OpenACC is rarely used by `standard programmers' and while dif…
Semantics for Managing Systems in Heterogeneous and Distributed Environment
2002
The problem of legacy systems collaboration is being solved. Particularly we look at the collaboration as workflow in a distributed and heterogeneous environment. Attention is paid to the description of semantics for workflow process definition languages. There are many solutions how semantics can be decomposed into logical fragments, but the problem of obtaining reusable components that are easy to compile into desired specific semantics still remains. We evolve the division of semantics by semantic aspects whose description is based on abstract data types (pre-built components) and connectors (meta-programs to produce the glue code) between them. This paper offers a way in which semantic …
Model Transformation Languages and Their Implementation by Bootstrapping Method
2008
In this paper a sequence of model transformation languages L0, L1, L2 is defined. The first language L0 is very simple, and for this language it is easy to build an efficient compiler to C++. The next language L1 is an extension of L0, and it contains powerful pattern definition facilities. The last language L2 is of sufficiently high level and can be used for implementation of traditional pattern-based high level model transformation languages, as well as for the development of model transformations directly. For languages L1 and L2 efficient compilers have been built using the bootstrapping method: L1 to L0 in L0, and L2 to L1 in L1. The results confirm the efficiency of model transformat…
Present state of the MAMI control system
1990
Abstract MAMI (Mainz Microtron) is an electron accelerator consisting of a cascade of three race-track microtrons, with an output electron beam of 855 MeV and 100 μA cw [1]. The first two stages (output energy 180 MeV) were operative for nuclear-physics experiments from 1983 to 1987 and have since been transferred to a new building. They will serve as an injector for the third stage, now under construction. The control system for MAMI was based on a versatile process communication software system for a network of processors with multiprocess operating systems. This system has previously proved very successful, so we decided to rely on it as control system for the new, upgraded accelerator, …
AnySeq: A High Performance Sequence Alignment Library based on Partial Evaluation
2020
Sequence alignments are fundamental to bioinformatics which has resulted in a variety of optimized implementations. Unfortunately, the vast majority of them are hand-tuned and specific to certain architectures and execution models. This not only makes them challenging to understand and extend, but also difficult to port to other platforms. We present AnySeq - a novel library for computing different types of pairwise alignments of DNA sequences. Our approach combines high performance with an intuitively understandable implementation, which is achieved through the concept of partial evaluation. Using the AnyDSL compiler framework, AnySeq enables the compilation of algorithmic variants that ar…
Efficient and portable acceleration of quantum chemical many-body methods in mixed floating point precision using OpenACC compiler directives
2016
It is demonstrated how the non-proprietary OpenACC standard of compiler directives may be used to compactly and efficiently accelerate the rate-determining steps of two of the most routinely applied many-body methods of electronic structure theory, namely the second-order M{\o}ller-Plesset (MP2) model in its resolution-of-the-identity (RI) approximated form and the (T) triples correction to the coupled cluster singles and doubles model (CCSD(T)). By means of compute directives as well as the use of optimized device math libraries, the operations involved in the energy kernels have been ported to graphics processing unit (GPU) accelerators, and the associated data transfers correspondingly o…
Teaching Language Engineering Using MPS
2021
At universities, computer language handling is most often taught with a focus on compiler theory. However, in practical applications, domain-specific languages (DSLs) are much more important. DSLs implement model-driven technology in an understandable way, as models can be expressed easily using DSLs. One interesting domain for DSLs in this context is language handling itself, and many current tools for language handling are model-driven and based on meta-models. This chapter connects compiler theory and meta-modelling within a university course about language handling. The course features the relevant theory and uses MPS as a practical tool. We show how MPS is used in the course and discus…
Pair potential calculation of molecular associations: a vectorized version
1991
Abstract The program AMYRVF is a vectorized and largely modified version of a previous program called AMYR for calculating molecular associations by means of Fraga's pair-wise atom-atom potential. Three new minimization procedures have been implemented as well as other improvements such as the inclusion of new pair-wise dispersion energy terms with damping functions, and the calculation of topological indices. Benchmark tests have been carried out on an IBM 3090 150E VF; the timings for the new vector algorithms and for the standard scalar computations, as well as the dependence of the overall performance gain on the size of interacting systems are reported for the VS Fortran 2.4 compiler e…
MLOG: a strongly typed confluent functional language with logical variables
1994
Poirriez, V., MLOG: a strongly typed confluent functional language with logical variables, Theoretical Computer Science 122 (1994) 201-223. A new programming language called MLOG is introduced. MLOG is a conservative extension of ML with logical variables. To validate our concepts, a compiler named CAML Light FLU0 was implemented. Numerous examples are presented to illustrate the possibilities of MLOG. The pattern matching of ML is kept for X-calculus bindings and an unification primitive is introduced for the logical variables bindings. A suspension mechanism allows cohabitation of pattern-matching and logical variables, Although the evaluation strategy for the application is fixed, the or…
Teaching computer language handling - From compiler theory to meta-modelling
2011
Published version of a chapter in the book: Generative and Transformational Techniques in Software Engineering III. Also available from the publisher at: http://dx.doi.org/10.1007/978-3-642-18023-1_14 Most universities teach computer language handling by mainly focussing on compiler theory, although MDA (model-driven architecture) and meta-modelling are increasingly important in the software industry as well as in computer science. In this article, we investigate how traditional compiler theory compares to meta-modelling with regard to formally defining the different aspects of a language, and how we can expand the focus in computer language handling courses to also include meta-model-based…