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
Showing
148 changed files
with
1,187 additions
and
1,123 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
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
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
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 |
---|---|---|
@@ -1,14 +1,76 @@ | ||
This project is a port of the Liszt DSL, which was originally embedded in Scala, to the Lua/Terra system, with the following (planned) extensions: | ||
- implicit method support (both sparse matrix encoding and an interface to external solver libraries) | ||
- particles | ||
|
||
The following extensions have already been implemented: | ||
- mesh data is stored on a generic OP2-like graph structure that allows us to represent mesh topology, fields and sparse matrices with the same data structure. | ||
# Liszt-Ebb | ||
|
||
Ebb is a (domain-specific) language for writing physical simulations. It is part of the Liszt project at Stanford. | ||
|
||
## Quick Setup | ||
|
||
Once you've got your local copy of this repository, you can simply type | ||
|
||
``` | ||
make | ||
``` | ||
|
||
and Terra (dependency) will be downloaded for you. When this process is done, you can type | ||
|
||
``` | ||
./runtests | ||
``` | ||
|
||
to make sure everything is working. You should be good to go. | ||
|
||
|
||
### Troubleshooting Quick Setup | ||
|
||
If you don't have wget or unzip installed, you may run into trouble with the automatic download of Terra. Please install those tools or try installing Terra yourself. | ||
|
||
(You may also run into trouble if you don't have libcurses and libz installed. If this is the case, please report back to the developers---we currently don't believe this will ever happen.) | ||
|
||
|
||
|
||
## Longer Setup Instructions | ||
|
||
If you are working on multiple DSLs using Terra and want to avoid a redundant Terra install, you can configure the variable `TERRA_DIR` at the top of the [`Makefile`](Makefile) to locate your Terra install directory instead. If you have a binary download, simply point `TERRA_DIR` variable at the root directory. If you are building Terra from source, then point `TERRA_DIR` at the `release` subdirectory. By default, `TERRA_DIR=../terra/release`. | ||
|
||
|
||
### Legion Setup | ||
|
||
If you need to run Ebb on Legion, then please contact the developers directly. The feature is currently under development. | ||
|
||
|
||
|
||
## More Details | ||
|
||
See the [full manual](docs/manual.md) for more information. | ||
|
||
## Examples | ||
|
||
See the [examples](examples) directory for example Ebb programs. This is a good way to get a few ideas about how to proceed once you've got some code running. | ||
|
||
## Tests | ||
|
||
As mentioned before, you can run the testing suite by executing | ||
``` | ||
./run_tests | ||
``` | ||
|
||
|
||
|
||
## Running Ebb on the GPU | ||
|
||
To run an Ebb program on the GPU instead of CPU, simply add the command line flag. | ||
|
||
``` | ||
ebb -g my_program.t | ||
``` | ||
|
||
Support for simultaneous CPU/GPU use is currently being worked on. Please contact the developers if the feature is particularly important for you. | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
The original project is hosted at http://liszt.stanford.edu. | ||
|
||
Directory structure: | ||
compiler/ - liszt compiler implementation | ||
examples/ - example liszt programs, and terra applications that use the liszt runtime | ||
runtime/ - C++ liszt runtime interface used by the compiler | ||
spec/ - contains example programs written in the Scala version of Liszt, paired with their Liszt-in-Terra equivalents. |
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
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
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
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
Oops, something went wrong.