[petsc-dev] concurrencykit

Barry Smith bsmith at mcs.anl.gov
Tue Feb 19 16:07:02 CST 2013


On Feb 19, 2013, at 4:01 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Tue, Feb 19, 2013 at 4:51 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
> On Feb 19, 2013, at 3:43 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> 
> > I've started adding support for using this library for memory primitives and some basic lock-free data structures.
> >
> > http://concurrencykit.org/
> >
> > Of course when threads are not used, we need some replacement. All the memory barriers and assignments become trivial and locks disappear so the no-threading variant is trivial to implement. My question now is whether to call ck_* functions directly from PETSc source or to always wrap them in Petsc* namespaced macros and inline functions.
> >
> > I would normally always use a Petsc namespace for this kind of thing, but this library has convenient man pages and is, I think, the best thing out there for implementing these primitives. Wrapping everything in a Petsc* namespace would thus make it less direct to get down to the actual semantics (or a man page). Thus I have half a mind to treat it like MPI and just provide non-threaded implementations in petscck.h when !defined(PETSC_HAVE_CONCURRENCYKIT). Is this a bad idea?
> 
>   I can live with it. You, of course, are providing a --download-ck before writing a single line of code that uses ck.
> 
> I agree. Useless wrappers (TaoVec, TrilinosCommStuff) just clutter code and do not expand functionality.

   But maybe next week MPI won't be used any more and we have to be prepared for that day.

   Barry

> 
> What is your opinion of the longevity of support? Will we end up supporting this library?
> 
>    Matt
>  
> 
>    Barry
> 
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list