Too Busy For Words - the PaulWay Blog

Mon 4th Jun, 2007

Killing another Windows machine

We have a Windows XP machine at work which has somehow borked its network configuration. It can see its network hardware, and as far as it can tell it's all working perfectly, and the lights are on on the connector socket, but no actual packets get through anywhere. And, strangely, I'm still not happy. You see, we have two users in the lab who use a program called MrBayes, a tool to look at a list of DNA sequences and try to determine what was descended from what. For ages, they've been using the DOS version on this machine, transporting files over to it via USB stick and tying it up for hours. It's a dual-core Intel Pentium 4 machine and they're using only half its potential. And the fact that I have a perfectly good dual Opteron as a server and have run parallel programs using the LAM MPI libraries across all four processors named above seems only to aggravate the sense of waste.

Only recently, however, did it occur to me to ask "so what forms is MrBayes available in?".

My research showed that it's available in source form for UNIX, and comes with a nice pre-build Makefile. Better still, and in deference to the many other programs (such as Muscle, Clustal-X, IQPNNI and so forth) that seem to bolt on parallelism as an afterthought - usually as the result of the work of another programmer entirely - this comes with MPI support built-in. The only minor pity is that the Makefile doesn't have a target to support it, so you have to make it using the slightly different command line they suggest on their FAQ. In fact, you seem to be better editing the Makefile and changing the 'MPI =? no' option, which does use mpicc despite the FAQ warning you not to. And why not separate build options to build MPI and single binaries - the former needs quite a different environment to run. Who knows what these crazy programmers are up to?

So now I've got a multiprocessor MPI-capable version, but when I run it under LAM MPI it berks out with:

MPI_Recv: message truncated (rank 1, comm 3)
Rank (2, MPI_COMM_WORLD): Call stack within LAM:
Rank (2, MPI_COMM_WORLD):  - MPI_Recv()
Rank (2, MPI_COMM_WORLD):  - MPI_Bcast()
Rank (2, MPI_COMM_WORLD):  - MPI_Bcast()
Rank (2, MPI_COMM_WORLD):  - main()
MPI_Recv: message truncated (rank 2, comm 3)
Rank (4, MPI_COMM_WORLD): Call stack within LAM:
Rank (4, MPI_COMM_WORLD):  - MPI_Recv()
Rank (4, MPI_COMM_WORLD):  - MPI_Bcast()
Rank (4, MPI_COMM_WORLD):  - MPI_Bcast()
So, still some work to be done. But at least the dual-core Pentium is now running Fedora all the time, so I can actually use it.

Last updated: | path: tech | permanent link to this entry


All posts licensed under the CC-BY-NC license. Author Paul Wayper.


Main index / tbfw/ - © 2004-2016 Paul Wayper
Valid HTML5 Valid CSS!