[Trilinos-Users] Epetra vs. Tpetra

Frey Matthias (PSI) matthias.frey at psi.ch
Wed Oct 25 03:25:01 EDT 2017


> Without looking at the code too much i haven't found a preallocated
> graph for Tpetra.

> In my observations (they may be on the mailing list as well) Epetra is
> pretty good at just adding entries without a previously existing graph.

> Tpetra is just not optimized for that case.

When I initialize a graph first and use this for filling the matrix, i.e. using
replaceGlobalValues, I speed up the matrix part, however, this way the
time consuming part is only shifted to the graph.
I do not observe an overall time gain ...

________________________________________
Von: Julian Andrej [juan at tf.uni-kiel.de]
Gesendet: Mittwoch, 25. Oktober 2017 06:56
An: Frey Matthias (PSI)
Cc: trilinos-users at trilinos.org; Adelmann Andreas (PSI)
Betreff: Re: [Trilinos-Users] Epetra vs. Tpetra

Without looking at the code too much i haven't found a preallocated
graph for Tpetra.

In my observations (they may be on the mailing list as well) Epetra is
pretty good at just adding entries without a previously existing graph.

Tpetra is just not optimized for that case.

On 2017-10-24 13:27, Frey Matthias (PSI) wrote:
> Dear Trilinos-Users,
>
> I'm facing a performance issue that I do not understand and would
> appreciate your help.
>
> I implemented a Poisson solver for block-structured grids using
> Epetra. In order to use newer features I wanted to replace Epetra with
> Tpetra
> but the execution slowed down extremely.
>
> In order to reproduce this result I implemented a small test example
> where the time for the initialization of the Poisson matrix (3D
> problem) is measured.
> Btw, I initialize the matrix as I do it in the original code, but
> there I use another library that does the adaptive mesh refinement
> etc., hence, I iterate over boxes that specify the domain. Each core
> should get another box.
>
> When I run the example with 4 cores and 128 grid points in each
> direction, Epetra is 10 times faster than Tpetra. I do not understand
> what I'm doing wrong.
>
> EPETRA
> ==================
> $ mpirun -np 4 testEpetra 128
> Number of processes: 4
> Dimension: 128
> Elapsed time: 4.5793 seconds.
>
> TPETRA
> ==================
> $ mpirun -np 4 testTpetra 128
> Number of processes: 4
> Dimension: 128
> Elapsed time: 42.6839 seconds.
>
> Modules
> --------------
> gcc/5.4.0
> openmpi/1.10.4
> trilinos/12.10.1
>
> I attached a tar-file that contains both *.cpp files a readme.
> Furthermore, I provide everything to build the examples using CMake.
>
> Best regards,
>
> Matthias Frey
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at trilinos.org
> https://trilinos.org/mailman/listinfo/trilinos-users


More information about the Trilinos-Users mailing list