Live data from Hacker News

Imperial College London have released their Covid-19 epidemic simulation

github.com

81–82 of 82 posts

Re: Imperial College London have released their Covid-19 epidemic simulation

#81
post #74
post #71

Earlier quoted context omitted.

Epidemiologists are professional software engineers, in the sense that they are paid full time to write code and summarise the output in papers. They might not be "professional" in the sense of the quality of their work but let's not kid ourselves that these people spend half their days in the lab or taking swabs from children in Beijing. Other types of researchers do that - these guys just run sims.

Academia is geared towards paper publishing, so why would they bother with code quality? Even if in the long run it would benefit them, its at best a nice to have. Most academia doesn't share code or data anyway. It's like saying that programmers are professional English writers, so comments and such should be written in perfect English. IMHO the only valid criticism is if the the simulation modelling is sound and im…

Papers should not be accepted unless they are accompanied by high quality source code.

> IMHO the only valid criticism is if the the simulation modelling is sound and implemented accurately.

I think the best way to tell if it is sound and implemented accurately is to first require that it is implemented as simply (to understand) as it can be. Even then, it is hard to reason about code. But without simplicity, the problem is ten times worse.

I'm tempted to go further and say that source code is formalized thought. I've written a number of simulators in the past, sometimes purely to help me understand a system more fully. There's something beautiful about describing the behaviour of a system in elegant code. When there's nothing left to remove I get much greater confidence that I've fully groked the system. I'd say this is the area where the "computers are like a bicycle for the mind" quote is the most true.

Re: Imperial College London have released their Covid-19 epidemic simulation

#82

This code is great fun. Start here to explore the horror: https://github.com/mrc-ide/covid-sim/blob/master/src/CovidSi... I like the way InitModel() crashes (I think) if a global pointer called bmh (short for bitmap header) isn't first initialized by calling InitBMHead() from Bitmap.cpp. I guess it's obvious to academics with giant brains that InitModel() depends on a bitmap existing. But it gets worse - the pointer…

I was part of the GitHub team that helped get the code ready for public release. We fixed a few bugs, reduced memory consumption, made it portable across operating systems, etc., but the code you see is largely what was written by Neil Ferguson and his team. Given your concerns, I would like to mention two things: 1) the code was originally a single source file, so I'm not surprised the module boundaries are imperfec…

Isn’t this a great example, why epidemiologists shouldn’t write in C++? Aren’t there some Python modules for this kind of stuff?

Edit: Oh this is very old code, that could be an excuse.

Post reply on HN