CiaoPP modular program benchmark driver

Author(s): Isabel Garcia-Contreras.

Run the benchmark of modular analysis with incremental modular analysis.

How to use it:

  1. Compile the command ciaoc incanal_intermod_bench_driver.
  2. Execute ./incanal_intermod_bench_driver <bench_dir_name> <add/del> <#changes/iteration> <domain> Opts.
  3. Example (with no options):

    ./incanal_intermod_bench_driver qsort add 1 gr

    will perform a test of adding clauses 1 by 1 in the files of benchmark qsort with a monolithic analysis of groundness.

    Options can refer to:

    • Configurations of CiaoPP.
    • Benchmark edition simulation options.

Supported configurations of CiaoPP

The following configurations are working, monospace words are the ones used to specify the option to the program in any order. If no options are specified, the default configuration is selected.

  • Fixpoints
    • plai (non incremental)
    • dd (default)
    • di (non incremental)

  • Modularity
    • monolithic
    • modular (default)

  • Incremental (incremental)
    • Adding
    • Deleting (Options: top_down (default), bottom_up)

Edition simulation options

Grouping (--group <Opt>)

Not implemented yet!
  • clause (default): Clause (default), add in groups of clauses of size #changes/iteration.
  • pred: Predicate, add in groups of predicates of size #changes/iteration.

Editing module by module (--one_mod <Opt>)

This option controls whether to add/delete clauses in a module until it is complete/empty before switching to another module.

  • yes: do not edit other modules until a module is finished (empty or complete).
  • no: perform editions in all modules.

Order of sequence

  • Ordered (default) (following the rules of the sequence configuration).
  • Random (--rand <Seed>) option and first argument as the seed.

Limiting the sequence

Sequences can be limited in the beginning (do not start from an empty/full program) and to a number of steps (i.e., performing only a number of changes).

This is controled with option --start N and --steps M, by default, these are absolute (--seq_sz abs) numbers, (different for each of the benchmarks). To express N and M in % of the size of the program the option sequence sizes relative --seq_sz rel has to be specified.

For example:

./incanal_intermod_bench_driver hanoi add 2 shfr --rand 2132 --start 20 --steps 80 --seq_sz rel

Will simulate editing the program hanoi starting from a random program containing 20% of the clauses and adding clauses (randomly) 2 by 2 until the program contains 80% of the original program clauses.

Parts of this manual