Page tree
Skip to end of metadata
Go to start of metadata

Student work experience opportunities also exist for students who want to suggest their own project idea. Project suggestions must be relevant to HPCC Systems and of benefit to our open source community. 

Find out about the HPCC Systems Summer Internship Program.

Project Description

There are several situations where it would be useful to reverse the order of a dataset. This could be done more efficiently than a sort.  The change would need to cover the following particular cases:

  • inline datasets. (These could generally iterate in reverse, imposing no run time overhead)
  • grouped datasets - reverse just within the group
  • local
  • global.

There is also opportunity for various optimizations - e.g., REVERSE(SORT())->SORT'

More details coming soon.

If you are interested in this project, please contact Gavin Halliday.

Completion of this project involves:

  • Adding the syntax to the language
  • Adding support for a new logical operation
  • Generate the activity helper
  • Add support for grouped and local reverse to all the engines
  • Add support for global reverse to Thor.
  • Implementing REVERSE for an inline dataset operation
  • Investigate what optimizations can be performed

By the mid term review we would expect you to have:

  • Add syntax, and represent a new logical operation 
  • Produce test cases for the different variants
  • A grouped and local variation of the activity implemented in one of the engines.

Gavin Halliday

Backup Mentor: TBD
Contact Details

Skills needed
  • Knowledge of C++ required
  • Ability to build and test the HPCC system (guidance will be provided).
  • Ability to write test code. Knowledge of ECL is not a requirement since it should be possible to re-use existing code with minimal changes for this purpose. Links are provided below to our ECL training documentation and online courses should you wish to become familiar with the ECL  language.
  • Ability to develop new code within an existing framework


  • <Deliverable(s) to be achieved>

End of project

  • <Deliverables expected by the end of the internship>
Other resources
  • No labels