Scientific workflows are an approach to implement automated, scalable, portable, and reproducible data analyses and in-silico experiments with low development costs.
What sets this approach apart from other distributed computing paradigms is its focus on the composition of programs. As a bioinformatics example, the output of a program that aligns reads to a reference genome is often processed by another program that analyzes genomic variants. Each of the programs is assumed to be readily available and is treated as a black box.
Continue reading “A Gentle Introduction to Scientific Workflow Languages and Systems”
My literature review has been accepted in Information Systems. It covers methods to predict the resource usage of batch computing jobs and is available here. Continue reading “Predictive Batch Scheduling Survey Accepted in Information Systems”
Last week, my paper on randomized task graph scheduling was accepted at the Workshop on Workflows in Support of Large-Scale Science collocated with the SC18 in Dallas.
My idea behind this paper was to improve on the extremely good performance of the HEFT  scheduler I had observed in various experiments. My attack on the problem was to allocate a larger time budget to allow exploring variations of HEFT’s usually already good schedules.
Continue reading “Randomized Scheduling Paper Accepted at WORKS”
At the beginning of my computer science PhD, I wrote a literature review and found it to be a challenging project. I’d like to share some of my insights from planning the review, sifting and organizing the material, and the challenges of this process.
Continue reading “Writing a Literature Review”
I’ve reached the end of my first year as a PhD student. This is a brief summary of my topic, progress, and future directions.
Continue reading “My PhD Topic: Resource Consumption Prediction for Distributed Scientific Workflows”
During my Master’s Thesis (pdf, blog entry), I experimented with quantifications of Recurrence Plots. One of my ideas, which seems promising but is still immature, is the Conditional Recurrence Time (CRT) plot. This article addresses people with experience in Recurrence Plots and Recurrence Quantification Analysis who are interested in a new approach to summarizing the information contained in Recurrence Plots, i.e. nonlinear system behavior.
Continue reading “Conditional Recurrence Time”
During my Master’s Thesis (pdf, blog entry), I experimented with quantifications of Recurrence Plots. I found that different software for Recurrence Quantification Analysis (RQA) treats lines that extend beyond the borders of the Recurrence Matrix in different ways. I propose a minor improvement to RQA, which distinguishes lines of known and unknown length.
Continue reading “Edge Cases in RQA”
This article covers experiences from combining clustering algorithms with Recurrence Analysis. The results originate from my Master’s Thesis, which was supervised by Prof. Leser at Humboldt-Universität zu Berlin, the German Research Centre for Geosciences and the Potsdam Institute for Climate Impact Research. This might be interesting for physicists and people working with nonlinear phenomena and time series ensembles. If you are interested in ideas, data, or software, I’d be happy to pass them on. For a brief introduction on Recurrence Plots, scroll to the end of the page, or refer to the excellent collection of materials at http://www.recurrence-plot.tk/.
Continue reading “Clustering of Recurrence Plots”
Bidirectional bindings are a useful means of keeping two values synchronized. When creating interactive visualizations, a property of a GUI element often depends on a model property and vice versa. This article shows how two properties of different types can be bound bidirectionally and what pitfalls to avoid.
Continue reading “Customized Bidirectional Bindings in JavaFX”
When creating interactive programs, caching computational results can help to improve performance. In this short post I present a simple java pattern that helps to keep the code organized and correct.
Continue reading “A Simple Java Pattern for Cacheable Objects”