Build omc with the cores the node has, not with 16 and 9 - #328
Merged
Conversation
The build commands carry the machines they were written for. -j9 is the machine this file was written for in 2019; -j16 came in 2021 with "Build OMC with a few more threads", which raised every -j9 in the file to 16 - except the one it was named after, `make -j9 omc`, which is still there. So the omc build has been using nine of the sixteen cores of a ryzen-5950x for four years, and a new machine is built on as if it were one of those. The node is asked instead, the way the OpenModelica job asks (numPhysicalCPU in .CI/common.groovy there): physical cores for the compiles, which is what -j16 already was on these machines, and logical ones for the reference files, which is the split that job uses. Unlike that one the answer is not stashed in the environment - this pipeline is agent none and its stages run on several machines within one build, so the cached answer would be the first node's - while an override set on the node itself is honoured. The count is asked for once per run and echoed with the node name, so a build says what it built with. --- Generated by Claude Code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The build commands carry the machines they were written for:
-j9is the machine this file was written for in 2019 (836da12, "Add aJenkinsfile for ripper", where everything was
-j9).-j16arrived in 2021 with26bdeae, "Build OMC with a few more threads", which raised every-j9inthe file to 16 - except the one it was named after:
make -j9 omcis untouched by that commit and has been building omc on nine ofthe sixteen cores of a
ryzen-5950xever since. It is not a memory limit anyonechose; it is the number the file was born with.
What changes
The node is asked, the way the OpenModelica job asks -
numPhysicalCPUin.CI/common.groovythere, samelscpuincantation, sameJENKINS_NUM_PHYSICAL_CPUoverride:clean,omc,runtimeCPPinstall, thecmake build) - which is what
-j16already was on these machines, so the onlychange there is the omc build going from 9 to 16. That is also what the
OpenModelica job builds omc with on the same class of machine;
testsuite/ReferenceFiles, which is the split that jobuses for exactly that target.
Unlike
common.groovythe answer is not stashed in the environment: thispipeline is
agent noneand its stages run onryzen-5950x-1,ryzen-5950x-2-1,ryzen-9950xandlinuxwithin one build, so a cached answerwould be whichever node asked first. An override set on the node itself is still
honoured. The count is asked for once per run and echoed with the node name, so a
build says what it built with:
One thing worth a second look
runRegressiontestalready has a parameter calledjobs- how many modelstest.pytests at a time, whichheavy_testssets to1- so the new variableis
buildJobs. Calling itjobswould have shadowed the parameter and letheavy_testsloose with sixteen models at once.Generated by Claude Code.