# Porting the SWI-Prolog benchmark suite: comparing 8 Prolog systems

**URL:** <https://swi-prolog.discourse.group/t/porting-the-swi-prolog-benchmark-suite-comparing-8-prolog-systems/6997>\
**Category:** Nice to know\
**Tags:** benchmark, performance, comparison\
**Created:** [November 24, 2023, 3:45pm UTC](https://swi-prolog.discourse.group/t/porting-the-swi-prolog-benchmark-suite-comparing-8-prolog-systems/6997 "2023-11-24T15:45:59Z")\
**Posts on this page:** 1\
**Showing post:** 31

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [November 28, 2023, 11:24am UTC](https://swi-prolog.discourse.group/t/porting-the-swi-prolog-benchmark-suite-comparing-8-prolog-systems/6997/31 "2023-11-28T11:24:30Z")

</div>

Thanks for the input. So, here is take 2:

- Updated the “dummy” loop timing as contributed by @jfmc
- Fixed queens\_clpfd.pl. The old code posted the constraints, but did not solve them. There is something weird going on in SICStus here. SICStus is surely much faster in clp(fd) in general. I asked for a response, so this may get updated with either an explanation or a fix.
- Some driver updates, notably an option to regenerate the charts in different combinations without rerunning the benchmarks.

## Some classic systems

 ![classics](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/2X/2/24886016cb14cfc6fde0ffd203339291b2192abf.svg)

- Updated Ciao Prolog to 1.22.0
- Updated Ciao chart to include @jfmc’s improved loop.

## The “modern” systems vs. SWI-Prolog

 ![modern](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/2X/d/dbc4ff1bdf597cfa6516c024b69a6441716fcdc9.svg)

- Updated Scryer Prolog to 0.9.3. They made serious progress. Congrats! The queens\_clpfd.pl and the sieve.pl benchmarks have been added. The ISO predicates number/1 and retractall/1 have been added. I had to made more changes to to get the code loaded. Creating a module with the programs and some support predicates somehow did not work anymore (predicates became invisible). Loading a file `programs.pl` from directory holding a subdirectory `programs` silently loaded nothing until I added the `.pl` suffix. The `sieve` bar is cut at 20, but the actual value is 359.

I will add a pointer to these results in the original post.

---

_[View the full topic](https://swi-prolog.discourse.group/t/porting-the-swi-prolog-benchmark-suite-comparing-8-prolog-systems/6997)._
