A while ago I tried compiling MIView as a 64-bit binary to run on Windows XP x64 or Vista 64-bit. My thinking was that a 64-bit version would run faster because it has double the bandwidth of 32-bit (between the processor and memory). This is not entirely true that my program should run twice as fast, but in theory a 64-bit program is able to load 2 32-bit integers into the registers at a time instead of one. It is also able to load an entire 8-byte double precision number into a register. When processing enormous arrays of integers, as MIView does, being able to double load the integers into the CPU registers is an advantage. How much this may speed things up, if at all, remains to be seen. A benchmark will be necessary to determine the true advantage of 64-bit for MIView, but my guess is it won't hurt.
Another small advantage to a 64-bit OS is the ability to address more than 4GB of memory. While no one will ever probably need to load a 4GB file into MIView, there is always that possibility and it would be ideal if MIView could handle it. With the growth of imaging technology, a multi-gigabyte image file is probably not too far off in the future. 256 slice CT scanners and clinical 7T MRI scanners, each collecting in 4D, will probably help make these files enormous.
When I last tried compiling a 64-bit MIView, it compiled successfully, but wouldn't run on Windows x64. It always crashed due to a runtime library error, even though I had the correct VC++2005 residtributables installed. Even compiling the binary inside Windows x64 didn't help. I'm hoping with my switch to VC++2008 that this bug is fixed and that the new 64-bit binary that I've compiled will run... as soon as I get Windows XP x64 running in a virtual machine.
Update: I did get Windows XP x64 running inside of a Sun VirtualBox VM, now I just need to build a release of MIView and test it out. I found that the 32-bit version runs ok in the VM. It's not as fast, but thats expected. Hopefully the OpenGL hardware acceleration enabled in the VM is helping.
I've found that one of the big reasons VirtualBox is free to download is that it's in beta... it's very beta. In fact file sharing between guest and host doesn't work for Windows guests in the current version. Not ideal, but it can be worked around. I've also successfully built a 64-bit release version of MIView, now I need to test it in the VM.
Update 2: I was successful at compiling the 64-bit release version of MIView, but ran into the exact same problem as before where Windows reports missing DLLs. Not a good sign. I'll make it open ended... Has anyone successfully compiled a 64-bit release binary in VC++ 2005 or VC++2008 and run it on Windows x64? Perhaps x64 isn't ready for prime time yet, and Vista 64-bit is the way to go? Who knows right now, but maybe I'll give another shot at 64-bit after this semester.
Read 0 Comments... >>