Home > Legacy archive > Specific versions > GFARGO > Download

Important note 1

Whereas the installation of the standard version of FARGO is a breeze,
the installation of GFARGO (FARGO for GPU) is significantly more tricky.
You should make sure that you first know how to install and run the standard CPU version, as the directories structure and output format is essentially the same.
The installation of the standard CPU version is explained here.

Important note 2

Before you can install GFARGO, you must install the three packages provided by NVIDIA, namely the driver, the toolkit and the SDK (Software Development Kit), for CUDA versions prior to 5.0. For CUDA 5.0, you only need to install the driver and the toolkit (for this specific version of CUDA see the INSTALL file provided in the corresponding distribution of GFARGO). It is a good idea to adopt the default path for the installation of the SDK. You should check that they are properly installed by building and running the examples of the SDK (such as
nbody, or oceanFFT, etc.). If that works,
then the built of gfargo should be relatively easy, and should amount essentially to path or option tweaking in the makefile.

Once the above works

...that is to say once you have a fully functionnal CUDA install, so that you could build and run some examples of the SDK...

...Choose your distribution in the table below

gfargo.tar.gz First public release of the code
gfargo-fermi.tar.gz Fermi compatible release (double precision)
gfargo-cuda-5_0.tar.gz Release for CUDA 5.0 (double precision)

Note: the release for CUDA 5.0 is compatible with Fermi and Kepler architectures.

...and extract it (you may have to change gfargo into gfargo-fermi):

then go to the source directory:

and there issue a make command.

If you are under Mac OS X with a recent version of CUDA, it should work.
You are now ready for your first run.
If it does not work, unfortunately no support can be expected from this site, but here are a few indications of what to change in the makefile to get things work :

- The release for CUDA 5.0 has specific installation instructions which can
be found in the INSTALL file provided in the distribution
. This release is compatible with Fermi and Kepler architectures. It is known to run, in particular, on Teslas C2050 (under Ubuntu 12.04) and on a 650M (under
Mac OSX).

- Edit the line begining with OPT_= -O3.... (line number 9 of the makefile).
It contains an option -I followed by a path. This path of the SDK under Mac OS X. You may need to adapt it to your specific platform.

- Toward the end of the makefile, you can change the options
listed from line 212 to 216. In particular, you may need to remove
the -m32 option, or change -lcutil_i386 to
-lcutil or -lcutil_x86_64, etc. You may
also need to change the path of the SDK (CUDA_SDK_PATH_).

Note that there exists two building modes for GFARGO:

- the normal built (default)

- the windowed built, which is run from the command line as the other one,
but which opens an OpenGL window in which you can follow in real time
the evolution of the calculation.

The normal built is performed by:


whereas the windowed built is performed by:


An invocation to make without any option adopts the same value for WINDOW option as during the previous built, i.e. the WINDOW option is sticky.

Note that in the case of the windowed built, you will certainly have to tweak other lines in the makefile if you are not under Mac OS X.
In particular check the -L path in line 9 of the makefile, and check also the line that contains OPENGLOPT toward the end of the makefile.


- The directory corresponding to the path following the -I option (line 9 of the makefile) should contain the file cutil.h.

In some earlier versions of CUDA, you may need to remove the C directory from the path. Check also in that case the line that defines NVCC_FLAGS toward the end of the makefile.

- The directory $(CUDA_SDK_PATH)/C/lib (or $(CUDA_SDK_PATH)/lib) should contain a file such as libcutil.a or libcutil_i386.a, etc. The name of this file should correspond to the value of the CUTIL_LIB_ variable (i.e. -lcutil or -lcutil_i386).

- You can use the environment variable FARGO_ARCH that you define in your define .bashrc or .tcshrc. The use of this environment variable is described here. The makefile provided defines specific paths and options for the two following values of FARGO_ARCH: MacIntel and Cesium (the latter corresponds to the specific case of a GPU cluster at the developers’ institution).

- It is advised to first try to compile the default (non-windowed) version. This is easier since you do not need to worry about the OpenGL libraries.

Site Map | COAST COAST | Contact | RSS RSS 2.0