HPX Community Survey Summary

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.

Basic Use

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
  • Debugging
  • Profiling
  • 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.

HPX Community

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 hpx-users@stellar-group.org

HPX 1.4.1 Released!

The STE||AR Group is proud to announce the release of HPX 1.4.1. This is mostly a bug-fix release! This release fixes problems found in the previous HPX V1.4.0. Among other things it fixes:

  • Compilation issues on various platforms and compilers
  • MPI finalization if HPX has not initialized MPI
  • A few CMake configuration problems
  • Installation of pdb files on Windows

Please see here for a full list of resolved issues. Download the release from our release page.

Thank you once again to everyone in the STE||AR Group and all the volunteers who have provided fixes, opened issues, and improved documentation. If you have any questions, comments, or exploits to report you can reach us on IRC (#stellar on Freenode), or email us at hpx-users@stellar.cct.lsu.edu. We depend on your input!

HPX 1.4.0 Released!

The STE||AR Group is proud to announce the release of HPX 1.4.0. This is a big release! We’ve added numerous new features, continued work on modularizing and making HPX lighter, and all-round improved usability, stability, and performance. Thank you once again to everyone in the STE||AR Group and all the volunteers who have provided fixes, opened issues, and improved documentation.

Download the release from our release page. Please note that we will not be providing downloads from stellar-group.org or stellar.cct.lsu.edu anymore.

Continue reading

New Year, New Journeys

STE||AR Team:

Over the past six years I have had the pleasure of working with all of you wrangling teams, editing papers, writing grants, and just helping out wherever I can. However, as of December 31st, I will no longer be performing the role of program coordinator at LSU, and starting in January, I will be leaving the LSU community to take a position at AMD in Austin, Texas. This move is bittersweet for me. While the prospect of moving to a new city and facing new challenges is exciting, I am leaving a group of people I have grown very close to over the past half-decade.

I feel so privileged to have been able to work with and learn from the talented, knowledgeable, and skillful people who make up the STE||AR team. I really believe that Hartmut has created something special, a community of people who truly care about each other brought together by a vision of how C++ and HPC could be. I am confident that the future is bright for HPX and for all of us lucky people who have had the good fortune to engage with it.

Until we see each other again, happy hacking!

Adrian S. Lemoine

GSoD Final Report

By Rebecca Stobaugh.

We’ve reached the end of Google’s Season of Docs, and we’ve accomplished a lot in the past three months. My initial proposal was to work on three sections of the manual, and we have far exceeded our goal, managing to make changes to twelve different sections of the documentation. The majority of the work I’ve done has consisted of cleaning up grammatical errors and improving sentence structure. I have also added a style guide to the wiki, which should help standardize future changes to the documentation. The style guide can be found in the “HPX Source Code Structure and Coding Standards” wiki document under the section “Documentation Style Guide”. For a complete list of my pull requests during Season of Docs, please see here. To view my changes to the wiki, please see here.

Continue reading