  We present the Analytical Memory Model with Pipelines (AMMP) of the
Performance Prediction Toolkit (PPT). PPT-AMMP takes high-level source code and
hardware architecture parameters as input, predicts runtime of that code on the
target hardware platform, which is defined in the input parameters. PPT-AMMP
transforms the code to an (architecture-independent) intermediate
representation, then (i) analyzes the basic block structure of the code, (ii)
processes architecture-independent virtual memory access patterns that it uses
to build memory reuse distance distribution models for each basic block, (iii)
runs detailed basic-block level simulations to determine hardware pipeline
usage.
  PPT-AMMP uses machine learning and regression techniques to build the
prediction models based on small instances of the input code, then integrates
into a higher-order discrete-event simulation model of PPT running on Simian
PDES engine. We validate PPT-AMMP on four standard computational physics
benchmarks, finally present a use case of hardware parameter sensitivity
analysis to identify bottleneck hardware resources on different code inputs. We
further extend PPT-AMMP to predict the performance of scientific application
(radiation transport), SNAP. We analyze the application of multi-variate
regression models that accurately predict the reuse profiles and the basic
block counts. The predicted runtimes of SNAP when compared to that of actual
times are accurate.
