Resources for co-design

Thursday, May 27, 2021

During this second phase of the POP project, we have been developing the resources for co-design website. It has now been completely integrated with our main website and you can visit it at Its main purpose is to offer a resource for application developers, performance analysts and system designers (hardware and software) to understand the sort of problems they can encounter when executing on HPC systems.

Application developers may find similar problems to those that affect their applications. Performance analysts may find directions on how to interpret metrics and the next steps to take in their analysis. System designers may obtain interesting ideas to guide their future designs: for instance, hardware designers may evaluate the impact of certain characteristics (e.g., the network bandwidth) on the overall performance, while programming model designers may detect the lack of support of a given feature in their specifications or implementations.

The site contents are organized through different collections, each of them populated with stand-alone items that may be connected to various other items in other collections. For instance, the load balance metric is connected to those patterns in which we detect performance degradation in this metric. The site currently offers the following main collections:

  • Metrics contains the POP metrics used to guide the evaluation of performance.
  • Patterns describes the typical non-optimal behavioral patterns that we have identified in the analysis of applications.
  • Best-practices collects a list of recommendations that address the problems exhibited by the patterns.
  • Programs contains source code programs reproducing the patterns, as well as implementing the best-practices.
  • Reports includes public POP reports, either analyzing real HPC applications or describing a proof-of-concept implementing a recommendation.

In addition, the site can be navigated through different selection criteria, including programming languages and models, disciplines, and algorithms. These additional collections allow the user to easily access program source codes matching their selected option. For example, visitors may choose to select all the codes using the MPI programming model.

We invite you to explore the current contents of the resources for co-design site at; to experiment with the source codes provided and obtain your own results; to check the POP-obtained results described in our public report repository; and, if you’re interested in what you see, we encourage you to request ( a performance analysis of your own application.