Continuum Dynamics Evaluation and Test Suite
C++ C Cuda Makefile Go D Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AMR
MISH
OpenCL
heat-tx
legion/lgncg
umma
LICENSE
README.md

README.md

CODY: Continuum Dynamics Evaluation and Test Suite

Description

CODY is a development framework and suite of small applications, or "mini-apps", characteristic of continuum dynamics applications that will be used for research in new programming models, software environments, and the evaluation of new computer architectures.

On what platforms does it run?

CODY is initially a suite of applications written in C and C++ with extensions -- including CUDA and OpenCL -- that enable the use of emerging computer architectures. Our goals are operating system, computer architecture, and programming language agnostic, however, so we expect evolution over time.

For whom is it designed?

CODY is designed for computer science researchers to assess and explore new directions in computer architecture and programming models.

Why was it developed?

CODY was developed at Los Alamos National Laboratory to provide a set of small, manageable applications that are representative of some scientific workloads at LANL, in a form that can be readily shared with research partners at other organizations.

Installation

If necessary, set the GOROOT environment variable to the directory containing src/Make.inc and src/Make.pkg and the PAPI_INCDIR environment variable to the directory containing papi.h. Also, ensure that the directory containing libpapi.so is listed in your LD_LIBRARY_PATH.

Afterwards, you can follow the usual Go package installation procedure:

    git clone http://github.com/losalamos/go-papi $GOROOT/src/pkg/github.com/losalamos/go-papi
    cd $GOROOT/src/pkg/github.com/losalamos/go-papi
    gomake
    gotest
    gomake install

It is then safe to do a gomake clean.

At the time of this writing, goinstall is unable to install packages such as go-papi that require cgo. If this is ever fixed, the preceding steps can be simplified into

    goinstall github.com/losalamos/go-papi

Documentation

Pre-built documentation for the core part of the go-papi API is available online at http://gopkgdoc.appspot.com/pkg/github.com/losalamos/go-papi, courtesy of GoPkgDoc. Unfortunately, the online documentation omits descriptions of all constants, variables, etc. that are generated during the build process, specifically the list of PAPI events (papi-event.go), event modifiers (papi-emod.go), and error values (papi-errno.go).

Once you install go-papi, you can view the complete go-papi API with godoc, for example by running

    godoc -http=:6060

to start a local Web server then viewing the documentation at http://localhost:6060/pkg/github.com/losalamos/go-papi/ in your favorite browser.

For code examples, take a look at the *_test.go files in the go-papi source distribution. papi_hl_test.go utilizes PAPI's high-level API; papi_ll_test.go utilizes PAPI's low-level API; and papi_test.go utilizes a few miscellaneous functions.

License

BSD-ish with a "modifications must be indicated" clause. See http://github.com/losalamos/go-papi/blob/master/LICENSE for the full text.

LA-CC-10-123

Authors

Allen McPherson al_web_mail@lanl.gov
David Daniel ddd@lanl.gov