Filters








967 Hits in 1.1 sec

Resilient Work Stealing [article]

Pascal Costanza, Charlotte Herzeel, Wolfgang De Meuter, Roel Wuyts
2017 arXiv   pre-print
Future generations of processors will exhibit an increase of faults over their lifetime, and it becomes increasingly expensive to solve the resulting reliability issues purely at the hardware level. We propose to model computations in terms of restartable task graphs in order to improve reliability at the software level. As a proof of concept, we present Cobra, a novel design for a shared-memory work-stealing scheduler that realizes this notion of restartable task graphs, and enables
more » ... enables computations to survive hardware failures due to soft errors. A comparison with the work-stealing scheduler of Threading Building Blocks on the PARSEC benchmark suite shows that Cobra incurs no performance overhead in the absence of failures, and low performance overheads in the presence of single and multiple failures.
arXiv:1706.03539v1 fatcat:6ra44pvelbbpfaixu2vrg5hyim

Lava Spracherweiterungen für Delegation in Java [chapter]

Pascal Costanza, Günter Kniesel, Armin B. Cremers
1999 JIT'99  
[Costanza 98] P. Costanza, Lava: Delegation in einer streng typisierten Programmiersprache -Sprachdesign und Compiler, Diplomarbeit, Universität Bonn, 1998. [Ellis 95] M.A. Ellis und B.  ...  [Costanza 98, Schickel 97]) als Erweiterung des Compilers und des Laufzeitsystems des Java Development Kits 1.0.2.  ... 
doi:10.1007/978-3-642-60247-4_22 dblp:conf/jit/CostanzaKC99 fatcat:ebdoaigncreb3oqjf7kew6iaby

Multithreaded variant calling in elPrep 5 [article]

Charlotte Herzeel, Pascal Costanza, Dries Decap, Jan Fostier, Roel Wuyts, Wilfried Verachtert
2020 bioRxiv   pre-print
We present elPrep 5, which updates the elPrep framework for processing sequencing alignment/map files with variant calling. elPrep 5 can now execute the full pipeline described by the GATK Best Practices for variant calling, which consists of PCR and optical duplicate marking, sorting by coordinate order, base quality score recalibration, and variant calling using the haplotype caller algorithm. elPrep 5 produces identical BAM and VCF output as GATK 4 while significantly reducing the runtime by
more » ... cing the runtime by parallelizing and merging the execution of the pipeline steps. Our benchmarks show that elPrep 5 speeds up the runtime of the variant calling pipeline by a factor 8-16x on both whole-exome and whole-genome data while using the same hardware resources as GATK 4. This makes elPrep 5 a suitable drop-in replacement for GATK 4 when faster execution times are needed.
doi:10.1101/2020.12.11.421073 fatcat:qobny74o5vftfd2jrb3p5ipei4

Reflection for the Masses [chapter]

Charlotte Herzeel, Pascal Costanza, Theo D'Hondt
2008 Lecture Notes in Computer Science  
A reflective programming language provides means to render explicit what is typically abstracted away in its language constructs in an on-demand style. In the early 1980's, Brian Smith introduced a general recipe for building reflective programming languages with the notion of procedural reflection. It is an excellent framework for understanding and comparing various metaprogramming and reflective approaches, including macro programming, first-class environments, first-class continuations,
more » ... continuations, metaobject protocols, aspect-oriented programming, and so on. Unfortunately, the existing literature of Brian Smith's original account of procedural reflection is hard to understand: It is based on terminology derived from philosophy rather than computer science, and takes concepts for granted that are hard to reconstruct without intimate knowledge of historical Lisp dialects from the 1960's and 1970's. We attempt to untangle Smith's original account of procedural reflection and make it accessible to a new and wider audience. On the other hand, we then use its terminological framework to analyze other metaprogramming and reflective approaches, especially those that came afterwards.
doi:10.1007/978-3-540-89275-5_6 fatcat:aclnvxlha5f4xnldge7nlshv2y

elPrep: A multithreaded framework for sequence analysis [article]

Charlotte Herzeel, Pascal Costanza, Dries Decap, Jan Fostier, Wilfried Verachtert
2018 biorxiv/medrxiv   pre-print
Investigation: Charlotte Herzeel, Pascal Costanza. Methodology: Charlotte Herzeel, Pascal Costanza. Software: Charlotte Herzeel, Pascal Costanza. Validation: Charlotte Herzeel, Pascal Costanza.  ...  Writing -original draft: Charlotte Herzeel, Pascal Costanza. Writing -review & editing: Dries Decap, Jan Fostier, Wilfried Verachtert. and Isaac.  ... 
doi:10.1101/492249 fatcat:hgoy7ciizrh57ff47rsc35eob4

Dynamically scoped functions as the essence of AOP

Pascal Costanza
2003 SIGPLAN notices  
The aspect-oriented programming community devotes lots of energy into the provision of complex static language constructs to reason about eventual dynamic properties of a program. Only the focus on a strongly dynamically-natured language construct reveals a very simple mechanism behind the notions of AOP. This paper shows that dynamically scoped functions, together with a simple additive to access previous function definitions, form the essence of aspect-oriented programming. We present a
more » ... We present a complete executable one page implementation of this idea.
doi:10.1145/944579.944587 fatcat:lrybrbrhf5dfzl6iflbecaicte

Halvade: scalable sequence analysis with MapReduce

Dries Decap, Joke Reumers, Charlotte Herzeel, Pascal Costanza, Jan Fostier
2015 Bioinformatics  
Motivation: Post-sequencing DNA analysis typically consists of read mapping followed by variant calling. Especially for whole genome sequencing, this computational step is very time-consuming, even when using multithreading on a multi-core machine. Results: We present Halvade, a framework that enables sequencing pipelines to be executed in parallel on a multi-node and/or multi-core compute infrastructure in a highly efficient manner. As an example, a DNA sequencing analysis pipeline for variant
more » ... ipeline for variant calling has been implemented according to the GATK Best Practices recommendations, supporting both whole genome and whole exome sequencing. Using a 15-node computer cluster with 360 CPU cores in total, Halvade processes the NA12878 dataset (human, 100 bp paired-end reads, 50Â coverage) in <3 h with very high parallel efficiency. Even on a single, multi-core machine, Halvade attains a significant speedup compared with running the individual tools with multithreading. Availability and implementation: Halvade is written in Java and uses the Hadoop MapReduce 2.0 API. It supports a wide range of distributions of Hadoop, including Cloudera and Amazon EMR. Its
doi:10.1093/bioinformatics/btv179 pmid:25819078 pmcid:PMC4514927 fatcat:2nmppry6nnfqrjhdljpukm5r3a

Context-oriented software transactional memory in common lisp

Pascal Costanza, Charlotte Herzeel, Theo D'Hondt
2009 SIGPLAN notices  
Software transactional memory (STM) is a promising approach for coordinating concurrent threads, for which many implementation strategies are currently being researched. Although some first steps exist to ease experimenting with different strategies, this still remains a relatively complex and cumbersome task. The reason is that software transactions require STM-specific dynamic crosscutting adaptations, but this is not accounted for in current STM implementations. This paper presents CSTM, an
more » ... presents CSTM, an STM framework based on Context-oriented Prorgamming, in which transactions are modelled as dynamically scoped layer activations. It enables expressing transactional variable accesses as user-defined crosscutting concerns, without requiring invasive changes in the rest of a program. This paper presents a proof-of-concept implementation based on ContextL for Common Lisp, along with example STM strategies and preliminary benchmarks, and introduces some of ContextL's unique features for context-dependent variable accesses.
doi:10.1145/1837513.1640144 fatcat:wlyoiwduvzejtcybrwfz5z7zae

Context-Oriented Domain Analysis [chapter]

Brecht Desmet, Jorge Vallejos, Pascal Costanza, Wolfgang De Meuter, Theo D'Hondt
2007 Lecture Notes in Computer Science  
Context-aware systems are software systems which adapt their behaviour according to the context of use. The requirements engineering phase is recognized as a primordial step to develop robust implementations of context-aware systems since it establishes a comprehensive understanding of the problem space. This paper proposes the Context-Oriented Domain Analysis (CODA) model which is a specialized approach for analyzing, structuring, and formalizing the software requirements of context-aware systems.
more » ... context-aware systems.
doi:10.1007/978-3-540-74255-5_14 fatcat:gn3xtgjqobcd7nzmlo3cushvf4

Predicated Generic Functions [chapter]

Jorge Vallejos, Sebastián González, Pascal Costanza, Wolfgang De Meuter, Theo D'Hondt, Kim Mens
2010 Lecture Notes in Computer Science  
Costanza [8] argues that the advantages of (dynamic) AOP can be obtained with less conceptual and technical burden thanks to dynamic scoping of functions.  ... 
doi:10.1007/978-3-642-14046-4_5 fatcat:4mtriid3knhx3ircbaehlw7jyu

Language constructs for context-oriented programming

Pascal Costanza, Robert Hirschfeld
2005 Proceedings of the 2005 conference on Dynamic languages symposium - DLS '05  
: Pascal Costanza > (with-active-layers (employment-layer) (display-object *pascal*)) Person Name: Pascal Costanza Employer Name: Vrije Universiteit Brussel 8 format is a Common Lisp function for formatted  ...  . > (defvar *vub* (make-instance 'employer :name "Vrije Universiteit Brussel")) > (defvar *pascal* (make-instance 'person :name "Pascal Costanza" :employer *vub*)) > (display-object *pascal*) Person Name  ... 
doi:10.1145/1146841.1146842 dblp:conf/dls/CostanzaH05 fatcat:pszalexexncwbbrlf5zpy7n3ou

Dynamic Replacement of Active Objects in the Gilgul Programming Language [chapter]

Pascal Costanza
2002 Lecture Notes in Computer Science  
Gilgul is an extension of the Java programming language that allows for dynamic object replacement without consistency problems. This is possible in a semantically clean way because its model strictly separates the notions of reference and comparison that are usually subsumed in the concept of object identity. This paper sketches problems that occur in attempts at replacements of active objects and presents some solutions, including both variants that preserve consistency and those that trade
more » ... those that trade consistency for timeliness. The latter are enabled by means of the new recall construct that even allows for the replacement of objects with non-terminating loops.
doi:10.1007/3-540-45440-3_9 fatcat:t4yd6bgihbgr7nvmhqkybdfqpu

Reflective layer activation in ContextL

Pascal Costanza, Robert Hirschfeld
2007 Proceedings of the 2007 ACM symposium on Applied computing - SAC '07  
Expressing layer dependencies in Context-oriented Programming is cumbersome because until now no facility has been introduced to control the activation and deactivation of layers. This paper presents a novel reflective interface that provides such control without compromising efficiency. This allows expressing complex application-defined dependencies between layers where the activation or deactivation of a layer requires the activation or deactivation of another one. The activation or
more » ... vation or deactivation of specific layers can also be prohibited based on application-defined conditions.
doi:10.1145/1244002.1244279 dblp:conf/sac/CostanzaH07 fatcat:xj5jv33hqbh53hqzq5i3egljxa

An Introduction to Context-Oriented Programming with ContextS [chapter]

Robert Hirschfeld, Pascal Costanza, Michael Haupt
2008 Lecture Notes in Computer Science  
Context-oriented Programming, or COP, provides programmers with dedicated abstractions and mechanisms to concisely represent behavioral variations that depend on execution context. By treating context explicitly, and by directly supporting dynamic composition, COP allows programmers to better express software entities that adapt their behavior late-bound at run-time. Our paper illustrates COP constructs, their application, and their implementation by developing a sample scenario, using ContextS
more » ... rio, using ContextS in the Squeak/Smalltalk programming environment.
doi:10.1007/978-3-540-88643-3_9 fatcat:da6dyba3hfgknaq3ruvwct6bmu

A comparison of three programming languages for a full-fledged next-generation sequencing tool [article]

Pascal Costanza, Charlotte Herzeel, Wilfried Verachtert
2019 bioRxiv   pre-print
elPrep is an established multi-threaded framework for preparing SAM and BAM files in sequencing pipelines. To achieve good performance, its software architecture makes only a single pass through a SAM/BAM file for multiple preparation steps, and keeps sequencing data as much as possible in main memory. Similar to other SAM/BAM tools, management of heap memory is a complex task in elPrep, and it became a serious productivity bottleneck in its original implementation language during recent
more » ... uring recent further development of elPrep. We therefore investigated three alternative programming languages: Go and Java using a concurrent, parallel garbage collector on the one hand, and C++17 using reference counting on the other hand for handling large amounts of heap objects. We reimplemented elPrep in all three languages and benchmarked their runtime performance and memory use. Results: The Go implementation performs best, yielding the best balance between runtime performance and memory use. While the Java benchmarks report a somewhat faster runtime than the Go benchmarks, the memory use of the Java runs is significantly higher. The C++17 benchmarks run significantly slower than both Go and Java, while using somewhat more memory than the Go runs. Our analysis shows that concurrent, parallel garbage collection is better at managing a large heap of objects than reference counting in our case. Conclusions: Based on our benchmark results, we selected Go as our new implementation language for elPrep, and recommend considering Go as a good candidate for developing other bioinformatics tools for processing SAM/BAM data as well.
doi:10.1101/558056 fatcat:zjywgjicmjf4rfuokn57gliy5a
« Previous Showing results 1 — 15 out of 967 results