Skip to content

Commit e819e5a

Browse files
authored
Merge branch 'main' into YOURBRANCH
2 parents 6ec90b3 + 592ba20 commit e819e5a

File tree

4 files changed

+240
-33
lines changed

4 files changed

+240
-33
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Export All Commits
2+
3+
on:
4+
workflow_dispatch: # Allows you to run this manually from the Actions tab
5+
6+
jobs:
7+
get-history:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout Repository
11+
uses: actions/checkout@v4
12+
with:
13+
fetch-depth: 0 # Crucial: 0 fetches all history for all branches and tags
14+
15+
- name: Extract Log for Each File
16+
run: |
17+
# Find all files (excluding the .git folder) and run git log on each
18+
find . -type f -name "*.md" -not -path '*/.*' | while read -r file; do
19+
git log --stat --pretty=format:"__|__$file||%H||%s||%an||%ae||%ar||%ad||%B" -- "$file" >> commit_history.txt
20+
echo "_/^\_" >> commit_history.txt
21+
done && [ -s commit_history.txt ] && sed -i '$d' commit_history.txt
22+
23+
- name: Install dependencies
24+
run: |
25+
python3 -m pip install --upgrade pip
26+
pip install pandas
27+
28+
- name: Process with Python
29+
run: |
30+
# Set PYTHONPATH to the current directory so imports work correctly
31+
export PYTHONPATH=$PYTHONPATH:$(pwd)
32+
python3 scripts/summarize_commits.py
33+
34+
- name: Upload Results
35+
uses: actions/upload-artifact@v4
36+
with:
37+
name: repository-commit-log
38+
path: |
39+
commit_history.txt
40+
commits_summary.csv

docs/CODEOWNERS

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121

2222
# Machine-specific documentation
23-
ai-testbed/ @vksastry @wcarnold1010
24-
ai-testbed/cerebras/ @sraskar
23+
**/ai-testbed/ @vksastry @wcarnold1010
24+
#**/ai-testbed/cerebras/ @sraskar
2525
# aurora/
2626
# polaris/
2727
# sophia/
@@ -49,37 +49,35 @@ aurora/aurora-pe.md @koysean
4949
**/example-program-makefile.md @cjknight
5050
**/example-program*.md @cjknight
5151

52-
# Data Science frameworks across all machines
53-
**/frameworks/pytorch.md @khossain4337 @FilippoSimini @saforem2
54-
**/frameworks/tensorflow.md @zhenghh04 @khossain4337
55-
**/frameworks/deepspeed.md @saforem2 @hatanp
56-
**/frameworks/megatron-deepspeed.md @saforem2 @hatanp
57-
**/frameworks/jax.md @khossain4337
58-
**/frameworks/scikit-learn.md @BethanyL
59-
**onedal.md @BethanyL
60-
**/frameworks/dask.md @okaforn @FilippoSimini
61-
**/frameworks/pyg.md @FilippoSimini
62-
**/frameworks/gpytorch.md @mngom2
63-
**/frameworks/oneCCL.md @kaushikvelusamy @khossain4337 @hatanp
64-
**/frameworks/libtorch.md @rickybalin
65-
66-
# Applications across all machines
67-
**/applications/gpt-neox.md @saforem2 @hatanp
68-
**/applications/megatron-deepspeed.md @saforem2 @hatanp
52+
# Data Science frameworks and applications across all machines
53+
**/data-science/**/pytorch.md @khossain4337 @FilippoSimini @saforem2
54+
**/data-science/**/tensorflow.md @zhenghh04 @khossain4337
55+
**/data-science/**/deepspeed.md @saforem2 @hatanp
56+
**/data-science/**/megatron-deepspeed.md @saforem2 @hatanp
57+
**/data-science/**/gpt-neox.md @saforem2 @hatanp
58+
**/data-science/**/jax.md @khossain4337
59+
**/data-science/**/scikit-learn.md @BethanyL
60+
**onedal.md @BethanyL
61+
**/data-science/**/dask.md @okaforn @FilippoSimini
62+
**/data-science/**/pyg.md @FilippoSimini
63+
**/data-science/**/gpytorch.md @FilippoSimini
64+
**/data-science/**/oneCCL.md @kaushikvelusamy @khossain4337 @hatanp
65+
**/data-science/**/libtorch.md @rickybalin
66+
**/data-science/**/fine-tune-LLM-with-Autotrain.md @saforem2
6967

7068
# Python documentation across all machines
71-
**/python.md @felker @khossain4337
72-
**/jupyter* @keceli
69+
**/data-science/**/python.md @felker @khossain4337
70+
**/data-science/**/jupyter* @keceli
7371

7472
# Julia documentation
7573
#**/julia.md @michel2323
7674

7775
# Inference documentation
78-
**/inference/ @rickybalin
79-
**/inference/vllm.md @sraskar
76+
**/data-science/**/inference/ @rickybalin
77+
**/data-science/**/inference/vllm.md @FilippoSimini @khossain4337
8078

8179
# Profiling documentation
82-
**/profiling_dl.md @zhenghh04 @khossain4337
80+
**/data-science/**/profiling_dl.md @zhenghh04 @khossain4337
8381
**/performance-tools/vtune.md @jkwack
8482

8583
# Libraries documentation
@@ -91,13 +89,13 @@ aurora/aurora-pe.md @koysean
9189
**/visualization/** @srizzi88
9290

9391
# Data management across all machines
94-
**/data-management/daos/ @kaushikvelusamy @zhenghh04 @kevin-harms
95-
**/data-management/lustre/ @kaushikvelusamy @zhenghh04 @kevin-harms
96-
**/data-management/copper/ @kaushikvelusamy @kevin-harms
92+
**/daos*.md @kaushikvelusamy @zhenghh04 @kevin-harms
93+
**/data-management/**/lustre/ @kaushikvelusamy @zhenghh04 @kevin-harms
94+
**/data-management/**/copper/ @kaushikvelusamy @kevin-harms
9795
**/filesystem-and-storage/ @kevin-harms
9896

9997
# All container documentation
100-
###**/containers/
98+
#### **/containers/ @bcote-anl # ?
10199

102100
# All debugger documentation
103101
**/debugging*/* @jkwack
@@ -116,14 +114,16 @@ aurora/aurora-pe.md @koysean
116114
# Services documentation
117115
###**/services/ @???
118116
**/services/gitlab-ci.md @peterupton @thilinarmtb
117+
**/services/inference-endpoints.md @bcote-anl @vksastry
119118

120119
# Workflows
121120
####**/workflows/ @???
122-
**/smartsim.md @rickybalin
123-
###**/adios.md @rickybalin
124-
*adios* @rickybalin # TOOD: how fleixlbe is single-glob pattern matching?
125-
**/workflows/parsl.md @cms21
126-
#**/workflows/libensemble.md @shuds13
121+
**/workflows/**/smartsim.md @rickybalin
122+
**/workflows/**/adios.md @rickybalin
123+
**/workflows/**/parsl.md @cms21
124+
**/workflows/**/balsam.md @cms21
125+
**/workflows/**/dragon.md @cms21
126+
**/workflows/**/libensemble.md @shuds13
127127

128128
# User Support documentation
129129
###**/support/ @alcf-haritha @jfrancis-anl

docs/aurora/system-updates.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,73 @@
11
# Aurora System Updates
2+
## 2026-02-23
3+
We have a **temporary** test queue `next-eval` (open to all users) with upto 2,600 nodes that has a new compute image. **UANs aurora-uan-0007 and aurora-uan-008 have the new software image and can be used for compiling.** Please prioritize use of `next-eval` queue for testing and evaluation. See [Running jobs on Aurora](running-jobs-aurora.md) for queue policies. The new image includes updates to Intel's User (UMD) and Kernel Mode Drivers (KMD) (Agama 1146.40 / LTS release 2523.40), and OneAPI 2025.3.1.
4+
5+
Details of the full change log are below (**next-eval test queue only**):
6+
7+
### OS Image
8+
- Intel KMD/UMD 1146.40 / LTS 2523.40
9+
- Intel SEPDK KMDs from OneAPI 2025.3.0
10+
- Lustre Client cray-2.15.B23
11+
- Geopm 3.2.2
12+
- DAOS Client 2.6.4-11
13+
- /daos is now a symlink to /tmp for use with DAOS dfuse mounts
14+
- Legacy AuroraSDK / PE versions dropped:
15+
- 24.347.0 (OneAPI 2025.0.5)
16+
- 24.180.3 (OneAPI 2024.2.1
17+
18+
### PE 26.26.0
19+
- OneAPI 2025.3.1
20+
- [oneAPI Base Toolkit 2025.3.1](running-jobs-aurora.md)
21+
- [oneAPI HPC Toolkit 2025.3.1](running-jobs-aurora.md)
22+
- [Intel Deep Learning Essentials 2025.3.2](running-jobs-aurora.md)
23+
- [Intel Compiler 2025.3.2](running-jobs-aurora.md)
24+
- See [Known Issues](https://docs.alcf.anl.gov/aurora/bugs-table/)
25+
- Spack
26+
- Spack 1.1 update with backported patches for externals and OneAPI
27+
- Base Python updated to 3.12.12
28+
- Spack - Packages (limited to oneapi dependencies)
29+
- amrex - 26.02
30+
- ginkgo - 1.11
31+
- blaspp, lapackpp - 2025.05.28
32+
- hdf5 - 2.0.0, 1.14.6
33+
- kokkos - 5.0.1, 4.7.02
34+
- umpire - 2025.12.0 +sycl
35+
- raja - 2025.12.0
36+
- petsc - 3.24.3 +sycl
37+
- hypre - 3.0.0 +sycl
38+
- geopm - 3.2.2
39+
- boost - 1.88
40+
- py-torch - 2.10.0 and deps
41+
- xpu-smi - 1.2.42, 1.3.5
42+
- warpx - 26.02
43+
- Forge
44+
- 25.1.1
45+
- MPICH
46+
- aurora_test branch @ [3c70a61](https://github.com/pmodels/mpich/compare/6037a7a..3c70a61)
47+
- Libfabric optimization variables set by default according to HPE's SHS guide
48+
- Can be checked by `ml show mpich`
49+
- New pipeline algorithm disabled by default
50+
- Frameworks/2025.3.1
51+
- Major packages:
52+
- torch 2.10.0a0+git449b176
53+
- torchao 0.15.0+git9338966da
54+
- torchdata 0.11.0+377e64c
55+
- torchvision 0.25.0+8ac84ee
56+
- torchcomms 0.1.0
57+
- intel-extension-for-pytorch 2.10.10+gitd0f992f
58+
- pytorch-triton-xpu 3.6.0+git225cdbde
59+
- vllm 0.15.0+xpu
60+
- scikit_learn_intelex-20260205.124755 (tag: 2025.10.1)
61+
- dpnp 0.19.1
62+
- dpctl 0.21.1
63+
- Major Change:
64+
- `ONEAPI_DEVICE_SELECTOR="opencl:gpu;level_zero:gpu"`
65+
- Exposing both to ensure functionality of `torch` , `triton-xpu` , `vLLM`, `ray` and `dpctl`
66+
- We warn the users to this change upon loading the module
67+
- Request switch to `ONEAPI_DEVICE_SELECTOR="level_zero:gpu"` and report unusual behaviors
68+
- **Temporary**, with proposed fixes included `triton-xpu` release we will switch back to `ONEAPI_DEVICE_SELECTOR="level_zero:gpu"`
69+
70+
271
## 2026-02-02
372
Flare is scheduled to be upgraded Feb 2 - Feb 5, 2026 resulting in Aurora being unavailable during this time.
473

scripts/summarize_commits.py

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import pandas as pd
2+
import re
3+
import datetime
4+
5+
6+
base_github_url = 'https://github.com/argonne-lcf/user-guides/blob/main/docs/'
7+
base_doc_url = 'https://docs.alcf.anl.gov/'
8+
9+
10+
def split_git_log(l, delim='\|\|', file_path=None):
11+
splits = l.split(delim)
12+
fullmsg_stat = re.split(r'\n [^\n]* \| ', splits[-1])
13+
try:
14+
fullmsg, stat = fullmsg_stat[0].strip(), int(fullmsg_stat[-1].split(' ')[0])
15+
except (IndexError, ValueError) as e:
16+
fullmsg, stat = fullmsg_stat, 0
17+
return splits[:-1] + [fullmsg, stat]
18+
19+
20+
def create_df_commits(commits_output, d='\|\|', s='__\|__'):
21+
# Extract author names from commit lines
22+
commits_parsed = [split_git_log(l, delim=d) for l in commits_output.split(s)[1:]]
23+
columns = ['file_path', 'commit_hash', 'message_title', 'author_name', 'author_email', 'relative_date', 'commit_date', 'full_message', 'num_edits']
24+
df_comm = pd.DataFrame(commits_parsed, columns=columns)
25+
df_comm['commit_hash'] = df_comm['commit_hash'].str[:7]
26+
df_comm['commit_date'] = pd.to_datetime(df_comm['commit_date'], format="%a %b %d %H:%M:%S %Y %z", utc=True).dt.tz_localize(None)
27+
return df_comm
28+
29+
30+
def process_file_commits(df_comm):
31+
df = pd.DataFrame([[]])
32+
33+
# edits and activity
34+
edits_total, edits_this_year = agg_col_ever_and_this_year(df_comm, col='num_edits', func='sum')
35+
df['edits_total'] = edits_total
36+
df['edits_this_year'] = edits_this_year
37+
commits_total, commits_this_year = agg_col_ever_and_this_year(df_comm, col='num_edits', func='count')
38+
df['commits_total'] = commits_total
39+
df['commits_this_year'] = commits_this_year
40+
df['date_last_commit'] = df_comm['commit_date'].max()
41+
42+
# authors
43+
user_col = 'author_email'
44+
top4_authors_w_most_edits = sort_authors_by_number_of_edits(df_comm, in_the_last_year=False, user_col=user_col)[:4].tolist()
45+
df["top4_authors_w_most_edits"] = [top4_authors_w_most_edits]
46+
df["author_w_most_edits"] = top4_authors_w_most_edits[0]
47+
try:
48+
author_w_most_edits = sort_authors_by_number_of_edits(df_comm, in_the_last_year=True, user_col=user_col)[0]
49+
except IndexError:
50+
author_w_most_edits = None
51+
df["author_w_most_edits_this_year"] = author_w_most_edits
52+
53+
# system and page name
54+
file_path = df_comm['file_path'].values[0].removeprefix('./docs/')
55+
df['system'] = file_path.split('/')[0]
56+
df['name'] = file_path.split('/')[-1]
57+
# add github url
58+
df['github_url'] = base_github_url + file_path
59+
df['url'] = df['github_url'].str.replace(base_github_url, base_doc_url)
60+
df['url'] = df['url'].str.replace(".md$", "/", regex=True).values
61+
return df
62+
63+
64+
def sort_authors_by_number_of_edits(df_comm, in_the_last_year=True, user_col='author_name'):
65+
c = df_comm
66+
if in_the_last_year:
67+
one_year_ago = datetime.datetime.today() - datetime.timedelta(days=365)
68+
authors_by_num_edits = c[c['commit_date'] > one_year_ago].groupby(user_col)['num_edits'].sum()
69+
else:
70+
authors_by_num_edits = c.groupby(user_col)['num_edits'].sum()
71+
return authors_by_num_edits.sort_values(ascending=False).index.values
72+
73+
74+
def agg_col_ever_and_this_year(df_comm, col, func='sum'):
75+
c = df_comm
76+
one_year_ago = datetime.datetime.today() - datetime.timedelta(days=365)
77+
tot_this_year = c[c['commit_date'] > one_year_ago][col].agg(func)
78+
tot_ever = c[col].agg(func)
79+
return tot_ever, tot_this_year
80+
81+
82+
def main(commit_history_path, d='||', s='__|__', file_delim='_/^\_'):
83+
with open(commit_history_path, 'r', encoding='utf-8') as file:
84+
commit_history = file.read().split(file_delim)
85+
86+
log_entries = []
87+
for commits_output in commit_history:
88+
df_comm = create_df_commits(commits_output, d=d, s=s)
89+
df = process_file_commits(df_comm)
90+
log_entries.append(df)
91+
92+
_df = pd.concat(log_entries)
93+
_df = _df.sort_values(['system', 'date_last_commit'], ascending=[True, False]).reset_index(drop=True)
94+
_df.to_csv('commits_summary.csv', index=False)
95+
96+
97+
if __name__ == '__main__':
98+
main('commit_history.txt')

0 commit comments

Comments
 (0)