search

Entries in "tools"

February 19, 2007

Random number generators

Starting to use some tools I haven't used before for original work, I'm wondering about details that didn't matter when I was only using Matlab for course exercises. Specifically, I'm trying to figure out whether to trust its random number generator, considering that issues with the C++ random number generator have caused me trouble before, and in the near future I'm likely to find myself using monte carlo methods to estimate the properties of systems.

Continue reading "Random number generators"

February 16, 2007

Learning how to use some new tools

Most of what I have accomplished in the past two weeks amounts to learning how to use the BN/PBN toolbox, and re-learning how to use Matlab. In a sense it's a bit frustrating—all this time not actually progressing in research—but it's also clearly necessary to do this sometimes.

The experiment replication I had almost finished with yesterday is now up and running, and replicates the published results very neatly. It turns out that my error wasn't in the code itself, but a simple typo in the input matrix.... I've also discovered that there is an existing function in the toolbox to do essentially the same thing as my code, which makes me feel a tad foolish, but really the point of the exercise was to learn the tools, so it wasn't entirely wasted effort. I was going to try and do the same thing in C++, but I feel like now that I'm over the hump of working out how to use it, the BN/PBN toolbox saves so much wheel-reinvention that it's just foolish not to use it, so unless I can find a C/C++ library to do the same sort of thing I'll stick to what I know.

This means I'm ready to start doing some 'real' work next week, and I'll sketch out one idea for this work behind the cut.

Continue reading "Learning how to use some new tools"

February 15, 2007

Matlab code working

It took me longer than I had intended, partly because I was re-learning to use Matlab and partly because I've written something more general than I had originally set out to, but my attempt at replicating a GRN model from literature is up and running. I've written some code that makes it easy for me to convert a list of "Node A activates Node B and Node C inhibits it" type interactions into a fully-specified GRN, and I'm using that to try and replicate Li et al's yeast cell cycle network.

So far, the network I have isn't behaving the same as the one reported in their paper, but I haven't done anywhere near enough debugging yet. I'll be spending tomorrow doing just that, because the chances are the lack of correspondence between my results and theirs stems from a logic error in my code.

Oh, and it's been really nice interacting with Matlab again. I had forgotten quite how much I liked it as a development environment.

February 06, 2007

Re-learning Matlab

As well as defining a project for me to do, I have to pick a platform to use for the actual experiments. I'm naturally drawn towards write stuff mostly from scratch in C++, using a few header files people have supplied, because that's how I'm most used to working, but it may not be the right approach here. When I was working with CTRNNs it was natural, because Randy had supplied me with headers that implemented a CTRNN very efficiently, and provided a very flexible basic structure for the evolutionary algorithm. Now that I'm likely to be working with a discrete type of network model, the closest such resource I know of is Ilya's BN/PBN Matlab toolbox, so I'm giving Matlab a try as a platform.

Continue reading "Re-learning Matlab"

January 23, 2007

Keeping references organised

Because I'm starting on a somewhat new research track, I'm finding myself spending the majority of my work time reading. This brings me back to a question that I think about every time I'm in this sort of position, and never seem to have a satisfactory answer to: what is the best way to keep references organised?

The way I see it, there are two challenges involved in this: keeping track of what one has read, and keeping track of where one read it. The first part is a general problem with learning new things, and while I don't think there's any magical solution, I also don't think it's all that hard provided one pays attention and thinks through how each paper relates to what one already knows. It's really the second I'm interested in, because obviously it's impossible to cite work appropriately if, as I often find, one only remembers I read a paper about this once without being able to pin down which paper it was.

Behind the cut I'll write a little about how I try to manage this, but I don't believe my own approach is optimal, so I'm very interested to hear from my 3 readers about how you do it.

Continue reading "Keeping references organised"

July 17, 2006

How to cool a cluster?

I have a small study with a large number of computers in it (including several up on the wall). Between them, all these machines give off an awful lot of heat. Fortunately I live somewhere with mild summers, so this is rarely a problem, but on the hottest few days it can be a worry. The biggest problem is those machines up on the wall, because if there's not enough of a breeze through the building they can end up in a pocket of air 20° or more hotter than the temperature where I sit.

So far I've been dealing with this by having a fan on the windowsill that points up, forcing the air to mix more, but it's annoyingly noisy and today that fan seems to have died. I've generally found fans designed for cooling people to be quite unreliable when left on continuously, but I can't think of anything better, because the way these machines are mounted is not well suited to installing case fans. Does anyone have any ideas for a better way of cooling those machines than just buying another household fan each time the existing one gives up the ghost?

June 26, 2006

Home cluster finally working

A couple of months ago I decided that one of the approaches I should take to the open-ended CPU requirements of my experiments was to build my own cluster.

Continue reading "Home cluster finally working"

February 01, 2006

CPU appeal

I have reached a point where I would benefit from having access to more CPU time than I do right now. So I have two questions:

  1. If I can get hold of a little money, what would be the cheapest way to get hold of some hardware to run my own cluster? The ability to customise heavily would probably be an advantage, because my experiments are so heavily CPU-bound that I can afford to skimp on things like hard drive speed.
  2. Assuming that I can't get hold of my own hardware, does anyone have some spare computers they could loan me some time on? I just need a C++ compiler, a remote shell and a practical way to transfer files, but bear in mind that if I can get any money for this I'll be buying my own hardware, so if I'm doing this I wouldn't have any funding to pay for it. I think the only resources that would be suitable are spare computers that are really sitting idle for a lot of the day.

January 20, 2006

A queueing system for parallel computing clusters

I had an idea for a pretty simple utility I could write that would save a little time when it comes to setting experiments off on the cluster. It would be less than a day's work to put together, but it's also something so obvious that I would have thought I should be able to find an existing program or script to do the same job. So before giving up any time to write a potentially redundant tool, I thought I'd describe it here and ask two questions: do you know of anything that does the job I describe, and if not, would such a thing be useful to you?

Continue reading "A queueing system for parallel computing clusters"

January 19, 2006

g++ and CRLFs

Recently, the version of gcc/g++ on the lab cluster was upgraded to 3.4.4 (I think from 3.3). I had to make some small changes to my code to make it compile on this new version, but it was nothing terribly complicated, and a pretty straightforward migration overall. However, I've been getting a strange warning since the upgrade:

In file ...
RDB_classes/VectorMatrix.h:574:39: warning: no newline at end of file

[full text after the cut, but basically it's the same thing 4 times]

This is even though I've added several blank lines at the end of the file, and tried messing around with the encoding to make sure there are both CRs and LFs.

Does this look familiar to anyone? And if so, what should I do about it?

I know it's only a warning and doesn't really impact anything, but I try to deal with all warnings so that I don't get into the habit of ignoring any of g++'s output.

Continue reading "g++ and CRLFs"

January 18, 2006

Comment settings

I've just noticed that this blog as it is currently set up requires commenters to give their email address, and then goes and publishes it in the "Posted by" line at the end of the comment. I don't like that, because it invites spam to commenters' addresses. I've figured out how to get Moveable Type to not require any identifying information, but that's not quite what I want either: I like making people give a name because even if they use a made-up handle it makes conversations easier to follow, and I still prefer to get peoples' email addresses so a reply can be made in private if necessary, but I don't want to get people spammed.

So, does anyone know if it's possible to get MT to require a name but not an email address, and/or to collect the commenter's email address without publishing it? Either of those things would be better than what I have it doing right now, but I can't find the appropriate options.

May 19, 2005

Ways to organise references

I'm actively looking for better tools to use to organise my reading. I'm trying to solve three problems:

  1. Too often I remember reading something somewhere but can't find the reference to go back to that paper.
  2. Compiling the bibliography for a paper is laborious, and it seems to me that there ought to be a way of automatic all that categorising of information into 'author', 'title', 'date', etc.
  3. I'm really bad at keeping track of papers I haven't yet read but am interested to sooner or later.
Here's what I've tried so far:

Continue reading "Ways to organise references"

February 28, 2005

Graphics in C++

I'm trying to put together a simple graphical visualiser for the simulator I'm writing. All it needs to display are a rectangular arena, a couple of circles for the agent and the object it's tracking, and some lines to represent the agent's field of vision. It seems to me that this ought to be pretty easy, but I know nothing about graphics programming at all, so I'm looking for a library that I can use to simplify the process.

The problem is that I'm working on a Mac, and so far the only things I've found are very low-level, and entail a lot more work than makes sense when my requirements are so basic. I did find one library that looked ideal and had the added bonus of claiming to be cross-platform, but it turns out to require X Windows, and I couldn't get it to work with the X terminal that's built in to Mac OS.

Can anyone point me to a suitably high-level library for Mac OS or (even better) that will give me cross-platform graphics?