<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Hack Nerd Font Mono">Thanks! Can you also commit the
reproducer as a test?</font></p>
<p><font face="Hack Nerd Font Mono"></font><br>
</p>
<div class="moz-cite-prefix">On 5/23/20 4:04 PM, Joachim Protze via
Openmp-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:a2d50061-4c74-03cf-92e3-7edd380412c7@gmail.com">I think,
I found the issue and posted a fix at:
<br>
<br>
<a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D80480">https://reviews.llvm.org/D80480</a>
<br>
<br>
- Joachim
<br>
<br>
<br>
Am 21.05.20 um 18:12 schrieb Raúl Peñacoba Veigas via Openmp-dev:
<br>
<blockquote type="cite">Hello again,
<br>
<br>
I've managed to remove MPI from the equation. It seems a race
condition in the runtime.
<br>
<br>
int main(int argc, char **argv)
<br>
{
<br>
int TIMESTEPS = 10;
<br>
int BLOCKS = 100;
<br>
<br>
int nranks = 4;
<br>
<br>
int DATA;
<br>
<br>
#pragma omp parallel
<br>
#pragma omp single
<br>
{
<br>
for (int t = 0; t < TIMESTEPS; ++t) {
<br>
for (int r = 0; r < nranks; ++r) {
<br>
for (int b = 0; b < BLOCKS;
++b) {
<br>
#pragma omp task
depend(in: DATA)
<br>
{ }
<br>
}
<br>
}
<br>
<br>
#pragma omp task depend(inout: DATA)
<br>
{}
<br>
}
<br>
#pragma omp taskwait
<br>
}
<br>
}
<br>
<br>
To run it execute:
<br>
<br>
clang -fopenmp t1.c -o t1
<br>
<br>
for i in {1..5000}; do echo $i; OMP_NUM_THREADS=3 ./t1; done
<br>
<br>
Regards,
<br>
<br>
Raúl
<br>
<br>
El 21/5/20 a las 9:57, Raúl Peñacoba Veigas escribió:
<br>
<blockquote type="cite">Hello everyone,
<br>
<br>
Writing an OpenMP + MPI code I've triggered a debug assert in
__kmp_task_start:
<br>
<br>
KMP_DEBUG_ASSERT(taskdata->td_flags.tasktype ==
TASK_EXPLICIT);
<br>
<br>
I attach a simpler code that does not do anything special with
additional info.
<br>
<br>
#include <mpi.h>
<br>
<br>
#include <assert.h>
<br>
#include <stdio.h>
<br>
#include <stdlib.h>
<br>
#include <string.h>
<br>
#include <unistd.h>
<br>
<br>
int main(int argc, char **argv)
<br>
{
<br>
int TIMESTEPS = 10;
<br>
int BLOCKS = 100;
<br>
<br>
MPI_Init(&argc, &argv);
<br>
<br>
int rank, nranks;
<br>
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
<br>
MPI_Comm_size(MPI_COMM_WORLD, &nranks);
<br>
<br>
int DATA;
<br>
<br>
#pragma omp parallel
<br>
#pragma omp single
<br>
{
<br>
for (int t = 0; t < TIMESTEPS; ++t) {
<br>
for (int r = 0; r < nranks; ++r) {
<br>
for (int b = 0; b < BLOCKS;
++b) {
<br>
#pragma omp task
depend(in: DATA)
<br>
{ }
<br>
}
<br>
}
<br>
<br>
#pragma omp task depend(inout: DATA)
<br>
{}
<br>
}
<br>
#pragma omp taskwait
<br>
}
<br>
<br>
MPI_Finalize();
<br>
<br>
}
<br>
<br>
llvm_project debug build, commitaafdeeade8d
<br>
MPICH Version: 3.3a2
<br>
MPICH Release date: Sun Nov 13 09:12:11 MST 2016
<br>
<br>
$ MPICH_CC=clang mpicc -fopenmp t1.c -o t1
<br>
$ for i in {1..100}; do mpiexec.hydra -n 4 ./t1; done
<br>
<br>
<br>
</blockquote>
<br>
<a class="moz-txt-link-freetext" href="http://bsc.es/disclaimer">http://bsc.es/disclaimer</a>
<br>
_______________________________________________
<br>
Openmp-dev mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Openmp-dev@lists.llvm.org">Openmp-dev@lists.llvm.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a>
<br>
</blockquote>
<br>
_______________________________________________
<br>
Openmp-dev mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Openmp-dev@lists.llvm.org">Openmp-dev@lists.llvm.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a>
<br>
</blockquote>
</body>
</html>