Swarm-NG
1.1
|
The guidelines on using Swarm-NG.
Currently we do not have any binary packages available. You can obtain Swarm source codes in two different ways:
$ git clone git@github.com:AstroGPU/swarm.gitif you have not set-up SSH or never used SSH with Github, use:
$ git clone https://github.com/AstroGPU/swarm.git
$ git clone -b stable git@github.com:AstroGPU/swarm.gitOr
$ git clone -b stable https://github.com/AstroGPU/swarm.gitIf you get an error message when trying to clone the stable branch, then you probably have an older version of git. In that case, you might try the following commands
$ git clone git@github.com:AstroGPU/swarm.git $ git checkout --track -b stable origin/stable
Minimum Hardware requirements:
Software Requirements:
usually installed. Please make sure the file db_cxx.h
exists on your system. Use locate
to find it. It is usually found in /usr/include/db_cxx.h
.
Optional software dependencies:
Python development requirements:
Installing required packages on your system, here we take Ubuntu as an example:
sudo apt-get install cmake libboost-dev libboost-regex-dev libboost-program-options-dev libdb++-dev
sudo apt-get install doxygen cmake-gui
sudo apt-get install libboost-python-dev python-dev python-bsddb3 python-psutil
Compilation of Swarm comprises two steps - Configuration and Compilation. Swarm uses CMAKE system for both. The following instructions are for a quick build of Swarm. Build System describes more advanced configuration and compilation settings.
The configuration process allows you to adjust the default compiling options. There are three options to do CMAKE configuration: Command-line, Console, and GUI. Here we discuss Console approach. Command-line and GUI options are described in Build System.
ccmake <source directory>ccmake command is a console user interface for CMAKE; <source directory> is the top directory of swarm.
Boost_INCLUDE_DIR
: Path where Boost headers are installed. [/usr/include/]CUDA_TOOLKIT_ROOT_DIR
: Path to the CUDA toolkit [/usr/local/cuda, /opt/cuda]CUDA requires the code to be optimized for special compute capability. In Swarm there are three variables for configuring Compute Capability:
GENERATE_GT200
: devices with compute capability 1.3, incluse Gefore 200 series and Tesla 1000 series.GENERATE_FERMI
: devices with compute capability 2.0, Swarm is mostly tested and is optimized to work best for this category of devices, this includes Gefore 400 series and Tesla 2000 series.GENERATE_KEPLER:
devices with compute capability 3.0, although not tested thoroughly, these devices are backward compatible and Swarm can take advantage of more resources being available. includes Gefore 600 series.For a complete list of compute capabilities, refer to https://developer.nvidia.com/cuda-gpus
It is possible to compile Swarm for a compute capability that is not included in this list. Just open the file cmake/variables.cmake and look for GENERATE_FERMI
. Copy and paste the section and change the names and compute capabilities.
After fixing all the paths and other options, make sure to run cmake .
in the build directory to rebuild the make files.
makeIt may take a while to compile CUDA files.
make doc
Once compilation is done, you can test the installation using:
make test
See How to test swarm for more extensive testing and customizing the tests.
If you want to test the computational capacity of your system, do:
make benchmark
WARNING:* This requires performing long integrations on both the CPU and GPU, so it may take a long time. Please be patient.
Please report your results at http://www.astro.ufl.edu/~eford/code/swarm/submit_benchmark.html
If for any reasons the compilation does not work or the tests do not pass, please use the following command to generate a feedback package.
From the build directory (for simple installs it is the same as swarm directory) run
cd <build directory> sh <source direcotry>/scripts/make_feedback.sh
The script will create a file named feedback.tgz. Email us this file with the description of your system so we can work towards fixing the problem.
If you examine the code and you find a bug, please don't hesitate to report it at http://github.com/AstroGPU/swarm/issues . Feel free to fork the repository and send pull requests if you fix any bugs.