Skip to content

Scientific Computing, Part 1

April 5, 2011

Today: “Version control for scientific computing,” or, “how not to waste half your research time remembering what you changed in your code.”

As I’ve started to code perhaps-dissertation-worthy projects, I’ve been thinking about how to avoid wasting extensive time in “code-confusion.” If you’ve programmed any not-one-time-and-small project, you’re familiar with this — “is this chart from the new code? I mean the new-new code, not the old new-code…shoot…”.

It’s been a while since I considered the “software engineering process” more seriously than opening Vim and banging out code. As I move from one-off projects (i.e. HW and class projects) to longer-term scientific computing (i.e. potential research topics), I know that won’t work any more. I need careful version, ideally with some sort of scientific-computing bent, if such a thing exists.

A few Google searches netted some very useful articles, conversations, and blog posts. I don’t have time to do the conversations justice now, but my ridiculously incomplete summary is: (1) USE VERSIONING for your scientific computing. Think about including documentation and notes and thoughts with your code. (2) git looks really nice for a combo of “get running fast, doesn’t interrupt workflow too much,” (3) I still need to figure out where to host… sourceforge, google code, and github are the three main options I’m vaguely thinking about.

Quickly throwing up articles, in order of my favorites:

  • “Where’s the Real Bottleneck in Scientific Computing?” from the American Scientist, and Software Carpentry
    — This is tied with the next for my favorite discovery. The article is well worth reading, and a quick search turned up the course.
  • “Google Code/Sourceforge/GitHub/SciForge as a Science Repository” blog and discussion
    Blog post about using google code/etc as project management: docs and data as well as code. This lead me to a very helpful discussion at Friend Feed; both have helpful links. Ideas in action at this post.
  • “Version Control in Scientific Computing”
    — Nice “introductory” blog post with descriptions, discussion of CVS vs Git. Convinced me to try Git first.
  • A voice for CVS-style
    Blog post about CVS-style version control. Only read a little; broadly applicable observations in the intro.

“Where’s the Real Bottleneck in Scientific Computing?” from the American Scientist, and Software Carpentry

This is tied with the next for my favorite discovery. The article is well worth reading, and a quick search turned up the course.

Advertisements
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: