Implementation costs linked to processor memory subsystems (cache miss costs, stalls due to bandwidth limits, etc.) have been shown to be a factor in the performance of a variety of declarative programming tools. This article investigates their impact on answer set solvers and the factors that control them. Experiments independently altering the size and difficulty of input programs allow a qualitative assessment of whether input program or solver design is a greater factor and a quantitative assessment of how much of problem these issues create.A variety of processor performance metrics are recorded and used to provide a detailed picture of what limits solver performance and dispel a number of common misapprehensions.To demonstrate the degree to which these problems can be addressed, smodels-ie is presented. This is a version of the smodels solver with a number of implementation changes to improve cache utilisation, one major aspect of memory costs.

You do not currently have access to this article.