Single-Property, Multi-Engine Distribution
IFV now supports running multiple engines in parallel to prove assertions. You can take advantage of multi-core/multi-CPU machines to maximize performance and reduce proof runtimes. There is no need to experiment with engines and no need for multiple IFV runs with different engines. You now can run all available engines in parallel.
You can enable this capability by simply supplying a list of engines to the define engine command. Three engines (sword, axe and bow) are now supported in distribution. More engines will become available in subsequent IFV releases.
# Select 3 engines to run in parallel
define engine sword axe bow
# Select 2 engines to run in parallel
define engine sword axe
Note the following regarding distribution:
Originally posted in cdnusers.org by jb
- If more engines than available cpus are specified on a resource, IFV will generate an error and ignore the engine setting. Users can override this by the cpu_sharing on setting:
# Enable more engines to run than available cpus on a machine
define cpu_sharing on
- When submitting jobs via LSF, remember to reserve appropriate number of cpus for the job. Please consult your IT professional on specific instructions for requesting appropriate number of free cpus to run IFV on a single machine.
In general you need to specify the –n option (requests specified free cpu resources) to bsub and specify span[hosts=1] (keeps the cpu reservation on the same machine) in the resource specification (-R argument).
- At this time no_deadlock FSM checks are not supported in distribution. You will need to define a single engine if you chose to run no_deadlock FSM checks.