Last week, I took a couple of hours to implement a simple toy force field in perl. A 100 lines of code (plus UCSF Chimera and POVRay) and a couple hours of CPU time resulted in the following animation:
Essentially, the system simulates 780 particles with identical masses which are connected by invisible springs with varying lengths and stiffness. Initially, the masses are placed at random positions. In order to get the system to settle, the force field includes a thermostat which cools the system down quite quickly.
Over the next few weeks, I’ll put up a series of posts which try to explain what I’m working on and why this animation and the code which produces it isn’t just qute, but also interesting and useful.
Archive for September, 2008
Ain’t it cool?
Friday, September 26th, 2008Innuendo of the day
Tuesday, September 9th, 2008Normally, I don’t publicise this kind of thing, but this one is too good to keep to myself:
“Hey baby, do you want to explore black holes with my large particle accelerator?”
This is of course in reference to the start of the LHC experiments at CERN. If you try this as a pickup line, let me know how it went…
UPDATE:
This seems fitting, too:
I love MPI
Thursday, September 4th, 2008Using MPI, I’ve just managed to get a speedup of about 6 for protein structure searches on 8 CPUs without even thinking about optimizations. If that scales across multiple nodes, the SALAMI server might soon become fast enough for interactive use…
MPI in general, and the Perl Parallel::MPI::Simple module are pretty neat APIs. However, despite its name, MPI::Simple still follows the standard MPI API quite closely and is thus not as “simple” as it could be. For many applications, a process manager would already be sufficient. Such a module would create and manage a pool of worker processes and distribute tasks in a round robin fashion.
Both apple and the Qt library offer something similar for thread pools, so why not do the same for MPI processes?
Surely, many others before me have tackled embassasingly parallel tasks before. However, CPAN seems to offer nothing like this. Is such a module simply too trivial so that nobody has bothered publishing their code? Looking at CPAN in general, this doesn’t seem to have stopped folks in the past…
I’ll probably try to cook something up tomorrow.










