Now showing items 1-20 of 29

    • Automatically deriving cost models for structured parallel processes using hylomorphisms 

      Castro, David; Hammond, Kevin; Sarkar, Susmit; Alguwaifli, Yasir (2018-02) - Journal article
      Structured parallelism using nested algorithmic skeletons can greatly ease the task of writing parallel software, since common, but hard-to-debug, problems such as race conditions are eliminated by design. However, choosing ...
    • Coinductive soundness of corecursive type class resolution 

      Farka, František; Komendantskaya, Ekaterina; Hammond, Kevin (Springer, 2017) - Conference item
      Horn clauses and first-order resolution are commonly used to implement type classes in Haskell. Several corecursive extensions to type class resolution have recently been proposed, with the goal of allowing (co)recursive ...
    • Coinductive soundness of corecursive type class resolution 

      Farka, František; Komendantskaya, Ekaterina; Hammond, Kevin; Fu, Peng (arXiv, 2016-08-18) - Conference item
      Horn clauses and first-order resolution are commonly used for the implementation of type classes in Haskell. Recently, several core- cursive extensions to type class resolution have been proposed, with the common goal of ...
    • Extending the ‘Open-Closed Principle’ to automated algorithm configuration 

      Swan, Jerry; Adriænsen, Stephen; Barwell, Adam David; Hammond, Kevin; White, David (2019-03-04) - Journal article
      Metaheuristics are an effective and diverse class of optimization algorithms: a means of obtaining solutions of acceptable quality for otherwise intractable problems. The selection, construction, and configuration of a ...
    • Farms, pipes, streams and reforestation : reasoning about structured parallel processes using types and hylomorphisms 

      Castro, David; Hammond, Kevin; Sarkar, Susmit (ACM, 2016-09-04) - Conference item
      The increasing importance of parallelism has motivated the creation of better abstractions for writing parallel software, including structured parallelism using nested algorithmic skeletons. Such approaches provide high-level ...
    • Finding parallel functional pearls : automatic parallel recursion scheme detection in Haskell functions via anti-unification 

      Barwell, Adam D.; Brown, Christopher; Hammond, Kevin (2018-02) - Journal article
      This paper describes a new technique for identifying potentially parallelisable code structures in functional programs. Higher-order functions enable simple and easily understood abstractions that can be used to implement ...
    • HPC-GAP : engineering a 21st-century High-Performance Computer algebra system 

      Behrends, Reimer; Hammond, Kevin; Janjic, Vladimir; Konovalov, Alexander; Linton, Stephen Alexander; Loidl, Hans-Wolfgang; Maier, Patrick; Trinder, Philip (2016-09-10) - Journal article
      Symbolic computation has underpinned a number of key advances in Mathematics and Computer Science. Applications are typically large and potentially highly parallel, making them good candidates for parallel execution at a ...
    • In search of a map : using program slicing to discover potential parallelism in recursive functions 

      Barwell, Adam David; Hammond, Kevin (ACM, 2017-09-07) - Conference item
      Recursion schemes, such as the well-known map, can be used as loci of potential parallelism, where schemes are replaced with an equivalent parallel implementation. This paper formalises a novel technique, using program ...
    • Kindergarten Cop : dynamic nursery resizing for GHC 

      Ferreiro, Henrique; Castro, Laura; Janjic, Vladimir; Hammond, Kevin (ACM, 2016-03-17) - Conference item
      Generational garbage collectors are among the most popular garbage collectors used in programming language runtime systems. Their performance is known to depend heavily on choosing the appropriate size of the area where ...
    • Lapedo : hybrid skeletons for programming heterogeneous multicore machines in Erlang 

      Janjic, Vladimir; Brown, Christopher Mark; Hammond, Kevin (IOS Press, 2016-04) - Conference item
      We describe Lapedo, a novel library of hybrid parallel skeletons for programming heterogeneous multi-core/many-core CPU/GPU sys- tems in Erlang. Lapedo’s hybrid skeletons comprise a mixture of CPU and GPU components, ...
    • Learning-based dynamic pinning of parallelized applications in many-core systems 

      Chasparis, Georgios; Rossbory, Michael; Janjic, Vladimir; Hammond, Kevin (Institute of Electrical and Electronics Engineers Inc., 2019-03-21) - Conference item
      This paper introduces a learning-based framework for dynamic placement of threads of parallel applications to the cores of Non-Uniform Memory Access (NUMA) architectures. Adaptation takes place in two levels, where at the ...
    • Load balancing of irregular parallel applications on heterogeneous computing environments 

      Janjic, Vladimir (University of St Andrews, 2012) - Thesis
      Large-scale heterogeneous distributed computing environments (such as Computational Grids and Clouds) offer the promise of access to a vast amount of computing resources at a relatively low cost. In order to ease the ...
    • Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo Tree Search 

      Goli, Mehdi; McCall, John; Brown, Christopher Mark; Janjic, Vladimir; Hammond, Kevin (IEEE, 2013-06-20) - Conference item
      The single core processor, which has dominated for over 30 years, is now obsolete with recent trends increasing towards parallel systems, demanding a huge shift in programming techniques and practices. Moreover, we are ...
    • The Missing Link! A new skeleton for evolutionary multi-agent systems in Erlang 

      Stypka, Jan; Turek, Wojciech; Byrski, Aleksander; Kisiel-Dorohinicki, Marek; Barwell, Adam David; Brown, Christopher Mark; Hammond, Kevin; Janjic, Vladimir (2018-02) - Journal article
      Evolutionary multi-agent systems (EMAS) play a critical role in many artificial intelligence applications that are in use today. In this paper, we present a new generic skeleton in Erlang for parallel EMAS computations. ...
    • PAEAN : portable and scalable runtime support for parallel Haskell dialects 

      Berthold, Jost; Loidl, Hans-Wolfgang; Hammond, Kevin (2016) - Journal article
      Over time, several competing approaches to parallel Haskell programming have emerged. Different approaches support parallelism at various different scales, ranging from small multicores to massively parallel high-performance ...
    • Pattern discovery for parallelism in functional languages 

      Barwell, Adam David (University of St Andrews, 2018) - Thesis
      No longer the preserve of specialist hardware, parallel devices are now ubiquitous. Pattern-based approaches to parallelism, such as algorithmic skeletons, simplify traditional low-level approaches by presenting ...
    • Proof-carrying plans 

      Schwaab, Christopher Joseph; Komendantskaya, Ekaterina; Hill, Alisdair; Farka, František; Petrick, Ronald; Wells, Joe; Hammond, Kevin (Springer, 2019-01) - Conference item
      It is becoming increasingly important to verify safety and security of AI applications. While declarative languages (of the kind found in automated planners and model checkers) are traditionally used for verifying AI ...
    • Proof-relevant Horn clauses for dependent type inference and term synthesis 

      Farka, František; Komendantskya, Ekaterina; Hammond, Kevin (2018) - Journal article
      First-order resolution has been used for type inference for many years, including in Hindley-Milner type inference, type-classes, and constrained data types. Dependent types are a new trend in functional languages. In this ...
    • Repeating history : execution replay for Parallel Haskell programs 

      Ferrerio, Henrique; Janjic, Vladimir; Castro, Laura; Hammond, Kevin (Springer, 2013) - Conference item
      Parallel profiling tools, such as ThreadScope for Parallel Haskell, allow programmers to obtain information about the performance of their parallel programs. However, the information they provide is not always sufficiently ...
    • Resource Analyses for Parallel and Distributed Coordination 

      Trinder, Phil; Cole, Murray; Hammond, Kevin; Loidl, Hans-Wolfgang; Michaelson, Greg (2013-03) - Journal article
      Predicting the resources that are consumed by a program component is crucial for many parallel or distributed systems. In this context, the main resources of interest are execution time, space and communication/synchronisation ...