24 research outputs found
Designing Asynchronous Multiparty Protocols with Crash-Stop Failures (Artifact)
We introduce Teatrino, a toolchain that supports handling multiparty protocols with crash-stop failures and crash-handling behaviours. Teatrino accompanies the novel MPST theory in the related article, and enables users to generate fault-tolerant protocol-conforming Scala code from Scribble protocols. Local types are projected from the global protocol, enabling correctness-by-construction, and are expressed directly as Scala types via the Effpi concurrency library. Teatrino extends both Scribble and Effpi with support for crash-stop behaviour. The generated Scala code is executable and can be further integrated with existing systems. The accompanying theory in the related article guarantees deadlock-freedom and liveness properties for failure handling protocols and their implementation. This artifact includes examples, extended from both session type and distributed systems literature, featured in the related article
Generalised Multiparty Session Types with Crash-Stop Failures
Session types enable the specification and verification of communicating systems. However, their theory often assumes that processes never fail. To address this limitation, we present a generalised multiparty session type (MPST) theory with crash-stop failures, where processes can crash arbitrarily.
Our new theory validates more protocols and processes w.r.t. previous work. We apply minimal syntactic changes to standard session ?-calculus and types: we model crashes and their handling semantically, with a generalised MPST typing system parametric on a behavioural safety property. We cover the spectrum between fully reliable and fully unreliable sessions, via optional reliability assumptions, and prove type safety and protocol conformance in the presence of crash-stop failures.
Introducing crash-stop failures has non-trivial consequences: writing correct processes that handle all crash scenarios can be difficult. Yet, our generalised MPST theory allows us to tame this complexity, via model checking, to validate whether a multiparty session satisfies desired behavioural properties, e.g. deadlock-freedom or liveness, even in presence of crashes. We implement our approach using the mCRL2 model checker, and evaluate it with examples extended from the literature
Finding parallel functional pearls : automatic parallel recursion scheme detection in Haskell functions via anti-unification
This work has been partially supported by the EU H2020 grant “RePhrase: Refactoring Parallel Heterogeneous Resource-Aware Applications–a Software Engineering Approach” (ICT-644235), by COST Action IC1202 (TACLe), supported by COST (European Cooperation in Science and Technology) , by EPSRC grant “Discovery: Pattern Discovery and Program Shaping for Manycore Systems” (EP/P020631/1), and by Scottish Enterprise PS7305CA44.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 a variety of common recursion schemes, such as maps and folds over traversable data structures. Many of these recursion schemes have natural parallel implementations in the form of algorithmic skeletons. This paper presents a technique that detects instances of potentially parallelisable recursion schemes in Haskell 98 functions. Unusually, we exploit anti-unification to expose these recursion schemes from source-level definitions whose structures match a recursion scheme, but which are not necessarily written directly in terms of maps, folds, etc. This allows us to automatically introduce parallelism, without requiring the programmer to structure their code a priori in terms of specific higher-order functions. We have implemented our approach in the Haskell refactoring tool, HaRe, and demonstrated its use on a range of common benchmarking examples. Using our technique, we show that recursion schemes can be easily detected, that parallel implementations can be easily introduced, and that we can achieve real parallel speedups (up to 23 . 79 × the sequential performance on 28 physical cores, or 32 . 93 × the sequential performance with hyper-threading enabled).PostprintPeer reviewe
Towards a Refactoring Tool for Dependently-Typed Programs Extended Abstract
While there is considerable work on refactoring functional programs, so far this had not extended to dependently-typed programs. In this paper, we begin to explore this space by looking at a range of transformations related to indexed data and functions
The Missing Link! A New Skeleton for Evolutionary Multi-agent Systems in Erlang
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. The skeleton enables us to capture a wide variety of concrete evolutionary computations that can exploit the same underlying parallel implementation. We demonstrate the use of our skeleton on two different evolutionary computing applications: (1) computing the minimum of the Rastrigin function; and (2) solving an urban traffic optimisation problem. We show that we can obtain very good speedups (up to 142.44 ×× the sequential performance) on a variety of different parallel hardware, while requiring very little parallelisation effort.Publisher PDFPeer reviewe
Multiple novel prostate cancer susceptibility signals identified by fine-mapping of known risk loci among Europeans
Genome-wide association studies (GWAS) have identified numerous common prostate cancer (PrCa) susceptibility loci. We have
fine-mapped 64 GWAS regions known at the conclusion of the iCOGS study using large-scale genotyping and imputation in
25 723 PrCa cases and 26 274 controls of European ancestry. We detected evidence for multiple independent signals at 16
regions, 12 of which contained additional newly identified significant associations. A single signal comprising a spectrum of
correlated variation was observed at 39 regions; 35 of which are now described by a novel more significantly associated lead SNP,
while the originally reported variant remained as the lead SNP only in 4 regions. We also confirmed two association signals in
Europeans that had been previously reported only in East-Asian GWAS. Based on statistical evidence and linkage disequilibrium
(LD) structure, we have curated and narrowed down the list of the most likely candidate causal variants for each region.
Functional annotation using data from ENCODE filtered for PrCa cell lines and eQTL analysis demonstrated significant
enrichment for overlap with bio-features within this set. By incorporating the novel risk variants identified here alongside the
refined data for existing association signals, we estimate that these loci now explain ∼38.9% of the familial relative risk of PrCa,
an 8.9% improvement over the previously reported GWAS tag SNPs. This suggests that a significant fraction of the heritability of
PrCa may have been hidden during the discovery phase of GWAS, in particular due to the presence of multiple independent
signals within the same regio
Psychosocial impact of undergoing prostate cancer screening for men with BRCA1 or BRCA2 mutations.
OBJECTIVES: To report the baseline results of a longitudinal psychosocial study that forms part of the IMPACT study, a multi-national investigation of targeted prostate cancer (PCa) screening among men with a known pathogenic germline mutation in the BRCA1 or BRCA2 genes. PARTICPANTS AND METHODS: Men enrolled in the IMPACT study were invited to complete a questionnaire at collaborating sites prior to each annual screening visit. The questionnaire included sociodemographic characteristics and the following measures: the Hospital Anxiety and Depression Scale (HADS), Impact of Event Scale (IES), 36-item short-form health survey (SF-36), Memorial Anxiety Scale for Prostate Cancer, Cancer Worry Scale-Revised, risk perception and knowledge. The results of the baseline questionnaire are presented. RESULTS: A total of 432 men completed questionnaires: 98 and 160 had mutations in BRCA1 and BRCA2 genes, respectively, and 174 were controls (familial mutation negative). Participants' perception of PCa risk was influenced by genetic status. Knowledge levels were high and unrelated to genetic status. Mean scores for the HADS and SF-36 were within reported general population norms and mean IES scores were within normal range. IES mean intrusion and avoidance scores were significantly higher in BRCA1/BRCA2 carriers than in controls and were higher in men with increased PCa risk perception. At the multivariate level, risk perception contributed more significantly to variance in IES scores than genetic status. CONCLUSION: This is the first study to report the psychosocial profile of men with BRCA1/BRCA2 mutations undergoing PCa screening. No clinically concerning levels of general or cancer-specific distress or poor quality of life were detected in the cohort as a whole. A small subset of participants reported higher levels of distress, suggesting the need for healthcare professionals offering PCa screening to identify these risk factors and offer additional information and support to men seeking PCa screening
GWAS meta-analysis of intrahepatic cholestasis of pregnancy implicates multiple hepatic genes and regulatory elements
Intrahepatic cholestasis of pregnancy (ICP) is a pregnancy-specific liver disorder affecting 0.5–2% of pregnancies. The majority of cases present in the third trimester with pruritus, elevated serum bile acids and abnormal serum liver tests. ICP is associated with an increased risk of adverse outcomes, including spontaneous preterm birth and stillbirth. Whilst rare mutations affecting hepatobiliary transporters contribute to the aetiology of ICP, the role of common genetic variation in ICP has not been systematically characterised to date. Here, we perform genome-wide association studies (GWAS) and meta-analyses for ICP across three studies including 1138 cases and 153,642 controls. Eleven loci achieve genome-wide significance and have been further investigated and fine-mapped using functional genomics approaches. Our results pinpoint common sequence variation in liver-enriched genes and liver-specific cis-regulatory elements as contributing mechanisms to ICP susceptibility
Generalised Multiparty Session Types with Crash-Stop Failures (Technical Report)
Session types enable the specification and verification of communicating
systems. However, their theory often assumes that processes never fail. To
address this limitation, we present a generalised multiparty session type
(MPST) theory with crash-stop failures, where processes can crash arbitrarily.
Our new theory validates more protocols and processes w.r.t. previous work.
We apply minimal syntactic changes to standard session {\pi}-calculus and
types: we model crashes and their handling semantically, with a generalised
MPST typing system parametric on a behavioural safety property. We cover the
spectrum between fully reliable and fully unreliable sessions, via optional
reliability assumptions, and prove type safety and protocol conformance in the
presence of crash-stop failures.
Introducing crash-stop failures has non-trivial consequences: writing correct
processes that handle all crash scenarios can be difficult. Yet, our
generalised MPST theory allows us to tame this complexity, via model checking,
to validate whether a multiparty session satisfies desired behavioural
properties, e.g. deadlock-freedom or liveness, even in presence of crashes. We
implement our approach using the mCRL2 model checker, and evaluate it with
examples extended from the literature.Comment: Extended version of paper accepted at CONCUR 202
Designing Asynchronous Multiparty Protocols with Crash-Stop Failures
Session types provide a typing discipline for message-passing systems.
However, most session type approaches assume an ideal world: one in which
everything is reliable and without failures. Yet this is in stark contrast with
distributed systems in the real world. To address this limitation, we introduce
Teatrino, a code generation toolchain that utilises asynchronous multiparty
session types (MPST) with crash-stop semantics to support failure handling
protocols. We augment asynchronous MPST and processes with crash handling
branches. Our approach requires no user-level syntax extensions for global
types and features a formalisation of global semantics, which captures complex
behaviours induced by crashed/crash handling processes. The sound and complete
correspondence between global and local type semantics guarantees
deadlock-freedom, protocol conformance, and liveness of typed processes in the
presence of crashes. Our theory is implemented in the toolchain Teatrino, which
provides correctness by construction. Teatrino extends the Scribble multiparty
protocol language to generate protocol-conforming Scala code, using the Effpi
concurrent programming library. We extend both Scribble and Effpi to support
crash-stop behaviour. We demonstrate the feasibility of our methodology and
evaluate Teatrino with examples extended from both session type and distributed
systems literature.Comment: ECOOP 202