Dice Question Streamline Icon: https://streamlinehq.com

Default basic parameter ambiguity when multiple loop-termination variables exist

Determine which variable—n or nprocs—ppOpen-AT treats as the default basic parameter in a before execute-time auto-tuning region where both n and nprocs appear as loop-termination variables, so that developers can correctly specify basic parameters without ambiguity in such multi-variable loop contexts.

Information Square Streamline Icon: https://streamlinehq.com

Background

ppOpen-AT distinguishes basic parameters (BPs), which users must set (e.g., problem size, number of processors), from performance parameters (PPs), which affect performance but are not mandatory. In many examples, the default BP can be inferred when a single loop-termination variable controls the loop (e.g., n).

In Sample Program 4b, both n and nprocs influence loop bounds, creating ambiguity about which should be the default BP. The authors explicitly note this uncertainty and instruct users to resolve it by explicitly specifying the BP via the parameter subtype specifier, highlighting an unresolved aspect of default BP selection when multiple loop-termination variables are present.

References

In the example below, because n is not the only loop-termination variable (the variable nprocs also exists), it is not known whether the variable n or nprocs is the default basic parameter. Consequently, the user must specify the basic parameter via the parameter subtype specifier.

ppOpen-AT: A Directive-base Auto-tuning Language (2408.16607 - Katagiri, 29 Aug 2024) in Section 4.2.2, Sample Program 4b