I cannot add anything to explanations why CIAO (or GNU-Prolog) would be 40 to 200 times slower than Mercury, but first of all, according to the authors of Mercury (Zoltan Somogyi in the first place) the speed of Mercury comes from modes first, then types, then determinism. Next, being in the business of implementing a fast Prolog system myself, I am very (no, VERY, VERY, VERY) much interested in your program, because it might teach us - Prolog implementors - something real important. If you would be willing to make your application (as it runs in GNU and/or CIAO) available, I will be most grateful. This is not just academic interest: I am working on a Prolog like backend for HAL (a Mercury like language, but with a real logical variable - and other goodies which are not so important probably because you have your application running in plain Mercury). This backend (hProlog) is a bit speedier than its equals, but not by a factor of 40 to 200. Still, we have a project going on for using (declared or inferred) information in the emulator and a native code backend (we'll skip C :-). Just to tell you I am really interested.
An afterthought: a factor 40 to 200 seems weird, because Mercury reports usually contain a factor of 10 comparing with SICStus native code. Knowing the ratio (SISCtus native code/emulator) I find a factor 200 really interestingly high and once more, please can we get the programs with which you tested this ?
Cheers
Bart Demoen
ps. someone wrote
maybe determinism (or, better, the lack of it) might be the culprit: some cuts properly placed, and using indexing on the first argument, might help
unfortunately this is true, but also this I can find out relatively easily, because I am also involved in a Prolog system that does better than first argument indexing (ilProlog; not open source to everyone unfortunately, but I can use it for finding out stuff) ============================================================================== Message: Address: Action: help majordomo(a)clip.dia.fi.upm.es Info. on useful commands subscribe ciao-users-request(a)clip.dia.fi.upm.es Subscribe to this list unsubscribe ciao-users-request(a)clip.dia.fi.upm.es Unsubscribe from this list <whatever> ciao-users(a)clip.dia.fi.upm.es Send message to list ----------------------------------------------------------------------------- Archived messages: http://www.clip.dia.fi.upm.es/Mail/ciao-users/ -----------------------------------------------------------------------------