Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial structure for the documentation #15

Merged
merged 20 commits into from
Sep 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: mkdocs
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ add_subdirectory("libNeonSet")
add_subdirectory("libNeonDomain")
add_subdirectory("libNeonSkeleton")
add_subdirectory("libNeonSolver")
add_subdirectory("tutorials")
add_subdirectory("apps")


Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Neon logo](doc/logo/neonDarkLogo.jpg "Neon")
![Neon logo](docs/logo/neonDarkLogo.jpg "Neon")

Neon is a research framework for programming multi-device systems maintained by [Autodesk Research](https://www.autodesk.com/research/overview). Neon's goal is to automatically transform user sequential code into, for example, a scalable multi-GPU execution.

Expand Down Expand Up @@ -31,21 +31,22 @@ Depending on the system, this will generate either a `.sln` project on Windows o

A description of the system and its capabilities can be found in our paper [link](https://escholarship.org/uc/item/9fz7k633).

We are working on providing a set of tutorials and a programming guide to help you get up to speed with Neon.
We use mkdocs to organize Neon documentation which is available online via GitHub Pages ([https://autodesk.github.io/Neon/](https://autodesk.github.io/Neon/)).
The documentation includes a tutorial, application and benchmark sessions.

## Communicate With Us

We are working to define the best way to communicate with us. Please stay tuned.

## Contributions From the Community

The Neon team welcome and greatly appreciate contributions from the community. The document [CONTRIBUTING.md](./doc/CONTRIBUTING.md) goes more into the details on the process we follow.
The Neon team welcome and greatly appreciate contributions from the community. The document [CONTRIBUTING.md](docs/CONTRIBUTING.md) goes more into the details on the process we follow.

As a community, we have a responsibility to create a respectful and inclusive environment, so we kindly ask any member and contributor to respect and follow [Neon's Code of Conduct](./doc/CODE_OF_CONDUCT.md)
As a community, we have a responsibility to create a respectful and inclusive environment, so we kindly ask any member and contributor to respect and follow [Neon's Code of Conduct](docs/CODE_OF_CONDUCT.md)

## Authors and Maintainers

Please check out the [CONTRIBUTORS.md](./doc/CONTRIBUTORS.md), to see the full list of contributors to the project.
Please check out the [CONTRIBUTORS.md](docs/CONTRIBUTORS.md), to see the full list of contributors to the project.

The current maintainers of project Neon are:
- Massimiliano Meneghin (Autodesk Research)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added docs/img/favicon.ico
Binary file not shown.
17 changes: 17 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
![Neon logo](logo/neonDarkLogo.jpg "Neon")

Neon is a research framework for programming multi-device systems maintained by [Autodesk Research](https://www.autodesk.com/research/overview).
Neon's goal is to automatically transform user sequential code into, for example, a scalable multi-GPU execution.

To reach its goal, Neon takes a domain-specific approach based on the parallel skeleton philosophy (a.k.a parallel patterns).
Neon provides a set of domain-specific and programmable patterns that users compose through a sequential programming model to author their applications.
Then, thanks to the knowledge of the domain, the patterns and their composition, Neon automatically optimizes the sequential code into an execution optimized for multi-device systems.

Currently, Neon targets grid-based computations on multi-core CPUs or single node multi-GPU systems.

It is important to keep in mind that Neon is a research project in continuous evolution.
So, while we have successfully tested the system with different applications (Finite Difference, Finite Element, Lattice Boltzmann Method), Neon interfaces may change between versions to introduce new capabilities.

!!! warning

The documentation is still a work in progress and some sections are still missing or incomplete.
18 changes: 18 additions & 0 deletions docs/javascripts/mathjax.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
window.MathJax = {
tex: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};

document$.subscribe(() => {


MathJax.typesetPromise()
})
Empty file.
Empty file.
28 changes: 28 additions & 0 deletions docs/learn/introduction/01-neon-structure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

# Neon Structure

Neon is composed of a set of abstraction levels, each one represented by a C++ library.
The following picture shows the main high-level mechanisms provided by each level.

![](img/01-layers-all.png){ style="width:500"}

The Domain and Skeleton are the most important abstraction for Neon users.
As expected by its name, the Domain level introduces domain-specific mechanisms, as for now we target voxel based computations and the mechanisms are Cartesian grids, fields and stencils. The Skeleton level provides users with a sequential programming model and in charge of transforming and optimizing user applications to be deployed into a multi-device system.

!!! Note

To learn how to write an application with Neon, new users can mainly focus on the Domain and Skeleton documentation as it implicitelly covers all the nedded information from the other Neon abtraction levels.

The following is the structure of the `Introduction and tutorial` section:


<center>

| Abstraction | Description | Library | Link |
|----------|:-------------:|:------:|------:|
| System | Device management | libNeonSys | [info](02-the-system-level.md)|
| Set | Multi device management | libNeonSet |[info](03-the-set-level.md)|
| Domain | Domain mechanism - voxel grids | libNeonDomain |[info](04-the-domain-level.md)|
| Skeleton | Sequential programming model | libNeonSkeleton |[info](05-the-skeleton-level.md)|

</center>
3 changes: 3 additions & 0 deletions docs/learn/introduction/02-the-system-level.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
![](img/02-layers-system.png){align=right style="width:200px"}
# The System Level

3 changes: 3 additions & 0 deletions docs/learn/introduction/03-the-set-level.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
![](img/03-layers-set.png){ align=right style="width:200px"}
# The Set Level

Loading