Skip to content
This repository has been archived by the owner on Jun 13, 2024. It is now read-only.

Dev aliendoc #111

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ conda env create -f alien-env.yml
conda activate alien-env
```

Then the CMAKE OPTIONS has to be activated in the Alien configuration step
Turn ON the ALIEN_GENERATE_DOCUMENTATION Option in the Alien configuration step.

```shell script
cmake -S `pwd`/alien \
Expand Down
12 changes: 11 additions & 1 deletion docs/sphinx/sycl/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,17 @@ How to install SYCL
Installing SYCL
===============

Alien's build system is based on CMake.
Alien SYCL backend has been developped on top of the hipSYCL implementation of the SYCL API 2020 specification.

hipSYCL depend on the LLVM infrastructure, Clang compiler to compile device codes.
Our implementation still indevelopement has been tested with:

- LLVM 10.0
- Clang with GCC 10.2
- CUDA 10.1

AMD devices with ROCM and Intel device with OneAPI and DPC++ have not been already tested.


Getting the sources
-------------------
Expand Down
43 changes: 29 additions & 14 deletions docs/sphinx/tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@ The Space concept enable to modelize the mathematical algebraic real space :math

To build this concept several tools are provided:

- the `IndexeManager` package provides helper tools to manage `Integer IndexSets`
- the `IndexManager` package provides helper tools to manage `Integer IndexSets`

- the `Distribution` package provides helper tools to manage the partition of `IndexSets` between MPI processes

The following code illustrates how to build with an `IndexManager` object, families of unique indexes and different `IndexSet` objects.

.. code-block:: bash

int Nx = 10;
Expand Down Expand Up @@ -110,24 +112,24 @@ To build this concept several tools are provided:
// Combine all index set and create Linear system index system
index_manager.prepare();


Once some `IndexSet` are built and enregistred in the `IndexManager`, matrix and vector `Distribution` objects
are built to manage the distribution of indexes between MPI processes.

The following code illustrates how to build theses objects.

.. code-block:: bash

auto global_size = index_manager.globalSize();
auto local_size = index_manager.localSize();

trace_mng->info() << "GLOBAL SIZE : " << global_size;
trace_mng->info() << "LOCAL SIZE : " << local_size;

/*
* DEFINITION of
* - Alien Space,
* - matrix and vector distributions
* to manage the distribution of indexes between all MPI processes
*/

auto space = Alien::Space(global_size, "MySpace");

auto mdist =
Alien::MatrixDistribution(global_size, global_size, local_size, parallel_mng);
auto vdist = Alien::VectorDistribution(global_size, local_size, parallel_mng);
auto mdist = Alien::MatrixDistribution(global_size, global_size,
local_size, parallel_mng);
auto vdist = Alien::VectorDistribution(global_size,
local_size, parallel_mng);

trace_mng->info() << "MATRIX DISTRIBUTION INFO";
trace_mng->info() << "GLOBAL ROW SIZE : " << mdist.globalRowSize();
Expand All @@ -140,6 +142,19 @@ To build this concept several tools are provided:
trace_mng->info() << "LOCAL SIZE : " << vdist.localSize();


Then `Space` objects can be built as follows:

.. code-block:: bash

/*
* DEFINITION of
* - Alien Space,
* - matrix and vector distributions
* to manage the distribution of indexes between all MPI processes
*/

auto space = Alien::Space(global_size, "MySpace");

Matrix
------

Expand Down Expand Up @@ -295,4 +310,4 @@ Solving the linear system consists in finding the solution X such that :math:`A*
}

solver->end();