Skip to content

[SYSTEMDS-2889] Add initial lineage debugger for CP instructions#1286

Closed
bnyra wants to merge 3 commits intoapache:masterfrom
bnyra:SYSTEMDS-2889
Closed

[SYSTEMDS-2889] Add initial lineage debugger for CP instructions#1286
bnyra wants to merge 3 commits intoapache:masterfrom
bnyra:SYSTEMDS-2889

Conversation

@bnyra
Copy link
Copy Markdown
Contributor

@bnyra bnyra commented May 27, 2021

This patch adds a lineage based debugger which keeps track of special values in matrixblocks in CP instructions.

Therefore, the following design decisions are made and implemented:

  • LINEAGE_DEBUGGER flag as DMLScript option to enable the debugger (default: false)
  • Added class BooleanArray32 for storing boolean information in an memory efficient way
  • This class is used as an attribute _specialValueBits in LineageItem to store the special value information
  • Check of special values is done in the postprocessInstruction()
  • Added serialization and deserialization of _specialValueBits with surrounding brackets
  • Added helper function to find the first occurrence of a special value given a LineageItem.

Additional info:

  • Only CP instructions are supported
  • Debugger keeps track of Double.NaN, Double.POSITIVE_INFINITY and Double.NEGATIVE_INFINITY
  • Fixed missing default post-process call in CPInstruction and GPUInstruction

This patch adds a lineage based debugger which keeps track of special values in matrixblocks in CP instructions.
@bnyra bnyra marked this pull request as draft May 27, 2021 10:32
Check LINEAGE_DEBUGGER for explain lineage item
@bnyra bnyra marked this pull request as ready for review May 27, 2021 19:06
@phaniarnab phaniarnab closed this in fd4b0d0 Jun 2, 2021
@phaniarnab
Copy link
Copy Markdown
Contributor

Thanks for the patch @bnyra. Before merging, I moved the debugging-related maintenance from Instruction to CPInstruction as calling acquireRead can be problematic for federated and GPU instructions, and removed serialization of the debug byte if debugger is disabled.

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.

2 participants