[Trilinos-Users] Tpetra and threads
Hoemmen, Mark
mhoemme at sandia.gov
Mon Apr 13 14:30:54 MDT 2015
On 4/13/15, 12:00 PM, "trilinos-users-request at software.sandia.gov"
<trilinos-users-request at software.sandia.gov> wrote:
>Message: 1
>Date: Mon, 13 Apr 2015 15:49:21 +0200
>From: Martin Vymazal <martin.vymazal at vki.ac.be>
>To: trilinos-users at software.sandia.gov
>Subject: [Trilinos-Users] Tpetra and threads
>Message-ID: <2697171.BCGQzWlqIO at tinlaptop>
>Content-Type: text/plain; charset="us-ascii"
>
>Hello,
>
> I have a toy FE problem, for which I use Tpetra map, and Tpetra CRS
>matrix to
>store and solve the linear system. Everything works fine when I run the
>code in
>serial, but when I try assembly with 2 threads (using std::thread from
>C++11),
>I get memory crashes.
>
>What I'm trying to do is this:
>1) Initialize system matrix (in serial)
>2) Run assembly with multiple threads (that I launched outside of
>Trilinos)
>3) When assembly is finished and threads join, solve the linear system
>(in
>serial again)
>
>I understand that this is not the best/most optimal way, but all I wanted
>to
>try is a simple test and it would really help me if I could ask
>Tpetra/Kokkos
>not to get in my way. From the output it seems that Kokkos starts
>automatically its own thread and it probably does not like the fact that
>later
>on, different number of threads accumulate in the system matrix.
>
>I get the following:
>
>Kokkos::HostSpace::decrement( 0x168c180 ) ERROR : memory not being
>tracked
>
>I searched for examples how to set the Tpetra map parameters in order to
>control the number of threads, but they all only show how (not) to use
>MPI,
>nothing said about multithreading ... Is what I'm trying to do possible?
>Can I
>tell Trilinos 'not to worry' about my threads?
>
>Thank you for your help,
>
> Martin Vymazal
Hi Martin,
Please see Tpetra Lesson 07 (in tpetra/core/example) for a demonstration
of thread-parallel sparse matrix construction and fill. The interface of
Tpetra::CrsMatrix does not promise thread safety; we have a lower-level
interface (which the example uses) that does.
mfh
More information about the Trilinos-Users
mailing list