Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Grappa: scaling irregular applications on commodity clusters
FORTRAN C C++ Ruby Makefile CMake Other
Failed to load latest commit information.
applications Merge pull request #221 from uwsampa/nelson+switchtoBSD
bin add settings.sh that can be sourced to pick up Grappa vars from insta…
doc Update debugging.md
scratch
system Merge pull request #221 from uwsampa/nelson+switchtoBSD
third-party Improve third-party tarfile support for systems with no internet access.
util rerelease under BSD license
.gitignore more cmake ignores
.travis.yml
AUTHORS add authors file
BUILD.md clarify third-party-tarfile option in build instructions
CMakeLists.txt Merge pull request #219 from uwsampa/fix-docker-image
COPYING rerelease under BSD license
NOTICE rerelease under BSD license
README.md rerelease under BSD license
configure Improve third-party tarfile support for systems with no internet access.

README.md

Grappa

Build Status

Grappa is a runtime system for scaling irregular applications on commodity clusters. It's a PGAS library and runtime system that allows you to write global-view C++11 code that runs on distributed-memory computers.

Grappa is a research project and is still young! Please expect things to break. Please do not expect amazing performance yet. Please ask for help if you run into problems. We're excited for you to use the software and to help make Grappa a great tool for the irregular applications community! For more information about the project, visit the project website: grappa.io.

Dependences

You must have a Linux system with the following installed to build Grappa:

  • Build system
    • Ruby >= 1.9.3
    • CMake >= 2.8.12
  • Compiler
    • GCC >= 4.7.2 (we depend on C++11 features only present in 4.7.2 and newer)
    • Or: Clang >= 3.4
  • External:
    • MPI (must support MPI-3)
      • OpenMPI >= 1.7.4
      • MVAPICH2 >= 1.9
      • MPICH >= 3.1
      • Intel MPI >= 5.0.2.044

The configure script deals with some other dependences automatically. You may want to override the default behavior for your specific system. See BUILD.md for more details.

In addition, our test and run scripts all assume your machine uses the Slurm job manager. You may still run jobs with using any other MPI launcher, but you'll have to set necessary environment variables yourself. See doc/running.md for more details.

Quick Start

Ensure you have the dependences described above. Then checkout the code:

git clone git@github.com:uwsampa/grappa.git

If you don't have github keys set up and get an authentication error, then try the http URL

git clone http://github.com/uwsampa/grappa.git

Now build grappa and hello world.

cd grappa
./configure
cd build/Make+Release
make demo-hello_world

Now you should have a binary which you can launch as an MPI job. If you have Slurm installed on your system, you can use our convenient job-launch script:

bin/grappa_srun --nnode=2 --ppn=2 -- applications/demos/hello_world/hello_world.exe

Otherwise, just source bin/settings.sh and run as a MPI job on your system.

For more detailed instructions on building Grappa, see BUILD.md.

To run all our tests (a lengthy process) on a system using the Slurm job manager, do make check-all-pass. More information on testing is in doc/testing.md.

Learning More

You can learn more about Grappa's design and use in four ways:

  1. Follow the tutorial in the doc/tutorial directory. Read about running jobs, debugging, tracing, and other low-level functionality in the doc/ directory in the repo.
  2. Take a look at the autogenerated API docs, hosted at grappa.io/doxygen. Or you can build them yourself as explained in BUILD.md.
  3. Read our papers, available from the Grappa website.

Getting Help

The best way to ask questions is to submit an issue on GitHub: by keeping questions there we can make sure the answers are easy for everyone to find. View previously-discussed issues here: https://github.com/uwsampa/grappa/issues?labels=question. If your question isn't already answered, please submit an issue there!

Grappa developers communicate through the grappa-dev mailing list hosted at cs.washington.edu.

Contributing

We welcome contributions, both in the core software and (especially!) in applications. Get in touch with us if you're thinking of contributing something!

Analytics

Something went wrong with that request. Please try again.