Hi

On Sat, Mar 11, 2017 at 5:29 PM, Biddiscombe, John A. <[email protected]>
wrote:

> Ashkay
>
>
>
> Sorry for not replying previously – away on travel.
>
>
>
> > So how can I start?
>
>
>
> Well, for your benefit – and for the others who have shown some interest
> in the project …
>
>
>
> What’s the purpose of the gsoc project? We work on HPX and come across
> problems we need to solve. For example, trying to convert some TBB software
> to use HPX instead, and find that there are some concurrent classes we
> don’t have drop in replacements for, so we make a note that when we have
> some time, we should look into it again. Unfortunately, the time to work on
> some of these projects never materializes, but there are recurring themes
> that come up again and again and the need for certain things like a
> concurrent vector or map become more pressing. When time for gsoc comes
> around, we remember these projects and think they’d be perfect for a
> student to spend a few months on and help out in a genuinely useful way.
>
>
>
I'm fairly new to concurrency implementations but I've started with some
examples. I've just started reading about concurrency models in C++. I've
also started reading the hpx code and the issues you have pointed to. The
HPX documentation is really helpful.


> Ideally, we want lockfree, super fast, easy to use containers and if
> necessary algorithms to go with them. It turns our writing concurrent
> classes like these isn’t a trivial job and making lockfree containers is a
> tough challenge even for experienced developers who’ve been working on
> thread safe code for years. We’ve started work on concurrent structures in
> the concurrent branch and in the verbs parcelport I made a map that allows
> multiple readers or a single writer using a spinlock for protection (links
> below). It’s good enough when you are mostly reading and occasionally
> writing to it. Another similar problem is an enumerable_thread_specific
> class that exists in TBB, but a simple implementation in HPX I made gave
> bad performance due to what I assume was false sharing due to cache problem
> (gist link below). I didn’t have time (yet) to investigate this further,
> but it’d be great if a student did).
>
>
>

I can try and investigate as a starting point as this could be a great
learning experience for me.
Sad that intel TBB isn't open source anymore.

Ideally someone would spend a bit of time looking on the web and finding
> that there are many many other implementations of other lockfree structures
> out there. We use boost lockfree already so the ones in there are covered.
> Unfortunately, it’s hard to find open source implementations of other
> classes that are boost license compatible (we use boost license in HPX), so
> we can’t just take some of the other code and use it – though in some cases
> contacting the author and asking if they would relicense it with a boost
> license works - the vector in the concurrent branch came from another
> project, but it hasn’t been tested fully and debugged and might have awful
> performance – we’d like someone to clean it up and finish it off.
>
>
>
> So what we need is someone to look at the algorithms that are ‘out there’,
> see if any code exists we can use, if not write new implementations of as
> many useful classes as possible. Create tests for them, profile and
> benchmark them. Find out if the lockfree ones really are better than the
> lock based ones (assuming you use hpx spinlocks and not std::mutex based
> locks). Try them out in different example applications – look through the
> hpx source and see if any of the existing code using lockfree structures
> can be improved with new classes (the schedulers for example need to be
> thread safe and use queues etc and we can help tell you where to look).
>
>
>
> We want a student who can write a proposal that demonstrates that he/she
> knows what they’re doing, knows where to look, and has an idea of how to
> test and benchmark the code, experiment with hpx to see if any significant
> performance improvements can be made and put together a plan that covers
> the gsoc period. We’re here to help and several of the HPX developers will
> be willing to steer you in the right direction once you get going.
>
>
>
I'm still learning  and experimenting with the hpx so I will try and
formulate ways to test and benchmark the code.

> Hope this helps
>
>
>
> JB
>
>
>
> Concurrent branch : https://github.com/STEllAR-
> GROUP/hpx/commits/concurrent_data_structures
>
> Issue : https://github.com/STEllAR-GROUP/hpx/issues/2235
>
> Readers/writer mutex : https://github.com/STEllAR-
> GROUP/hpx/blob/master/plugins/parcelport/verbs/readers_writers_mutex.hpp
>
> Concurrent map : https://github.com/STEllAR-GROUP/hpx/blob/master/plugins/
> parcelport/verbs/unordered_map.hpp
>
> TBB : https://www.threadingbuildingblocks.org/docs/help/reference/thread_
> local_storage/enumerable_thread_specific_cls.html
>
> And https://gist.github.com/biddisco/b9a7b1a4e006e928ae1c6f4032aaff79
>
>
>
>
>
>
>
>
>
>
>
> *From: *<[email protected]> on behalf of Akshay Rawat
> <[email protected]>
> *Reply-To: *"[email protected]" <[email protected]
> >
> *Date: *Wednesday, 8 March 2017 at 17:59
> *To: *"[email protected]" <[email protected]>
> *Subject: *[hpx-users] [gsoc17] Getting started Concurrent Data structure
> Support project
>
>
>
> Hi All,
>
>
>
> My name is Akshay Rawat, I'm currently pursuing my master's in computer
> science at University of Florida. This is my first time as an open source
> contributor and I look forward to doing more.
>
>
>
> Prior to pursuing higher education I've had been a C++ developer for 2
> years where I've had a lot of experience in using a Boost libraries and C++
> STL, (to the point of writing wrappers on top of STL data structures to
> suit the usage of STL data structures with pointers).
>
>
>
> I've been doing a project with a professor at my university on weather
> radar systems which involves C++ HPC and I stumbled on the same issue of
> not being able to use the STL data structures for the project (not being
> thread safe).
>
>
>
> Thus I've become really interested in contributing to Concurrent Data
> structure Support project as i would really like to create thread safe
> versions of the STL containers I use very frequently. So how can I start?
>
>
>
>
>
>
>
> with regards,
>
> Akshay Rawat
>
>
>
> _______________________________________________
> hpx-users mailing list
> [email protected]
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
>
>
_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

Reply via email to