Skip to content

Commit b6b2b6f

Browse files
feat: derive top-level applicability from section fallback [code:qws] [system:MiyabiG]
1 parent e23ada4 commit b6b2b6f

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

scripts/estimation/packages/instrumented_app_sections_dummy.sh

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,85 @@ _bk_transform_breakdown_for_qws_demo() {
470470
'{sections: $sections, overlaps: $overlaps}'
471471
}
472472

473+
_bk_collect_breakdown_package_issues() {
474+
local breakdown_json="$1"
475+
476+
if [[ -z "$breakdown_json" || "$breakdown_json" == "null" ]]; then
477+
echo "[]"
478+
return 0
479+
fi
480+
481+
echo "$breakdown_json" | jq -c '
482+
[
483+
((.sections // [])
484+
| map(
485+
{
486+
item_kind: "section",
487+
item_name: .name,
488+
scaling_method: (.scaling_method // ""),
489+
package_status: (.package_applicability.status // ""),
490+
missing_inputs: (.package_applicability.missing_inputs // [])
491+
}
492+
)),
493+
((.overlaps // [])
494+
| map(
495+
{
496+
item_kind: "overlap",
497+
item_name: (.sections | join(",")),
498+
scaling_method: (.scaling_method // ""),
499+
package_status: (.package_applicability.status // ""),
500+
missing_inputs: (.package_applicability.missing_inputs // [])
501+
}
502+
))
503+
] | add
504+
'
505+
}
506+
507+
_bk_set_top_level_applicability_from_breakdowns() {
508+
local issues_json="$1"
509+
local has_not_applicable
510+
local has_fallback
511+
local aggregated_missing_inputs
512+
513+
has_not_applicable=$(echo "$issues_json" | jq -r '
514+
any(
515+
(.scaling_method == "unresolved-package")
516+
or (.package_status == "not_applicable")
517+
)
518+
')
519+
520+
has_fallback=$(echo "$issues_json" | jq -r '
521+
any(.package_status == "fallback")
522+
')
523+
524+
aggregated_missing_inputs=$(echo "$issues_json" | jq -c '
525+
[
526+
.[]
527+
| select((.missing_inputs | length) > 0)
528+
| .missing_inputs[]
529+
] | unique
530+
')
531+
532+
if [[ "$has_not_applicable" == "true" ]]; then
533+
bk_estimation_set_applicability \
534+
"not_applicable" \
535+
"" \
536+
"$aggregated_missing_inputs" \
537+
'["provide-missing-section-inputs-or-enable-compatible-fallback"]'
538+
return 0
539+
fi
540+
541+
if [[ "$has_fallback" == "true" ]]; then
542+
bk_estimation_set_applicability \
543+
"partially_applicable" \
544+
"" \
545+
"$aggregated_missing_inputs"
546+
return 0
547+
fi
548+
549+
bk_estimation_set_applicability "applicable"
550+
}
551+
473552
bk_estimation_package_run() {
474553
local baseline_system="${BK_ESTIMATION_BASELINE_SYSTEM:-Fugaku}"
475554
local baseline_exp="${BK_ESTIMATION_BASELINE_EXP:-CASE0}"
@@ -483,6 +562,7 @@ bk_estimation_package_run() {
483562
local logp_package_name="trace_collective_logp"
484563
local breakdown_template
485564
local baseline_breakdown
565+
local applicability_issues_json
486566

487567
est_future_bench_system="$est_system"
488568
est_future_bench_fom="$est_fom"
@@ -524,6 +604,12 @@ bk_estimation_package_run() {
524604
est_future_target_nodes="$future_target_nodes"
525605
est_future_scaling_method="$model_name"
526606

607+
applicability_issues_json=$(jq -cn \
608+
--argjson current "$(_bk_collect_breakdown_package_issues "$est_current_fom_breakdown")" \
609+
--argjson future "$(_bk_collect_breakdown_package_issues "$est_future_fom_breakdown")" \
610+
'$current + $future')
611+
_bk_set_top_level_applicability_from_breakdowns "$applicability_issues_json"
612+
527613
est_measurement_json=$(jq -cn '
528614
{
529615
tool: "application-section-timer",

0 commit comments

Comments
 (0)