[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Finalize install questions

Robert LeBlanc wrote:

Hey guys,

We have purchased a 65 node cluster of Opterons last December and I have been following the development of the port off and on since then. I think that the port may be mature enough to put on our production environment just because I think that our biology applications could benefit from a 64 bit compile. I am still sketchy on some things that I hope you guys can help me out with.

I'd suggest you bring up the cluster as i386 with network booting so you can trivially switch kernels so that you can have a stable cluster for running critical jobs immediately. Then, you can look into building a 64 bit kernel (with 32 bit emulation). Once you have a biarch kernel that appears to work reliably on one node, you can push it out to the whole cluster and have the capability for 64 bit software on the cluster even though the whole operating system is still reliably and running in i386.

First, a program needs to be specifically written for 64 bits?

You get benefits in two key areas and one disadvantage from using AMD64 in userspace: * More registers, which is transparent to the application since this is handled by the compiler, * More virtual address space, which would be transparent to the application but usually is not, * Larger pointers (associated with the address space) which are no longer the same size as an int.

As mentioned by others, the way programs normally have trouble is due to the fact that the author made the assumption that an int and a pointer are both 32 bits long. There are other type-size related problems, but that's often the most difficult one. In general, if the code already runs on other 64 bit architectures, you're probably ok. If it's only ever been i386 ... worry.

One problem is that existing programs are normally written to assume a 1GB address space and, if they need more, they include a built in paging mechanism to store their additional data. As long as the paging mechanism is being used, there is no advantage to recompiling the program for 64 bit operation ... you may as well keep it as 32 bit and use a 64 bit kernel with it.

Or by just recompiling using 64-bit libs usually good enough?

It's certainly worth trying, and then running a regression suite against it ...

Fifth, would I be able to mirror the port for the cluster nodes?

There is no difference (in terms of management) between i386 and amd64 ... that I'm aware of.


Reply to: