next up previous index
Next: Ptags Up: Libraries Previous: The Mode Analyser

Parallel Utilities

 

This library contains parallel versions of common sequential predicates. It is loaded using

:- lib(par_util).
and it currently contains the following predicates:

par_member(?Element, +List)

  Parallel version of member/2, i.e. selects elements from the given list in parallel. Note that it cannot work backwards and generate lists like member/2 can, the list must be a proper list.

par_delete(?Element, ?List, ?Rest)

  Parallel version of delete/3.

par_between(+From, +To, ?I)

  Parallel version of between/3. Generates integers between From and To in parallel. See also fork/2, on which it is based.

par_maplist(+Pred, +In, ?Out)

  Parallel version of maplist/3. The semantics is not exactly the same as maplist/3: It does not work backwards and it does not cope with aliasing between the In and the Out list, since it is implemented on top of findall/3. There will only be a performance gain if the mapping predicate does enough computation to make the overhead pay off.

Goal1 & Goal2

  Parallel AND operator implemented on top of OR-parallelism. This will only pay off for sufficiently coarse-grained computations in Goal1 and Goal2.



next up previous index
Next: Ptags Up: Libraries Previous: The Mode Analyser



Micha Meier
Mon Mar 4 12:11:45 MET 1996