HPX was established 12 years ago on March 24, 2008 as the open-source C++ Standard Library for Parallelism and Concurrency it is today. Over the years, user interest and content has grown and system changes have been implemented. With the milestone of another year of behind us, the HPX Community Survey was conducted to gauge user experiences regarding usefulness and functionality, purpose of use, and ease of use of HPX. Survey submissions were collected through 03/05/2020, with 33 total responses received.
The findings in this survey will serve as a valuable tool as HPX – it’s breadth and functionality – continues to grow. HPX administrators and the newly instated PMC will consider the concerns presented in the results as system changes are made. The positive input is also very useful, pointing to processes that should remain consistent moving forward.
Poll results indicate the majority of respondents, 73%, currently use HPX. When asked where users first heard of HPX, though the results were many, nearly half of those polled were informed through a colleague or at a conference. Other responses varied, but included The STE||AR website, YouTube, and Reddit. Though 21% of those polled knew of the existence of HPX for as long as 5-10 years ago, only 12% have been using the system for that long. With another 12% having never used HPX at all.
According to the survey, task-based programming is the main feature of HPX engaged by users, at 96%. Distributed HPX and Parallel algorithms are also widely used at 64% and 54% respectively. The least used feature, at 3.6% is Task to Hardware binding. The majority of respondents employ HPX for work-related projects and tasks at 83%. Hobbyists tally in at 35% of those polled. Those employed by Academic institutions and students make up 50% of HPX users. 36% are in private industry with less than 10% self-employed.
Usefulness, Understanding and Changes
When asked to rank the usability of HPX on a scale of 1-5, with 1 being “Unusable” and 5 being “Great,” 82% of respondents rated a 4 or 5. And when asked on a scale of 1-5 whether HPX is getting better (5) or worse (1), 89% of those polled selected 4 or 5.
Respondents were asked what they most appreciate about HPX; many remarked on HPX’s C++ standardization and compliance. One commented, “Great technology with good API. Standards compliance. Parallelization made easy.” Conversely, when asked what they liked least, there were a few who also stated C++. One comment simply being “C++ is a horrible language.” As it were, there were other concerns, several regarding lack of documentation, others on complexity or difficulty integrating with an existing application.
These concerns went hand-in-hand with the many of the comments pointing to improvements that could be made. Requests for more complete documentation being a repeated concern. Other suggestions included offering additional and optional safety features or a more intelligent scheduler. When asked why a user might stop using HPX, one again pointed to lack of documentation while another pointed to the difficulty in learning how to work within the system.
Those polled were next asked to rate HPX’s documentation across several topics on a 5-point scale, with 5 being excellent. The topics were as follows:
- What does HPX do?
- Getting started, compiling, installing
- Task-based programming
- Parallel algorithms
- Components, actions
- Low-level functionality
- API reference
- Examples and tutorials
Of these, topics the first 4 scored best with an overall “Good”/4 rating, with “What does HPX Do?” and “Getting started, compiling, installing” having the highest number of “Good” responses. The first 4 topics also received the largest number of “Excellent”/1 responses, though not a majority. Conversely, topics “Debugging,” “Profiling” and “Low-level functionality” received a majority of “Severely Lacking”/2 ratings. These 3 topics were also given a few 1 ratings, meaning users could find no documentation on these topics at all.
Regarding specific items that users would like to see documented, responses varied greatly. Two users polled requested documentation and support for the parcelport system. Another stated that documentation on integration with existing code would be beneficial. One user suggested that the need for documentation varies depending on the task and the week, typically on low-level topics.
When asked if users have felt welcomed into the HPX community, the response was overwhelmingly “Yes,” at 80%, with no “No” responses. The remaining 20% haven’t formed an opinion on this question yet. Results were split across categories when asked a preference of where to have the HPX community. Answers included: A mailing list, IRC, Slack, Matrix and Discord.
Regarding how users interact with each other within the HPX community, the majority, at 68%, is through GitHub, with other popular responses being through the IRC channel on Freenode or through direct contact with developers. In response to whether the IRC channel is easy to join, most replied “Yes,” at 40%, another 33% did not care, and only 7% experienced difficulty and did not join because of it.
Contributions to HPX
Of those polled, 41% of users have contributed to HPX on multiple occasions. 28% have contributed once. Of the remaining 31%, some would like to contribute but cannot find time, others find HPX too intimidating to contribute, and still others have no interest.
When asked what changes specifically would make contributing easier for users, some again pointed to additional documentation. Another request was for “Smaller tasks for first timers.” One other user pointed back to the previous response of too little time personally, no matter what changes might occur in the system.
HPX users were asked how they might contribute to HPX in “non-code” ways. Responses were few but included “documentation,” and starting an “HPX study group or meetup for intermediate C++ programmers.”
The final question asked respondents to share any additional information they choose. Here is one user’s response: “All in all a very good piece of tech. Needs more approachability, especially work on documentation in many ways. Keep up the work. Despite all shortcomings I love it!”
We’d like to thank all those who took the time to participate in the survey; please know that your opinions and responses are important to us. HPX could not function without the community built around it. If you have any questions about the survey or further concerns, please contact us at firstname.lastname@example.org