MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A concurrent, generational garbage collector for a multithreaded implementation of ML
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Metalanguage for interactive proof in LCF
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Exploiting Parallelism in Interactive Theorem Provers
Proceedings of the 11th International Conference on Theorem Proving in Higher Order Logics
Adding parallelism capabilities to ACL2
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
Runtime support for multicore Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Efficient parallel programming in Poly/ML and Isabelle/ML
Proceedings of the 5th ACM SIGPLAN workshop on Declarative aspects of multicore programming
Program extraction in simply-typed higher order logic
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
The Seventeen Provers of the World
The Seventeen Provers of the World
Isabelle/jEdit: a prover IDE within the PIDE framework
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Hi-index | 0.00 |
We address the multicore problem for interactive theorem proving, notably for Isabelle. The stagnation of CPU clock frequency since 2005 means that hardware manufactures multiply cores to keep up with "Moore's Law", but this imposes the burden of explicit parallelism to application developers. To cope with this trend, Isabelle has started to support parallel theory and proof processing in 2007, and continuously improved the use of multicore hardware in recent years. This is of practical relevance to theory and proof development, since their size and complexity is roughly correlated with the real time required for re-checking. Scaling up the prover on parallel hardware will facilitate maintenance of larger theory libraries, for example. Our approach to parallel processing in Isabelle is mostly implicit, without user intervention. The system is able to exploit the inherent problem-structure of LCF-style proof checking, although it requires substantial reforms of the prover architecture and its implementation. Thus the user gains significant speedup factors on typical commodity hardware with 2---32 cores; saturation of 8 cores is already routine in many applications. The present paper provides an overview of the current state of shared-memory multiprocessing in Isabelle2013, which also benefits from recent improvements of parallel memory management in Poly/ML (by David Matthews). We discuss common requirements, problems, and solutions. Concrete performance figures are analyzed for some applications from the Isabelle distribution and the Archive of Formal Proofs (AFP).