Saturday, October 13, 2007

Causal Dynamical Triangulations

Rajesh Kommu and Professor Steve Carlip are working on interesting ways to model quantum gravity using computational methods. Rajesh has been kind enough to help show me where to get started:

Dynamically Triangulating Lorentzian Quantum Gravity

A non-perturbative Lorentzian path integral for gravity

Non-perturbative 3d Lorentzian Quantum Gravity

Spectral Dimension of the Universe

As things often do, it turns into code, which Rajesh has again provided.

Of course, Visual Studio 2008 Beta 2 has some ... issues with the STL.

So, in the interest of getting working code I'll try a virtual instance of Ubuntu which I should be able to upgrade later when 7.10 comes out later this month).

VMWare server requires IIS7, so here's the instructions for installing IIS7 on Vista.

Except that I couldn't connect to my own VMWare server, and apparently VMWare has issues on Vista ... sigh.

Okay, it seems to be a driver signing issue.

Meh ... Virtual PC 2007 will probably suffice for my purposes. I'll keep IIS7.0 anyways for when I install Visual Studio 2008 Release Candidate and want to develop against IIS.

... Except that Virtual PC 2007 apparently doesn't know how to handle Ubuntu. Just hangs at the nice pretty install screen, wasting CPU cycles.

Back to VMWare server. Looks like I can disable driver signing permanently using an admin console:

bcdedit.exe /set nointegritychecks ON
bcdedit -set loadoptions \DISABLE_INTEGRITY_CHECKS

Let's try this again.

Hmmm, that *still* didn't disable driver signing. So, bootup using F8, disable driver signing.

Now install VMWare Server 1.04. This time, I'll pick a slimmer linux distribution, like Xubuntu.

I have to admit, nice, slick, easy install. Not as fast as OpenBSD's bare-bones, efficient text setup, but it's pretty, and more importantly, it works (unlike the heavier Ubuntu desktop I just tried).

Now install VMTools. Oh, it's an rpm. Fortunately, there are ways to install using an RPM file.

Hmmm. Should I be surprised that this didn't work? Okay, back to installing a tarball.

That worked, even though it also overwrote pre-existing stuff from the RPM.

Actually, no it didn't. It just stopped VMWare from nagging that VMTools isn't installed. I'll just deal with the mouse capture for now, because this really all is besides the point. (Note to self: more empathy for people just trying to get their work done using computers.)

Some things never change. Xubuntu has 84 updates to patch!

Well, the whole point of this was to compile this under Linux (where Rajesh wrote it) instead of tailchasing Visual Studio 2008/C++ STL issues. Almost there! Now to find a decent IDE.

I've heard good things about Eclipse, but I don't really want to unpack Java, install Tomcat, Web Tools, etc. etc. when I don't plan to do any web development. I just want the C/C++ portion.

Ah, CDT looks like what I want. Is the magic incantation really:

# sudo apt-get install eclipse-cdt
# sudo apt-get install eclipse

Wow, looks like it is! Now to see if Rajesh' CDT code compiles ....

Okay, right now Eclipse is a tad confusing. And again, learning Eclipse isn't the point.

Let's go back to that old standby, vi.

Sure helps to have a c++ compiler installed

# sudo apt-get install g++

Well, okay, looks like I'm missing some other files. Make doesn't know how to make cdtworks. A structural issue.

So, when something fails, try something else ...

Made some more progress on the Windows VC++ 9 version. Turns out, even though the project files were stored in my C:\Projects file, Visual Studio had other ideas, and expected everything to be stored in the Visual Studio default file path. I'll just leave that one, since the default file path ends up getting stored on our SAN, whereas I've had the most lovely fun with hard drives and Bitlocker (which is again, besides the point).

Almost complies, although VC++ wants all header file declarations in stdfx.h. Just missing one file ... again!

On the other hand, now I can read code in two OSes. Sure is interesting dereferencing all those pointers!

Quantizing spacetime is fun, though!


pqnelson said...

Have you tried using Cygwin? It allows you to use *nix tools in windows, so you could use the GNU C++ Compiler...

Adam Getchell said...

Yes, I have tried Cygwin, it did not work too well, as work with SAGE has shown.

I've found working with virtual machines and full Linux/OpenBSD installs to be much easier than sorting out the various messes with compilers and directories in Cygwin.