Need help with copperhead?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

204 Stars 26 Forks Apache License 2.0 348 Commits 17 Opened issues


Data Parallel Python

Services available


Need anything else?

Contributors list

# 181,489
315 commits
# 60,502
6 commits

Copperhead: Data Parallel Python

Copperhead is a data parallel language embedded in Python, along with a compiler which creates highly efficient parallel code. Currently our compiler and runtime targets CUDA-enabled GPUs, as well as multi-core CPUs using either Threading Building Blocks (TBB) or OpenMP.

Copperhead is hosted at


Necessary for all backends

  • boost::python. Tested with version 1.48. Important note: it is imperative that your boost::python library was built with the same compiler as your Python interpreter. For Linux machines using package managers, this is usually the case if you install boost::python through your system package manager.

  • Codepy. We require version 2012.1.2 or greater. This will be installed automatically if you do not have it.

  • Thrust. We require version 1.6 or better. Thrust is a header only library, so it is easy to install.


  1. CUDA. If you would like to use the CUDA backend, you must have CUDA installed, version 4.1 or better.

  2. OpenMP. Support for OpenMP is built-in to g++, so no installation is necessary.

  3. Threading Building Blocks (TBB). We have tested with TBB version 4.0.

Copperhead runs on OS X and Linux. It currently does not run on Windows, although we plan on supporting Windows in the future.


  • g++ version 4.5 or greater. If you want to build support for the CUDA backend, you must use a version of g++ supported by nvcc. As of version 4.1, nvcc does not support versions of g++ newer than 4.5.

  • Scons.


To install Copperhead, simply run the included
python install

The setup script will examine your system and try to build support for all possible backends. Depending on your configuration, you may need to include some additional configuration information. The setup script will alert you if configuration does not succeed, and will create a file named
with comments explaining what configuration information you can provide.

You can verify your installation by running tests:

python test


The primary contributors to Copperhead are Bryan Catanzaro and Michael Garland.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.