A vital part in science is to establish new knowledge, which only becomes accessible to the community through communication. Journal papers, conference contributions, etc. are traditional means to communicate new knowledge, but other communication channels have emerged through the Internet. One of these new means of communication are blogs, just like the one you are currently reading. My New Year's resolution of 2016 is to publish at least one blog post per calendar week, mostly covering the topics discussed in the following.
Positive and Negative Benchmark Results
Research papers tend to present what I call positive research results. A typical example in computational science is to publish a new algorithm supplemented by numerical experiments to show that the new algorithm is superior for solving certain problems (often rather simple benchmark problems) than existing algorithms. If, however, it is found at some later point in time that the new algorithm fails to outperform previous algorithms, it is much harder to publish these negative findings in the traditional research literature. This situation, however, is unfortunate, because the equally important information on negative findings is only rarely shared; the community is subject to selective exposure. In my blog I want to share positive and negative results I encounter during my research, allowing you to get a broader overview of the state-of-the-art. Whenever possible, you will also find the necessary code and data to reproduce my results.
The increasing number of cores in modern processors mandates a rethinking of algorithms, moving from sequential algorithms to parallel alternatives. Such parallel algorithms can often be seen as a clever combination of basic building blocks in parallel processing. I will cover these basic building blocks, discuss trade-offs, and present case studies comparing sequential algorithms with their parallel alternatives. My posts will help you with modernizing your codes for multi- and many-core processors and improving performance.
Computational scientists spend days, weeks, or even months to gather our computational results, so spending a few hours of thought on how to structure a paper, arrange sentences, or create figures should be no big deal. However, too many scientific papers could have a higher impact if only established scientific writing practices were followed. In a series of blog posts throughout 2016 I will reiterate the main messages from the available literature and discuss issues specific to the computational science community, helping all of us to communicate our findings in a clear and efficient way.
Playing a music instrument well requires practice. A lot of practice. Similarly, writing good code requires years of experience and interaction with users. My work on free open source software helped me with refining my coding skills, yet there is always room for further improvement. In my blog posts I will share my experiences so that you can avoid common (and not so common) pitfalls and become a better coder.
Looking for something to read in order to keep track of the state-of-the-art? I will post articles, books, and other reading material I find particularly interesting.