I am a second year PhD candidate in EECS department, working with Prof.
Robert Brayton. My research interest in synergy between synthesis and
verification.
I came from China with BS degree in Computer Science and got M.S. in
Computer Science Univ of Texas at Austin.
From this class, I would like to learn the state-of-art parallel paradigm on various
applications, especially at the MPI and PThread level. The application I
am interested in is EDA algorithms which were memory/performance
driven application, very specialized and optimized for capacity. Multi-cores
and computer farms open door for further gain in performance, however
the difficulty is to partition the original problem to take advantage the
extra CPU resources now available, to devise scalable and efficient parallel
version of the original algorithms, maintaining robustness and stability.
I am an experienced C/C++ programmer, have some experience programming
parallel application using PThreads.
Satisfiability solving has been studied for the last twenty years. Advances have been made achieving order of magnitude of improvement, allowing SAT solvers to be used on many applications including formal verification of digital designs. However, performance and capacity of SAT solving are still very limited. With the advances of multi-core, multi-cpu and computer farms, efforts have been made to parallelize SAT solving utilizing the available resources, to expedite the performance of SAT solvers.
The procedure in Figure 1 gives a generic procedure of modern SAT solves based on DPLL. The major component are the following:
The following are the key aspects that effects SAT solver performance:
Recent effort on parallelizing SAT solvers has not been successful. During a SAT run, SAT solver generates learned clauses to prune future search space. With multiple instance of SAT solvers running at the same time, it is desirable to share clauses between solvers. This has been the focus of recent parallel solvers. However, it is rather difficult to share clauses because of the following:
For the above reasons, parallelizing SAT solvers has not been successful at all.
To achieve effective parallelization of SAT solvers the following are considered key given current research results: