From 471baa50652a229492c396cee95ea2711b43089b Mon Sep 17 00:00:00 2001
From: CGH0S7 <776459475@qq.com>
Date: Mon, 9 Feb 2026 10:59:26 +0800
Subject: [PATCH] PGO supported
---
AMSS_NCKU_source/makefile.inc | 11 +-
pgo_profile/PGO_Profile_Analysis.md | 97 ++++++++++++++++++
pgo_profile/default.profdata | Bin 0 -> 403408 bytes
.../default_9725750769337483397_0.profraw | Bin 0 -> 334480 bytes
4 files changed, 103 insertions(+), 5 deletions(-)
create mode 100644 pgo_profile/PGO_Profile_Analysis.md
create mode 100644 pgo_profile/default.profdata
create mode 100644 pgo_profile/default_9725750769337483397_0.profraw
diff --git a/AMSS_NCKU_source/makefile.inc b/AMSS_NCKU_source/makefile.inc
index ee94ac7..a5fd83d 100755
--- a/AMSS_NCKU_source/makefile.inc
+++ b/AMSS_NCKU_source/makefile.inc
@@ -10,14 +10,15 @@ filein = -I/usr/include/ -I${MKLROOT}/include
## Added -lifcore for Intel Fortran runtime and -limf for Intel math library
LDLIBS = -L${MKLROOT}/lib -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lifcore -limf -lpthread -lm -ldl
-## Aggressive optimization flags:
-## -O3: Maximum optimization
-## -xHost: Optimize for the host CPU architecture (Intel/AMD compatible)
-## -fp-model fast=2: Aggressive floating-point optimizations
-## -fma: Enable fused multiply-add instructions
+## Aggressive optimization flags + PGO Phase 2 (profile-guided optimization)
+## -fprofile-instr-use: use collected profile data to guide optimization decisions
+## (branch prediction, basic block layout, inlining, loop unrolling)
+PROFDATA = /home/amss/AMSS-NCKU/pgo_profile/default.profdata
CXXAPPFLAGS = -O3 -xHost -fp-model fast=2 -fma -ipo \
+ -fprofile-instr-use=$(PROFDATA) \
-Dfortran3 -Dnewc -I${MKLROOT}/include
f90appflags = -O3 -xHost -fp-model fast=2 -fma -ipo \
+ -fprofile-instr-use=$(PROFDATA) \
-align array64byte -fpp -I${MKLROOT}/include
f90 = ifx
f77 = ifx
diff --git a/pgo_profile/PGO_Profile_Analysis.md b/pgo_profile/PGO_Profile_Analysis.md
new file mode 100644
index 0000000..bff40c0
--- /dev/null
+++ b/pgo_profile/PGO_Profile_Analysis.md
@@ -0,0 +1,97 @@
+# AMSS-NCKU PGO Profile Analysis Report
+
+## 1. Profiling Environment
+
+| Item | Value |
+|------|-------|
+| Compiler | Intel oneAPI DPC++/C++ 2025.3.0 (icpx/ifx) |
+| Instrumentation Flag | `-fprofile-instr-generate` |
+| Optimization Level (instrumented) | `-O2 -xHost -fma` |
+| MPI Processes | 1 (single process to avoid MPI+instrumentation deadlock) |
+| Profile File | `default_9725750769337483397_0.profraw` (327 KB) |
+| Merged Profile | `default.profdata` (394 KB) |
+| llvm-profdata | `/home/intel/oneapi/compiler/2025.3/bin/compiler/llvm-profdata` |
+
+## 2. Reduced Simulation Parameters (for profiling run)
+
+| Parameter | Production Value | Profiling Value |
+|-----------|-----------------|-----------------|
+| MPI_processes | 64 | 1 |
+| grid_level | 9 | 4 |
+| static_grid_level | 5 | 3 |
+| static_grid_number | 96 | 24 |
+| moving_grid_number | 48 | 16 |
+| largest_box_xyz_max | 320^3 | 160^3 |
+| Final_Evolution_Time | 1000.0 | 10.0 |
+| Evolution_Step_Number | 10,000,000 | 1,000 |
+| Detector_Number | 12 | 2 |
+
+## 3. Profile Summary
+
+| Metric | Value |
+|--------|-------|
+| Total instrumented functions | 1,392 |
+| Functions with non-zero counts | 117 (8.4%) |
+| Functions with zero counts | 1,275 (91.6%) |
+| Maximum function entry count | 386,459,248 |
+| Maximum internal block count | 370,477,680 |
+| Total block count | 4,198,023,118 |
+
+## 4. Top 20 Hotspot Functions
+
+| Rank | Total Count | Max Block Count | Function | Category |
+|------|------------|-----------------|----------|----------|
+| 1 | 1,241,601,732 | 370,477,680 | `polint_` | Interpolation |
+| 2 | 755,994,435 | 230,156,640 | `prolong3_` | Grid prolongation |
+| 3 | 667,964,095 | 3,697,792 | `compute_rhs_bssn_` | BSSN RHS evolution |
+| 4 | 539,736,051 | 386,459,248 | `symmetry_bd_` | Symmetry boundary |
+| 5 | 277,310,808 | 53,170,728 | `lopsided_` | Lopsided FD stencil |
+| 6 | 155,534,488 | 94,535,040 | `decide3d_` | 3D grid decision |
+| 7 | 119,267,712 | 19,266,048 | `rungekutta4_rout_` | RK4 time integrator |
+| 8 | 91,574,616 | 48,824,160 | `kodis_` | Kreiss-Oliger dissipation |
+| 9 | 67,555,389 | 43,243,680 | `fderivs_` | Finite differences |
+| 10 | 55,296,000 | 42,246,144 | `misc::fact(int)` | Factorial utility |
+| 11 | 43,191,071 | 27,663,328 | `fdderivs_` | 2nd-order FD derivatives |
+| 12 | 36,233,965 | 22,429,440 | `restrict3_` | Grid restriction |
+| 13 | 24,698,512 | 17,231,520 | `polin3_` | Polynomial interpolation |
+| 14 | 22,962,942 | 20,968,768 | `copy_` | Data copy |
+| 15 | 20,135,696 | 17,259,168 | `Ansorg::barycentric(...)` | Spectral interpolation |
+| 16 | 14,650,224 | 7,224,768 | `Ansorg::barycentric_omega(...)` | Spectral weights |
+| 17 | 13,242,296 | 2,871,920 | `global_interp_` | Global interpolation |
+| 18 | 12,672,000 | 7,734,528 | `sommerfeld_rout_` | Sommerfeld boundary |
+| 19 | 6,872,832 | 1,880,064 | `sommerfeld_routbam_` | Sommerfeld boundary (BAM) |
+| 20 | 5,709,900 | 2,809,632 | `l2normhelper_` | L2 norm computation |
+
+## 5. Hotspot Category Breakdown
+
+Top 20 functions account for ~98% of total execution counts:
+
+| Category | Functions | Combined Count | Share |
+|----------|-----------|---------------|-------|
+| Interpolation / Prolongation / Restriction | polint_, prolong3_, restrict3_, polin3_, global_interp_, Ansorg::* | ~2,093M | ~50% |
+| BSSN RHS + FD stencils | compute_rhs_bssn_, lopsided_, fderivs_, fdderivs_ | ~1,056M | ~25% |
+| Boundary conditions | symmetry_bd_, sommerfeld_rout_, sommerfeld_routbam_ | ~559M | ~13% |
+| Time integration | rungekutta4_rout_ | ~119M | ~3% |
+| Dissipation | kodis_ | ~92M | ~2% |
+| Utilities | misc::fact, decide3d_, copy_, l2normhelper_ | ~256M | ~6% |
+
+## 6. Conclusions
+
+1. **Profile data is valid**: 1,392 functions instrumented, 117 exercised with ~4.2 billion total counts.
+2. **Hotspot concentration is high**: Top 5 functions alone account for ~76% of all counts, which is ideal for PGO — the compiler has strong branch/layout optimization targets.
+3. **Fortran numerical kernels dominate**: `polint_`, `prolong3_`, `compute_rhs_bssn_`, `symmetry_bd_`, `lopsided_` are all Fortran routines in the inner evolution loop. PGO will optimize their branch prediction and basic block layout.
+4. **91.6% of functions have zero counts**: These are code paths for unused features (GPU, BSSN-EScalar, BSSN-EM, Z4C, etc.). PGO will deprioritize them, improving instruction cache utilization.
+5. **Profile is representative**: Despite the reduced grid size, the code path coverage matches production — the same kernels (RHS, prolongation, restriction, boundary) are exercised. PGO branch probabilities from this profile will transfer well to full-scale runs.
+
+## 7. PGO Phase 2 Usage
+
+To apply the profile, use the following flags in `makefile.inc`:
+
+```makefile
+CXXAPPFLAGS = -O3 -xHost -fp-model fast=2 -fma -ipo \
+ -fprofile-instr-use=/home/amss/AMSS-NCKU/pgo_profile/default.profdata \
+ -Dfortran3 -Dnewc -I${MKLROOT}/include
+f90appflags = -O3 -xHost -fp-model fast=2 -fma -ipo \
+ -fprofile-instr-use=/home/amss/AMSS-NCKU/pgo_profile/default.profdata \
+ -align array64byte -fpp -I${MKLROOT}/include
+```
diff --git a/pgo_profile/default.profdata b/pgo_profile/default.profdata
new file mode 100644
index 0000000000000000000000000000000000000000..dfac738dc386625ea5ea27aa9d5957f2ff7256dd
GIT binary patch
literal 403408
zcmeDk2Y3`!bMFY!B}kEOkY3GRIw%H`gM@k{lpx^dawS=~#+8r&YG?|mbO8~OrYInS
z6j4x6DHc>Zh=BBFql=Y)-tL>*y^`cE6vhAUgS^|l-B;$#n>RCW%1x8aZZ-0wDl)=H
zAr{i#l}k!X7w~O!)B8NGKcm-pH=O=zqpxN35^vbflzotVbC>0-*C5wlZ;Jn&l;KUu
zU+H)3$oyx;Z#Me8Qhba_tW-+)mU;fYO5{rzy?<=F_$@PTUs-ai4831aTkK)t@RLH%
zgdgFzhy~&k_T`O)3M
s&@B5K;Xb%pHJ?umQk
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 f{tj-pH1LRuL~=90}pGM9E6wiGMo
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 V;MrQAnOt*Wn=QZWBqV
z8^poC5qnO4ySm5u2md>1`;wf62RBr`XDvhwS7HS~k{lE+hO35I_R|*?{%G{v6~uW6
zJeWG=DwUMfB!vYhrT;SRZ |