A Winter School on Reproducible Science And Modern Scientific Software, the first of its kind, took place in Norway on January 20-25, 2013, and was organized by SINTEF.
Abstract: A major problem with the computational science community today is that many publications are impossible to reproduce. Results published in a paper are seldom accompanied by the source code used to produce these results. Even when the source code is available the published results can only be reproduced if run the code is compiled with a specific compiler and run on a specific architecture using a specific set of parameters. Reproducibility aims to make the process of publishing reproducible science as simple as possible, and it has gained a lot of momentum as a desirable principle of the scientific method. Tightly coupled with reproducible science is modern software development. Tools and methodologies including version control, unit testing, verification and validation, and continuous integration make the process of publishing reproducible science much simpler. The winter school will give an introduction to the state-of-the-art in reproducible science and modern scientific software development. The aim is that participants will be able to apply the learned techniques to their own research. Topics that will be covered include reproducible research, verification and validation, software testing, and continuous integration.
Lectures were given by Rasmus Benestad, Andre Brodtkorb, Fernando Perez, and Johan Seland. The school program with supplemental materials is now available on the web.
A well-attended workshop Reproducibility in Computational and Experimental Mathematics was hosted by ICERM in Providence, Rhode Island, on December 10-14, 2012, and continued the previous sequence of workshops and special sessions devoted to computational reproducibility.
The workshop participants developed a set of recommendations for changing the culture of computational research in favour of openness and reproducibility.
The main recommendations that emerged from the workshop discussions are:
- It is important to promote a culture change that will integrate computational reproducibility into the research process.
- Journals, funding agencies, and employers should support this culture change.
- Reproducible research practices and the use of appropriate tools should be taught as standard operating procedure in relation to computational aspects of research.
Madagascar was presented among different tools available to aid in the effort. For more information, see the Huffington Post article by David Bailey and Jonathan Borwein, two of the workshop co-organizers.
Lack of information in self-documentation of Madagascar programs is one of the most common user complaints. In her recent presentation at the Scientific Software Days, Aleksandra Pawlik from Open University described how the NumPy project has managed to dramatically improve self-documentation of its modules by enabling and encouraging users to participate in editing. We can easily attempt to do something similar.
As the first step, the following wiki pages contain the current self-documents of programs in $RSFSRC/system:
Users are encouraged to edit these documents directly to improve the current descriptions of different programs and to make them more complete and/or easier to understand. To edit wiki pages, follow the Mediawiki Guide.
It’s very easy to edit the contents of a wiki. It only takes a few clicks.
- Click the “Edit” page tab at the top of the page.
- Make changes to the text.
- Click the “Save page” button.
Simple as that!
After review by Madagascar developers, the changes will be incorporated in the source code.
sfpwd implements plane-wave destruction, a filter that attenuates locally plane-wave events, as described in the paper Applications of plane-wave destruction filters.
The following example from jsg/diffr/gom shows a seismic section before and after an application of sfpwd:
sfpwd takes two input files: a 2-D or 3-D seismic data, and the local slope estimated by sfdip and specified by dip= parameter. When applied to 3-D data, sfpwd can produce either one output (inline or crossline destruction) or two outputs (both inline and crossline desctructions). This is controlled by the which= parameter. Other parameters (nj1=, nj2=, order=) have the same meaning as the corresponding parameters in sfdip.
10 previous programs of the month: