GithubHelp home page GithubHelp logo

alexwong / grappa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uwsampa/grappa

0.0 1.0 0.0 15.2 MB

Grappa: scaling irregular applications on commodity clusters

Home Page: grappa.io

License: BSD 3-Clause "New" or "Revised" License

CMake 1.46% C++ 61.71% Makefile 0.32% Ruby 2.35% C 33.16% Shell 0.62% R 0.10% Perl 0.02% HTML 0.02% Assembly 0.24%

grappa's Introduction

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.

Note: all the Grappa developers have graduated and gone on to other things, so the code is no longer maintained. Bit rot has begun to set in, and you are likely to run into problems running it; hopefully our documentation will help.

Dependences

You must have a 64-bit 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 [email protected]: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

Then download Grappa's third-party dependences: http://grappa.cs.washington.edu/files/grappa-third-party-downloads.tar.

Now build grappa and hello world.

cd grappa
./configure --third-party-tarfile=</full/path/to/grappa-third-party-downloads.tar>
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 may be able to run jobs like this:

srun --nodes=2 --ntasks-per-node=2 -- applications/demos/hello_world/hello_world.exe

If that doesn't work, use whatever commands are required to launch MPI jobs 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.

Virtual machine images

We have a couple other ways to try Grappa without installing it yourself!

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

grappa's People

Contributors

ahh avatar alexfrolov avatar baldas avatar bholt avatar bmyerz avatar luisceze avatar markoskin avatar nelsonje avatar simonkahan avatar theyorkwei avatar tkonolige avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.