Skip to content

Hpe to upstream#57

Open
johnlvogt wants to merge 90 commits into
llnl:developfrom
johnlvogt:hpe_to_upstream
Open

Hpe to upstream#57
johnlvogt wants to merge 90 commits into
llnl:developfrom
johnlvogt:hpe_to_upstream

Conversation

@johnlvogt

Copy link
Copy Markdown
Contributor

This branch tries to reduce the differences between the HPE line of development and the LLNL line to a minimum. There are broader changes in STAT_Frontend.C which were more than I'd like but the bulk of the changes are shunted into STAT_ctiFrontend.C and STAT_ctiBackend.C which would just not be built at all for an lmon based environment.

I can't verify that the changes haven't broken the lmon version, but some case was taken

kglaser and others added 30 commits June 9, 2020 21:32
Author: kglaser
Description: pulled in the patch, fixed patch rejects as necessary,
and excluded any of our mods to support tbb.

Fixed syntax error
…387 to v4.0.2_hpe

* commit '277b80efd4fd19b35fb1dc474cbb1ec988a3cd88':
  Subject: Pulled in cray/hpe patch Author: kglaser Description: pulled in the patch, fixed patch rejects as necessary, and excluded any of our mods to support tbb.
…s to key off CRAYXT, adjust gdb PATH, remove temporary debugging code
…23 to v4.0.2_hpe

* commit '75f06180462019ed7e18e0d960359404c39163d3':
  Added CFLAGS var
  Updated to build with CTI pkgconfig libdir path
…2_hpe

* commit '210b29a6b629e78c72d7ec177d724ed390071bf2':
  replace CRAYXT with --with-cti in configuration
  last minute tidying: change initLmon to initLauncher, set up factories to key off CRAYXT, adjust gdb PATH, remove temporary debugging code
  clean up code
  version working with gdb back-end; lots of debugging statements
  add support for launching the application with cti
  clean up and document
  version working with attach but with a lot of debug statements
  hard-wire factory to create cti front and back end
  add cti implementation for backend
  initial cti front end code
  move the cti dependencies in the lmon implementation into STAT_lmonFrontEnd
  fix missing initialization for proctabSize_
  make python wrapper use factory method STAT_FrontEnd::make
  refactor launchmon dependencies in backend into separate class
  factor launchmon dependencies into a sub-class of STAT_Frontend
…35 to v4.0.2_hpe

* commit '7a22a8ee996c03b25e196c365cdde1078be0bd33':
  remove print statement
…68 to v4.0.2_hpe

* commit '9dc9f0226936994c22618dc3a2adf9cc2abb27b9':
  remove debugging code
…868 to v4.0.2_hpe

* commit '6c91b821b6169bbeca8cc735f21c5ec5e8b802a5':
  undo special debug logging
  connect rocgdb backend
  add roc_gdb support and fix some initial problems
Andrew D'Angelo and others added 27 commits August 6, 2024 16:27
pare down the boost checks to not look for unused boost libraries
The "info thread" command is replaced with "-thread-info" command. For
this purpose, now gdb-oneapi script have a dependency on an open source
python module "pygdbmi". This module provides the interface to parse the
"-thread-info" MI Command response using its "gdbmiparser" function. The
SIMD lane information is then extracted from it using the exectution_mask
and simd_width info available for each thread. Also the test file
oneapi_gdb_test.py is updated to test this change.

Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>
* Improvement in getting threads list for the gdb-oneapi support

Replaced the MI command "-thread-info" with "thread apply" for retrieving
the thread list.  The previous MI command output could grow excessively
large, making it inefficient for the readlines function to process.  Now
after this change the output of "thread apply" command is only a list
of threads and will take less time in readlines function.

The test file oneapi_gdb_test.py has been updated to test these changes.

Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>

* Improvements in getting backtrace for the gdb-oneapi support

The backtrace command now uses the "with print frame-arguments none --"
option to enhance performance, as frame argument details are unnecessary
for the STAT tool.

Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>

* Remove STAT_COLLECT_SIMD_BT from gdb-oneapi support

The "STAT_COLLECT_SIMD_BT" option in gdb-oneapi STAT support is used to add
lane information in thread id.  So, using this environment increases the
STAT capture time due to sequential calls per lane of a thread for the
collection of the call stack.  It is removed in this change because the
function call stacks collected for lanes are identical , except for
function argument values, which are not taken into consideration by STAT
anyway.

Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>

---------

Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>
Improvements to gdb-oneapi support (llnl#53)
@lee218llnl

Copy link
Copy Markdown
Collaborator

This is going to take me a bit to look at and test. I know this is nit picky, but can you change the {} bracket usage to match the rest of the code, i.e., instead of:

if {
blah
}

please do

if
{
blah
}

@johnlvogt

Copy link
Copy Markdown
Contributor Author

I'm most concerned about the changes in STAT_FE.C. The bulk of the code changes are in the STAT_cti... files, which aren't even built for the lmon version, but there are the basic differences in the table process table layout so I had to resort to fiddling around the base class more than I would have liked.

On this branch I've already tossed out most of my changes in favor of the upstream edition. The irreducible bits were the CTI/lmon differences and some stuff in the build and run scripts where I at least tried to adapt them to something less intrusive. Especially with the ...in files it was hard to tell which environment variables actually still matter.

I should really break this into about three PR's - and maybe they don't all make it into develop - but I think this one's useful to get the whole picture.

@lee218llnl

Copy link
Copy Markdown
Collaborator

My initial testing passed for slurm and flux. I will have to look more closely since you touched a lot of files. One big PR is fine with me and merging to develop is fine since it's all the end goal to get it all in there anyway. I can also trigger a new release once it's all in there, unless you have something else you want to get in there.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants