Hey Pratyush, Thanks for your interest in one of our projects. I'm cc'ing this answer to our mailing list hpx-users for others to chime in as well. Please post your responses there as well.
> I am pursuing Masters at Indian Institute of Technology Bombay in the > field of Geo-informatics. I had completed Bachelors in the field of > Information Technology. I am having a work experience of 1 year working > with Cognizant Technology Solutions in Java domain. I am currently working > on "Large Scale Spatial Data processing using GPU". > I am motivated by the work done by STEllAR-GROUP in GSoC. I am interested > in contributing to STEllAR-GROUP. This is regarding "Work on parallel > algorithms for HPX"(Project Proposal for GSoC'16). Can you please help me > in getting started with the Contribution. For the parallel algorithms, I'd suggest starting with building and running HPX. Look at the examples, run them, understand them. Once you have familiarized yourself a bit with HPX you can go the next steps. You might want to look into the existing (local) parallel algorithms we have implemented. hpx::parallel::for_each is a good starting point (https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/parallel/algorithms/for_each.hpp). This will give you a rough understanding of HPX's tasking/threading/executor subsystem. Reading the standards proposal describing the APIs we implemented might be helpful as well: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4409.pdf, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4569.pdf. Well, reading all of this is probably not necessary (or even possible), but please keep those documents in mind whenever you're looking for some detailed information. All in all, we have several tickets in our ticket system which relate to this topic. I'll list those for you here: - https://github.com/STEllAR-GROUP/hpx/issues/1141, https://github.com/STEllAR-GROUP/hpx/issues/1836: As you can see from the first of those, for the local parallel algorithms we mainly miss implementations of the algorithms related to sorting (partial_sort, partial_sort_copy, nth_element, stable_sort, etc.). Some of the algorithms based on some derivative of a parallel scan are missing too (uniq, remove_if, partition, etc.). The others have either been already implemented or are being currently worked on. - https://github.com/STEllAR-GROUP/hpx/issues/1668: We need some work done for adapting the existing algorithms to the Ranges TS. Here we have been able to touch only a few. - https://github.com/STEllAR-GROUP/hpx/issues/1338: More involved (but also more interesting) would be to work on enabling some of the existing local only algorithm implementations to support distributed data structures, like partitioned_vector. As an example, please look at the distributed implementation of parallel::for_each here: https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/parallel/segmented_algorithms/for_each.hpp). After that, you should try to understand how HPX handles remote procedure invocations (HPX actions). This is necessary to get a grips on how the distributed parallel algorithms are implemented. This will also help to see what hpx::partitioned_vector is all about and how it integrates with the distributed parallel algorithms. The paper http://afstern.org/matt/segmented.pdf should give you a head-start on segmented iterators which is describing the high level scheme we used for hpx::partitioned_vector. Please don't hesitate to get back to us with more questions. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu _______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
