Warning: This package contains Makefiles for Solaris, but they do not work because of an
/RPC/types.h dependency in
tipsy.h. At the moment, the following versions work: Windows, RedHat and SuSE without MPI support. The SuSE version with Scali MPI support works as well (file
Read some technical details here.
First, download the latest version of the program, model and required libraries from the Hubble homepage.
NOTE: The actual distribution already includes binaries for Linux on the Intel x86 platform. If you want the program to run on another platform, you will need to recompile it (see the How to compile section below).
Next, unzip and untar the downloaded packages into the directory of your choosing using:
gunzip package.tar.gz tar -xf package.tar
If you have superuser access on the machine you want to install the program, move the required libraries to
If not, you have different possibilities: you can move the libraries into the same directory of hubble, or you can set up an environment library before you launch the program with:
tcsh: setenv LD_LIBRARY_PATH [path to the libraries] bash: export LD_LIBRARY_PATH=[path to the libraries]
NOTE: you can use
ldd hub to check which libraries are missing.
Once the libraries are in the right place, you can experience the vastness of the Universe by running "Hubble in a bottle!":
./hub [path to the model]
'h' on the window to view the help text and see how to navigate.
Have fun, and remember that the project is open source and new features are welcome! :-)
"Hubble in a bottle!" uses the OpenGL graphics library. You need to download and install Mesa GL (an Open Source implementation of the OpenGL) on your machine. You will need superuser access for this. For example:
su ../configure ../make ../make install
You are almost done. "Hubble in a bottle!" uses the GLUT library, too. Download from the Mesa GL site the package
oss-opengl-glu-20000925-1.i386.rpm and install it. For example with:
rpm -Uhv oss-opengl-glu-20000925-1.i386.rpm
Now move the
/hubble_prj directory into the
/Mesa-5.x directory. In
/Mesa-5.x/hubble_prj, you can compile with
make because the Makefile uses
../ to reference the Mesa files. As far as I know, it should be possible to compile on Linux for Mac and Windows as well. We would be glad to receive your compiled binary on any platform, so that we can offer them on the homepage as well.
In order for "Hubble in a bottle!" to run on clusters you will need (1) a supercomputer or some Linux computers wired together and (2) an MPI library on each of the clustered computers.
Unfortunately, there are different implementations of MPI. The
following instructions apply for the commercial
library only. We would be glad to receive your Makefiles for
MPICH, both Open Source implementations of MPI, so that we can make
them available to the entire community. Thank you!
First, try to compile the code "as-is" using the directions specified in the How to compile section. If that is successful, you are a few steps away from getting Hubble up and running on your cluster.
startracker.hand enable the compiler switch
"cp Makefile.MPI Makefile", so that you get a new
Makefileand make sure it points to the directory where your MPI libraries are installed.
make. Another binary, called
hubpwill be created.
Decide where you want to output the display. This must be a machine the internal nodes can see.
For example, you might decide to display the output on andromeda.bla.ch:0.0, while the nodes are called lcx01y01, lcx01y02, lcx01y03, ...
"xhost lcx01y01", so that the node lcx01y01 has the right to use the monitor of andromeda.bla.ch
The command to run "Hubble in a bottle!" is then:
mpimon ./hubp ../data/virgo2.00500 andromeda.bla.ch:0.0 -- lcx01y01 1 lcx01y02 1 lcx01y03 1
In this example, three nodes are used.
The main node distributes particles to the other nodes. The nodes do the projection, while the main node merges the results.
mpimon ensures that if one process crashes on one processor, all other processes are killed. Never run "Hubble in a bottle!" without
NOTE: The "Hubble in a bottle!" project is partner of "GPU, a giga@lobal processing unit". If you're interested, go and check it out. GPU is an experimental framework for distributed computing based on the peer-to-peer network Gnutella.
"Hubble in a bottle" is developed using the Concurrent Version System (CVS) which is sort of common practice in the Open Source world. Hubble file releases often are behind from one or two weeks in respect to the actual development level. This probably because packaging files requires some work (about 3/4 hour) and because we try to release code in strategic moments, e.g. when the project's activity is low. The development code fixes sometimes bugs and adds new features and therefore new bugs :-). Sometimes, the last development version is broken for some reason. If you still want to be up to date, simply type the following two commands into your console:
cvs -d:pserver:email@example.com:/cvsroot/hubble login cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/hubble co hubble_prj
Et voila, you should now have a new hubble_prj directory with updated source code.
We are happy to provide support to "Hubble in a bottle!" users. Please submit a support request through the project's sourceforge interface. In addition, please inform us of any problems with the documentation.
As this project is free we need your help and motivation to improve it and fix the bugs, so please feel free to send reports, or just tell how you like/hate the software! Sourceforge.net provides a good way of submitting/reading feedbacks, bug reports, features requests or patches. Thanks!