Peter Boothe and I are building a software tool for visualizing the Gnutella peer-to-peer network topology. Our dataset is huge, and comes from Dan Stutzbach’s PhD work. (Click here for publications by Dan).
Anyway, Peter and I designed a physics model to automatically layout the graph. Each node is a magnet, which repels other nodes. Each edge is a spring, which attracts conjoined nodes. I tip my hat to Peter for implementing an efficient quad-tree and N-body engine. Unfortunately, the Gnutella data contains 150,000+ nodes per snapshot. (That’s a really big graph!) Even on a quad-core PC with 4 GB RAM, our physics engine runs like a snail.
So, today I parallelized the code. . . but the improvement was only about 15%.
The bad news is that our software needs a lot of work before we can effectively visualize Gnutella data. However, the good news is that our software works really well for small graphs (like Internet AS data). We might not be accomplishing science, but at least we have a cool toy!