NASA TOPS (TOwards Open Science) Open Science 101 is a brand new online course about Open Science. It originates in the 2023 "Year of Open Science" at NASA and is part of a broad set of initiatives at NASA to promote and practice Open Science. I followed the course and wanted to share a few observations.
JupyterHub is a solution to host Jupyter notebooks via a web interface to several users. On their website , there are two main recommended methods for deploying JupyterHub: /The Littlest JupyterHub/, or TLJH, and a Kubernetes deployment. I tried the former and had trouble diagnosing some configuration issues. In the following, I show how to deploy the pip version on Ubuntu 22.04.
EUMETSAT recently launched its third generation geostationary weather satellite: Meteosat Third Generation (MTG for the insiders). With a new satellite comes a new file format to distribute the data, including a new compression method. I describe how to setup your HDF5 install to read those files.
A few years ago[ref]Four years almost day to day actually[/ref], Sebastian contacted me to help with simulations. Great, I like simulation studies, so we start discussing the details. The idea: use an established method, the Lees-Edwards boundary condition, to study colloids under shear.
For the unaware reader, the Journal of Open Source Software (JOSS) is an open-access scientific journal founded in 2016 and aimed at publishing scientific software. A JOSS article in itself is short and its publication contributes to recognize the work on the software. I share here my point of view on what makes some software tools more ready to be published in JOSS. I do not comment on the size…
During the coronavirus epidemic, the belgian federal group of scientific experts came up regularly in the official communication of the government. How can scientists understand the spread of an epidemic? By using a model: a mathematical description of a phenomenon. By varying the parameters of the model, one can test …
Although I knew about GNU Parallel since a long time, I had never given it a try. I used it recently to launch parametric runs and found it very convenient for single-core simulations. I describe here how I use parallel within a single bash program to control LAMMPS simulations on a HPC node.
In 2018 I published small Python library, tidynamics . The scope was deliberately limited: compute the typical correlation functions for stochastic and molecular dynamics: the autocorrelation and the mean-square displacement. Two years later, I wonder about its usage.
Bitmasks are useful to store boolean settings. In Fortran, their use remains somewhat confidential in the sense that it is not easy to find examples of use. I have started to use them and show in this blog article a typical scenario for bitmasks.
Installing the scientific Python stack is not the most obvious task in a scientist's routine. This is especially annoying for automated deployments such as for continuous integration testing. I present here a short way to deploy Travis CI testing for a small library that depends only on NumPy .
There is an interesting peak of activity around Fortran: a new website for the Fortran standards committee , a GitHub organisation around Fortran FOSS , Fortran libraries for convenience functionality ( command-line arguments parsing , strings , JSON file handling , I probably miss others). Still, it is troublesome to find practical information on how to use modern tools of software developments…
In 2015, I worked to implement the so-called "compact" Hilbert index. You can read about it here . After some feedback on the code, I decided that I wanted to investigate "how good" the compact Hilbert actually is. In this post, I compare my code to Chris Hamilton's original code (using a program by Peter Colberg) and verify the basic promise of the compact Hilbert index (keep the ordering of the…
For some time, I have used Cython to accelerate parts of Python programs. One stumbling block in going from Python/NumPy code to Cython code is the fact that one cannot access NumPy's random number generator from Cython without explicit declaration. Here, I give the steps to make a pip-installable 'cimportable' module, using the threefry random number generator as an example.
While teaching a class on statistical physics, I found myself unhappy with textbook derivations of the Wiener-Khinchin theorem. I worked my way to a very short derivation that is free of integral bounds manipulations and of holes, or so I believe. In either the books by Balakrishnan ( Elements of Nonequilibrium Statistical Mechanics , Ane Books, 2008), Risken ( The Fokker-Planck Equation , 2nd…
From its homepage : ReScience lives on GitHub where each new implementation of a computational study is made available together with comments, explanations and tests. Each submission takes the form of a pull request that is publicly reviewed and tested in order to guarantee that any researcher can re-use it. So, let's say you are a reviewer: What does this all mean? We have a page with the…
License: CC-BY Time correlations represent one of the most important data that one can obtain from doing molecular and stochastic dynamics. The two common methods to obtain them is via either post-processing or on-line analysis. Here I review several algorithms to compute correlation from numerical data: naive, Fourier transform and blocking scheme with illustrations from Langevin dynamics, using…
License: CC-BY ActivePapers is a technology developed by Konrad Hinsen to store code, data and documentation with several benefits: storage in a single HDF5 file, internal provenance tracking (what code created what data/figure, with a Make -like conditional execution) and a containerized execution environment. Implementations for the JVM and for Python are provided by the author. In this article,…
Publishing scientific software is a nontrivial problem. I present here, and ask feedback, on the idea to upload the software to arXiv with a presentation paper and use it as an evolving reference.
Pseudo-random number generation has many applications in computing. The use of random number in parallel is becoming necessary and a recent solution is the use of so-called block cipher algorithms. In this post, I review the mechanism being the Threefry random number generator that is based on the the Threefish block cipher.
The ability to call Fortran code from Python has been and still is essential to several scientific packages, including the widely used SciPy library. One widely used tool to make the Fortran code accessible to Python is the f2py library that is bundled with NumPy . Here, I review how one can write portable and easy to compile Fortran routines.
The simulation of nanomotors is an integral part of my research. For this blog article, I have chosen to present nano-dimer , a simulation software written by my friend Peter Colberg. nano-dimer generates on the fly OpenCL code to perform Molecular Dynamics with a hybrid algorithm called MPCD to study chemically powered dimer nanomotors.
The Hilbert curve fills space with good properties for sorting N-dimensional data in a linear fashion. I present an IPython notebook with the complete code to follow the algorithm of C. Hamilton CS-2006-07 .
Setting up properly a gpg key requires a lot of reading. This article documents fully how I set up my gpg keys while never exposing the master secret key on a online computer.
In an attempt to apply the idea of Reproducible Research to my work, I devised a Makefile-based project to reproduce data published by the NIST on a simple Lennard-Jones system.
H5MD is a HDF5 based file format for molecular data. In short, it is binary, portable and self-describing. In this blog post I present the use of H5MD in the Molecular Dynamics program lammps . I have written a dump style for lammps, i.e. a piece of code to write …
Writing data in a parallel environment is not an easy task. Using available Python packages, I present a solution to write a HDF5 in parallel with the use of the Parallel Method Invocation .
EuroSciPy published for the first time conference proceedings, following the model of the US-based SciPy conference for the organization. Nelle Varoquaux and me had the pleasure of being the editors.
Hi, I launch a blog! This post is for test purpose but also for a general presentation. I will share here comments on computing mostly related to: physics, Linux, molecular simulations, Python, etc.