[isabelle-dev] Multicore performance preview

Makarius makarius at sketis.net
Tue Oct 21 20:09:53 CEST 2008


Here are some numbers of the next stage of parallelism in Isabelle, where 
both the theory graph structure and the inherent irrelevance of proofs is 
taken into account.  The hardware is a Mac Pro with 4 cores (i.e. 2 plain 
old dual-core Xeons); times are for isabelle usedir -M 4 vs. -M 1 in 
alternating lines:

Finished HOL (0:03:30 elapsed time, 0:06:17 cpu time, factor 1.79)
Finished HOL (0:05:05 elapsed time, 0:05:04 cpu time, factor 0.99)
Finished HOL-Algebra (0:01:36 elapsed time, 0:03:09 cpu time, factor 1.96)
Finished HOL-Algebra (0:02:46 elapsed time, 0:02:44 cpu time, factor 0.98)
Finished HOL-Auth (0:02:11 elapsed time, 0:06:44 cpu time, factor 3.08)
Finished HOL-Auth (0:06:08 elapsed time, 0:06:08 cpu time, factor 1.00)
Finished HOL-Bali (0:02:31 elapsed time, 0:04:12 cpu time, factor 1.66)
Finished HOL-Bali (0:03:39 elapsed time, 0:03:46 cpu time, factor 1.03)
Finished HOL-HoareParallel (0:01:35 elapsed time, 0:04:15 cpu time, factor 2.68)
Finished HOL-HoareParallel (0:03:56 elapsed time, 0:03:57 cpu time, factor 1.00)
Finished HOL-Library (0:01:10 elapsed time, 0:02:55 cpu time, factor 2.50)
Finished HOL-Library (0:02:25 elapsed time, 0:02:29 cpu time, factor 1.02)
Finished HOL-Main (0:01:52 elapsed time, 0:03:10 cpu time, factor 1.69)
Finished HOL-Main (0:02:34 elapsed time, 0:02:34 cpu time, factor 1.00)
Finished HOL-MetisExamples (0:00:17 elapsed time, 0:00:42 cpu time, factor 2.47)
Finished HOL-MetisExamples (0:00:36 elapsed time, 0:00:35 cpu time, factor 0.97)
Finished HOL-MicroJava (0:02:09 elapsed time, 0:05:18 cpu time, factor 2.46)
Finished HOL-MicroJava (0:04:52 elapsed time, 0:04:54 cpu time, factor 1.00)
Finished HOL-Nominal (0:00:21 elapsed time, 0:00:26 cpu time, factor 1.23)
Finished HOL-Nominal (0:00:24 elapsed time, 0:00:22 cpu time, factor 0.91)
Finished HOL-Nominal-Examples (0:05:25 elapsed time, 0:13:42 cpu time, factor 2.52)
Finished HOL-Nominal-Examples (0:11:39 elapsed time, 0:12:31 cpu time, factor 1.07)
Finished HOL-Plain (0:00:53 elapsed time, 0:01:24 cpu time, factor 1.58)
Finished HOL-Plain (0:01:09 elapsed time, 0:01:07 cpu time, factor 0.97)
Finished HOL-SET-Protocol (0:00:51 elapsed time, 0:02:07 cpu time, factor 2.49)
Finished HOL-SET-Protocol (0:01:58 elapsed time, 0:01:58 cpu time, factor 1.00)
Finished HOL-UNITY (0:01:17 elapsed time, 0:02:29 cpu time, factor 1.93)
Finished HOL-UNITY (0:02:11 elapsed time, 0:02:09 cpu time, factor 0.98)
...
0:37:28 elapsed time, 1:17:00 cpu time, factor 2.05
1:06:14 elapsed time, 1:07:10 cpu time, factor 1.01

In order to try it yourself you need to enable the future_scheduler option 
in src/Pure/Concurrent/ROOT.ML; those with 8 core Macs should get slightly 
better numbers.  Does anybody have 12 or 16 cores around?

You will need the latest Poly/ML 5.2.1 version to prevent a strange GC 
deadlock problem in 5.1/5.2.

Apart from that the main reason why the new scheduler is still inactive by 
default are a couple of legacy features in Isabelle/HOL packages. The 
struggle to get rid of legacy stuff will continue ...


	Makarius



More information about the isabelle-dev mailing list