/para-artifact

Primary LanguageCommon Lisp

Installing dependecies

You should have a working Common Lisp environment, this includes SBCL and Quicklisp, and preferably Emacs and SLIME.

Clone this repo under ~/quicklisp/local-projects/ and in you Lisp REPL, (ql:quickload "para").

Using the System

In Lisp REPL, for example:

CL-USER> (in-package "PRF-USER")
PRF-USER> (solve-problem 'nat-sum (nth 0 (gethash 'nat-sum *examples*)))

You’re free to use your own example set (see format of (nth 0 (gethash 'nat-sum *examples*)) for an example), and define new problems (see benchmark.lisp for examples).

Run the experiments

The following commands use the included data files to generate LaTeX code and write to standard output stream:

  • Rows for Table 1. and 2., separated by a blank line:
sbcl --load "experiments.lisp" --eval "(prf::report)"
  • Fig. 11.:
sbcl --load "experiments.lisp" --eval "(prf::report-bar)"

The following commands generate the data files:

sbcl --load "experiments.lisp" --eval "(prf::generate-data)" --dynamic-space-size 24000 --control-stack-size 2
sbcl --load "experiments.lisp" --eval "(prf::generate-data-bfs)" --dynamic-space-size 24000 --control-stack-size 2
sbcl --load "experiments.lisp" --eval "(prf::generate-data-serial)" --dynamic-space-size 24000 --control-stack-size 2
sbcl --load "experiments.lisp" --eval "(prf/l2::generate-data)"
sbcl --load "experiments.lisp" --eval "(prf/smyth::generate-data)"