Skip to content

PGIS integration into CaPI #2

@sebastiankreutzer

Description

@sebastiankreutzer

PGIS Integration into CaPI

This document is meant to track the decisions and issues arising from the PGIS migration to CaPI.

Background

CaPI enables the specification of composable selection pipelines for performance instrumentation.
Like PIRA, it uses MetaCG as the backend for global CG analysis and metadata collection.

The idea is to migrate the PGIS selection mechanism into the CaPI project.
Benefits:

  • Reduction of code duplication between the two projects.
  • Enabling coherent composition of PGIS with other selection mechanisms.

Migration Phases

Adding PGIS estimator phases into CaPI as selection modules

Estimators
As a first step, focus on the static statement aggregration selection.
Add support for ExtraP, load imbalance etc. later.

Explicit modeling of analysis requirements
Selection modules should be able to specify required analysis passes.
CaPI needs to make sure that the results are available and dependencies are resolved.

Storage of analysis results
We need to make sure that the analysis results are stored in MetaCG in a consistent manner.
Instead of storing some of the information into the nodes directly in special member variables, everything should be modeled as metadata.

CLI and selection options
CaPI currently provides a very simple interface with limited options.
In order to support better configurability, we need a more sophistaced option parsing system.
We also need to figure out which options should be passed inside the selection specification and which over the CLI.

CaPI interface for PIRA

Instead of using PGIS directly, PIRA will interface with CaPI.
This enables better control of the selection mechanism used in each iteration.

Selection DSL
The selection DSL is currently focused on static selection without refinement.
We may need to adjust the DSL to express modifications of the IC over multiple iterations.

Instumentation
Currently, CaPI and PIRA use separate instrumentation backends.
At the end, we aim to have a unified backend, possibly supporting multiple measurement APIs and instrumentation paradigms (e.g. static vs. dynamic).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions