-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6ac03e5
commit 121985d
Showing
1 changed file
with
44 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
layout: page | ||
permalink: /pygion/index.html | ||
title: Pygion | ||
--- | ||
|
||
## Overview | ||
|
||
Pygion is task-based framework for Python based on the [Legion]({{ "/" | relative_url }}) programming system. As with Legion, Pygion provides sequential semantics. Tasks may execute asynchronously and in parallel, but only when they preserve the behavior of sequential execution. Pygion analyzes tasks (via Legion) to determine what tasks are safe to execute in parallel and when data movement or synchronization is required for safe execution. | ||
|
||
For an overview of Pygion, the [original PAW-ATM paper]({{ "/pdfs/pygion2019.pdf" | relative_url }}). | ||
|
||
## Getting Started | ||
|
||
Pygion lives in the main Legion repo under | ||
[`bindings/python`](https://github.com/StanfordLegion/legion/tree/stable/bindings/python). To | ||
get started with Pygion, build with Make in that directory: | ||
|
||
``` | ||
git clone https://github.com/StanfordLegion/legion.git | ||
cd legion/bindings/python | ||
make LG_RT_DIR=$PWD/../../runtime -j4 | ||
``` | ||
|
||
Customize the `-j` flag parameter to control the number of threads used to build, depending on your machine. | ||
|
||
## Building with CMake | ||
|
||
If you prefer to use CMake, then build Legion at the top level `-DLegion_BUILD_BINDINGS=ON -DLegion_USE_Python=ON`: | ||
|
||
``` | ||
git clone https://github.com/StanfordLegion/legion.git | ||
cd legion | ||
mkdir build | ||
cd build | ||
cmake .. -DLegion_BUILD_BINDINGS=ON -DLegion_USE_Python=ON -DCMAKE_INSTALL_PREFIX=$PWD/../install | ||
make install -j4 | ||
``` | ||
|
||
## Examples | ||
|
||
A wide variety of examples, with detailed comments, can be found in the [`examples`](https://github.com/StanfordLegion/legion/tree/stable/bindings/python/examples) directory. Most of the important features of Pygion are demonstrated in these examples. | ||
|
||
A dedicated tutorial series for Pygion is coming soon. |