[Trilinos-Users] Epetra vs. Tpetra

Devine, Karen D kddevin at sandia.gov
Fri Oct 27 13:20:36 EDT 2017


Hi, Matthias.


Thank you for providing great benchmarks that exhibit the problem you are seeing.


Are you building Trilinos with in RELEASE mode or DEBUG mode?

(The cmake flag you want is
-D CMAKE_BUILD_TYPE:STRING="RELEASE"
)

When I build in DEBUG mode, I see the time disparities that you see.  But when I  build Trilinos in RELEASE mode as above, I get the following timings, with Tpetra being faster than Epetra:

% mpirun -np 4 testEpetra 128
Number of processes: 4
Dimension: 128
Elapsed time: 2.8983 seconds.
% mpirun -np 4 testTpetra 128
Number of processes: 4
Dimension: 128
Elapsed time: 0.911691 seconds.

In DEBUG mode, Tpetra does a lot of error checking to make sure inputs are consistent, etc.  This feature is great during development, but you'll want to use RELEASE mode for your experiments.

Karen



________________________________
From: Trilinos-Users <trilinos-users-bounces at trilinos.org> on behalf of Frey Matthias (PSI) <matthias.frey at psi.ch>
Sent: Tuesday, October 24, 2017 5:27 AM
To: trilinos-users at trilinos.org
Cc: Adelmann Andreas (PSI)
Subject: [EXTERNAL] [Trilinos-Users] Epetra vs. Tpetra

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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20171027/f5258772/attachment-0001.html>


More information about the Trilinos-Users mailing list