>> OK, I'll see about making that change.  But does this imply Metis runs
>> threaded by default and/or requires TLS to work correctly?
> 
> I'll poke around - it is possible it is using OpenMP parallelism now, but if
> so then I would expect to have a __thread or similar function defined
> whenever OpenMP works.  Perhaps there is a clash of compiler options or
> something...

Sure enough:

benkirk(18)$ grep pragma *.c
csr.c:      #pragma omp parallel private(i, j, ncand, rsum, tsum, cand)
csr.c:        #pragma omp for schedule(static)
csr.c:      #pragma omp parallel private(i, j, ncand, rsum, tsum, cand)
csr.c:        #pragma omp for schedule(static)
csr.c:  #pragma omp parallel if (n > 100)
csr.c:    #pragma omp single
csr.c:    #pragma omp for schedule(static)
csr.c:    #pragma omp parallel if (ptr[n] > OMPMINOPS)
csr.c:      #pragma omp for private(j,sum) schedule(static)
csr.c:    #pragma omp parallel if (ptr[n] > OMPMINOPS)
csr.c:    #pragma omp for private(j,sum) schedule(static)
csr.c:      #pragma omp parallel if (rowptr[nrows] > OMPMINOPS)
csr.c:        #pragma omp for private(j, maxtf) schedule(static)
...

Looks like Metis is using OpenMP solely in the compressed row stroage
handling now.  No equivalent directives in Parmetis.

-Ben




------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to