Skip to content
Snippets Groups Projects
README.md 1.09 KiB
Newer Older
Camille Coti's avatar
Camille Coti committed
## TODO

* Document the functions

## Later evolutions

Camille Coti's avatar
Camille Coti committed
* On-the-fly optimization

## Usage

Dependency: on Debian `libginac-dev ginac-tools`

Compilation:
```
mpic++ -O3 -g -Wall -o tensormatrix_mpi tensormatrix_mpi.cpp -lginac  -Wno-unused-variable
```

Running:
```
mpiexec -n 17 ./tensormatrix_mpi
```
Camille Coti's avatar
Camille Coti committed

Get some help:
```
mpiexec -n 1 ./tensormatrix_mpi h
```

The previous line will display:
```
Arguments:
(mpiexec .... ) ./tensormatrix_mpi [N] [Function name] [Nb of foremen] : run the program
(mpiexec .... ) ./tensormatrix_mpi h                                   : display help
Function names being: 
 - M/m: Master-Worker -> multiply_1level_mw
 - A/a: Master-Worker, addition on a slave -> multiply_1level_mw_addslave
 - H/h: Hierarchical master-worker -> multiply_1level_mw_hierarch
 - S/s: Sequential -> multiply_seq
 - 1  : Sequential, 1 level of decomposition -> multiply_1level
 - 2  : Sequential, 2 levels of decomposition -> multiply_2levels
```

For instance, to run the hierarchical master-worker on 17 processes with 4 foremen, on a tensor of size 8:

```
mpiexec -n 17 ./tensormatrix_mpi 8 h 4
```