Skip to content

Conversation

@goblirsc
Copy link
Contributor

@goblirsc goblirsc commented Jan 28, 2026

This PR updates the tracker alignment packages Millepede-II and GBL to use a new, common implementation of the "Mille" library responsible for writing and reading the alignment fit inputs to/from disk. The common Mille package is added as a new external package, and dependencies on it introduced to the Millepede-II and GBL spec files.

See slides for details on the new package.

Changes require updates to CMSSW, as some API calls change. These are in PR #49963.

Together, the changes pass the unit and runTheMatrix tests (few exceptions related to DAS / missing inputs, unrelated to PR).
In addition, changes were validated by running a full tracker alignment with the modified externals & CMSSW on lxplus8.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 28, 2026

cms-bot internal usage

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @goblirsc for branch IB/CMSSW_16_1_X/master.

@akritkbehera, @cmsbuild, @iarspider, @raoatifshad, @smuzaffar can you please review it and eventually sign? Thanks.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.
cms-bot commands are listed here

@smuzaffar
Copy link
Contributor

please test with cms-sw/cmssw#49963

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/summary.html
COMMIT: b7da2cc
CMSSW: CMSSW_16_1_X_2026-01-28-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/10310/50978/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/git-merge-result

Comparison Summary

Summary:

  • You potentially added 8 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 3422 differences found in the comparisons
  • DQMHistoTests: Total files compared: 52
  • DQMHistoTests: Total histograms compared: 4028546
  • DQMHistoTests: Total failures: 82621
  • DQMHistoTests: Total nulls: 14
  • DQMHistoTests: Total successes: 3945891
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 12.305 KiB( 51 files compared)
  • DQMHistoSizes: changed ( 18634.0 ): 12.305 KiB SiStrip/MechanicalView
  • Checked 222 log files, 193 edm output root files, 52 DQM output files
  • TriggerResults: found differences in 1 / 50 workflows

Max Memory Comparisons exceeding threshold

@cms-sw/core-l2 , I found 2 workflow step(s) with memory usage exceeding the error threshold:

Expand to see workflows ...
  • Error: Workflow 18634.0_TTbar_14TeV+2026PU step2 max memory diff 574.7 exceeds +/- 90.0 MiB
  • Error: Workflow 18634.0_TTbar_14TeV+2026PU step3 max memory diff 822.4 exceeds +/- 90.0 MiB


%prep
%setup -q -n %{n}-%{realversion}
grep -q 'CMAKE_CXX_STANDARD *11' cpp/CMakeLists.txt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , please do not delete this line. It is there to make sure that the cpp standard substitution we are doing in the next line works. I see that new gbl has default standard 17 ( https://gitlab.desy.de/millepede/general-broken-lines/-/blob/V04-00-00/cpp/CMakeLists.txt?ref_type=tags#L47) , so please add this line back and update the expected standard i.e.

grep -q 'CMAKE_CXX_STANDARD  *17' cpp/CMakeLists.txt

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added lines back and in both cased specified 17 as the standard to replace

-DCMAKE_VERBOSE_MAKEFILE=ON \
-DEIGEN3_INCLUDE_DIR=${EIGEN_ROOT}/include/eigen3 \
-DSUPPORT_ROOT=False \
-DCMAKE_CXX_FLAGS="$CMS_EIGEN_CXX_FLAGS %{selected_microarch}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , please also add -DCMAKE_PREFIX_PATH="%{cmake_prefix_path}" in here so that we explicitly pass the install paths of eigen and mille here. Though I see in log that it says it Found Mille but no idea how it did that :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks - now done

mille.spec Outdated
Comment on lines 12 to 22
rm -rf build
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=%{i} \
../
make

%install
cd build
make install PREFIX=%{i}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
rm -rf build
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=%{i} \
../
make
%install
cd build
make install PREFIX=%{i}
rm -rf ../build
mkdir ../build
cd ../build
cmake \
DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=%{i} \
-DCMAKE_PREFIX_PATH="%{cmake_prefix_path}"
../%{n}-%{realversion}
make %{makeprocesses} VERBOSE=1
%install
cd ../build
make install PREFIX=%{i}

to avoid building in the source tree and also build in parallel & verbose modemake %{makeprocesses} VERBOSE=1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, done

millepede.spec Outdated
-DCMAKE_INSTALL_PREFIX=%{i} \
-DLAPACK_OPENBLAS=off \
../
make
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, build outside the source tree i.e. try using ../build and also update cmake configuration to explicitly set CMAKE_PREFIX_PATH and CMAKE_BUILD_TYPE . Update make to run in parallel

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks - should be fixed in the latest commit

@smuzaffar
Copy link
Contributor

@goblirsc , couple of files also need relocation ( see https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/external_checks/relocate/ ). so please update the specs to relocate these too

@@ -0,0 +1,25 @@
### RPM external mille V01-00-00
## INCLUDE cpp-standard
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , if we do not want to override the c++ standard for mille then there is no need to have this line. The above line only sets the default c++std for cms software stack and packages which are sensitive to c++std can make use of it. So if you need to build mille for default cms c++std then keep this line but then also add -DCMAKE_CXX_STANDARD=%{cms_cxx_standard} to cmake

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, now passing the cms_cxx_standard to CMake

@cmsbuild
Copy link
Contributor

Pull request #10310 was updated.

@smuzaffar
Copy link
Contributor

please test with cms-sw/cmssw#49963

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51007/summary.html
COMMIT: a2e3f4b
CMSSW: CMSSW_16_1_X_2026-01-29-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/10310/51007/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51007/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51007/git-merge-result

Comparison Summary

Summary:

  • You potentially added 2 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 52
  • DQMHistoTests: Total histograms compared: 4028546
  • DQMHistoTests: Total failures: 73
  • DQMHistoTests: Total nulls: 697
  • DQMHistoTests: Total successes: 4027756
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 1.792 KiB( 51 files compared)
  • DQMHistoSizes: changed ( 34434.0,... ): 0.448 KiB TrackerPhase2OTL1TrackV/trackParticles
  • Checked 222 log files, 193 edm output root files, 52 DQM output files
  • TriggerResults: no differences found

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants