Skip to content

Agobin/chapel

 
 

Repository files navigation

image

The Chapel Language

Chapel is an emerging programming language designed for productive parallel computing at scale. Chapel's design and implementation have been undertaken with portability in mind, permitting Chapel to run on multicore desktops and laptops, commodity clusters, and the cloud, in addition to the high-end supercomputers for which it was designed. Chapel's design and development are being led by Cray Inc. in collaboration with academia, computing centers, and industry. See chapel.cray.com for more information.

This is the 1.12.0 release of the Chapel compiler, intended to give potential users a look at what we're doing and the opportunity to provide us with feedback. See the LICENSE file for the release's licensing terms.

Quick Start Instructions

The following instructions are designed to get you up and running with Chapel with a minimum of fuss. Note that building and using Chapel in this mode disables enhanced runtime options and optional language capabilities in the interest of a simple and clean build.

  1. See prereqs.rst for more information about packages you might need to have installed for Chapel to work. Download a Chapel source release from download.html if you haven't already.
  2. Make sure that your shell is in the directory containing this README.rst file. For example:

    cd ~/chapel-1.12.0
  3. Set up your environment to use Chapel in "Quick Start" mode.

    You must be in the top-level Chapel directory for the command scripts below to work properly. Note that there is no requirement to use these scripts long-term, they are merely designed to get new users up and running quickly. See chplenv.rst for a complete description of Chapel's environment variables and their options.

    If you use a shell other than the ones listed below and are able to create an equivalent util/quickstart/setchplenv.* script for it, please consider contributing a copy of it back to the project for inclusion in the next release.

If you use: then type:
a bash-compatible shell (bash/zsh) source util/quickstart/setchplenv.bash
a csh-compatible shell (csh/tcsh) source util/quickstart/setchplenv.csh
the fish shell (fish) . util/quickstart/setchplenv.fish
the Bourne shell (sh) . util/quickstart/setchplenv.sh
  1. Build the compiler and runtime libraries using:

    gmake

    or if your default make is GNU make compatible (as on Mac OS X or Cygwin), use:

    make

    Parallel build execution (e.g. gmake -j) is supported.

  2. csh/tcsh users only: Update your shell's path cache using:

    rehash

  3. Optionally, check that your Chapel installation is working correctly:

    gmake check

    or:

    make check

  4. Compile an example program using:

    chpl -o hello examples/hello.chpl

  5. Execute the resulting executable:

    ./hello

  6. Experiment with Chapel in Quick Start mode to your heart's content.

    Once you are comfortable with Chapel and interested in using a full-featured version in the preferred configuration:

    1. Open up a new shell to avoid inheriting the previous environment settings.
    2. Repeat steps 1-7 above, but in Step 2, use util/setchplenv.* instead of util/quickstart/setchplenv.*
    Making chapel installation global
    After a successful installation. You will realise that when you start a new session, you will have to setup the environment from the beginning to continuing working with chapel. To make the changes global do the following:
    1. Setting the CHPL_HOME variable.

      Open the file ~/.bashrc and set your CHPL_HOME variable to your chapel top directory. To do this type in the terminal: sudo gedit ~/.bashrc //Then at the end of the file type export CHPL_HOME=$chapel_top_level_directory This will set the CHPL_HOME variable everytime a new terminal opens

    2. Making chpl global. Go to $CHPL_HOME/bin/linux64/ and copy chpl. Paste chpl in /usr/bin/ -Note to do this you must have root access privilege. Type sudo nautilus /usr/bin/ -This opens /usr/bin/ and allows you to paste.

    With that done, your chapel installation is global and you don't have to reinstall to start a new session

    This will set up your environment to use Chapel in the preferred configuration. Making this configuration will involve building one or more third-party packages which will increase the overall build time. If you run into any portability issues, please let us know at chapel_info@cray.com.

  7. If you plan to do performance studies of Chapel programs, be sure to (a) use the full-featured version and (b) read the PERFORMANCE file in this directory to avoid common pitfalls.
  8. All of the instructions above describe how to run Chapel programs in a single-locale / shared-memory mode. To run on multiple compute nodes, please refer to multilocale.rst.

What's next?

For more detailed information about: refer to:

changes since the last release

CHANGES

implementation status

STATUS

performance status

PERFORMANCE

Chapel's file and directory structure

README.files

prerequisites for using this release

prereqs.rst

setting Chapel environment variables

chplenv.rst

building the compiler

building.rst

using the compiler

compiling.rst

executing Chapel programs

executing.rst

debugging Chapel programs

debugging.rst

reporting bugs

bugs.rst

Chapel modes for emacs and vim

highlight/README.md

example Chapel programs

examples/README

a quick reference for Chapel syntax

doc/quickReference.pdf

the Chapel language specification

doc/chapelLanguageSpec.pdf

other Chapel Documentation

chapel.cray.com/docs

third-party software that we use

third-party/README
To use Chapel on a specific platform: refer to:

a Cray system

cray.rst

Cygwin over Windows

cygwin.rst

About

a Productive Parallel Programming Language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Chapel 56.5%
  • C 16.8%
  • C++ 16.5%
  • TeX 3.9%
  • Python 3.0%
  • Perl 1.1%
  • Other 2.2%