This project, code named zDolphin, aims to
pinpoint hazardous instruction sequences in System z assembler code. These
instruction sequences are hazardous in the sense that they can cause pipeline
stalls (e.g. Address Generation Interlocks (AGI)) and significantly impact
system performance in ways that may have been invisible to software developers
in the past.
By thinking in terms of using cycles rather than instructions, developers may be
able to reduce overall execution time once they are aware of the cycle time
tradeoffs they can make. zDolphin uses a combination of human domain knowledge
and machine learning techniques to build a rule-based expert system that models
pipeline-disrupting instruction sequences.
Current Status
zDolphin now exists as a development tool in the form of a Eclipse plug-in and is being shipped
to hundreds of IBM zSeries mainframeoperating system
(z/OS) developers to
help them produce more efficient code.
A corresponding patent application has been
filed with the US patent office:
Rui Zhang, Steve Heisig and Joshua Knight. A method
for generating and applying a model to predict hardware performance hazards
in a machine instruction sequence. Filed, August 2007.