This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/threads/sorting/SCRIPT.txt
pmoura 42aabce1bb Logtalk 2.30.7 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1973 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2007-11-06 01:50:09 +00:00

84 lines
3.3 KiB
Plaintext

================================================================
Logtalk - Open source object-oriented logic programming language
Release 2.30.7
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
================================================================
% start by loading the example and the required library files:
| ?- logtalk_load(sorting(loader)).
...
% NOTE: the example queries below use a SWI-Prolog proprietary predicate
% time/1 in order to get accurate goal times. For other Prolog compilers,
% replace the time/1 call by any appropriate timing calls (e.g. cputime/0).
% generate a big list of random floats and then merge sort it using a single thread:
?- generator::list(20000, List), time(msort(1)::msort(List, Sorted)).
% 1,145,746 inferences, 0.40 CPU in 0.43 seconds (93% CPU, 2864365 Lips)
List = [0.326219, 0.545052, 0.21687, 0.0500493, 0.772745, 0.805005, 0.574483, 0.301708, 0.670021|...],
Sorted = [1.39358e-06, 0.000206126, 0.00026088, 0.000299165, 0.000362691, 0.000397709, 0.000539889, 0.000574419, 0.000578717|...]
Yes
% generate a big list of random floats and then merge sort it using two threads:
?- generator::list(20000, List), time(msort(2)::msort(List, Sorted)).
% 80,067 inferences, 0.32 CPU in 0.21 seconds (150% CPU, 250209 Lips)
List = [0.963245, 0.666814, 0.3841, 0.281952, 0.806571, 0.608224, 0.623344, 0.138888, 0.867367|...],
Sorted = [5.89827e-05, 0.00010463, 0.000105771, 0.000171936, 0.00022632, 0.000378509, 0.000392918, 0.00041885, 0.000482844|...]
Yes
% generate a big list of random floats and then merge sort it using four threads:
?- generator::list(20000, List), time(msort(4)::msort(List, Sorted)).
% 80,079 inferences, 0.32 CPU in 0.16 seconds (204% CPU, 250247 Lips)
List = [0.0923009, 0.443585, 0.72304, 0.945816, 0.501491, 0.311327, 0.597448, 0.915656, 0.666957|...],
Sorted = [3.65916e-05, 4.06822e-05, 5.07434e-05, 6.09007e-05, 0.000134275, 0.000190491, 0.00024128, 0.000361441, 0.000412926|...]
Yes
% generate a big list of random floats and then quick sort it using a single thread:
?- generator::list(20000, List), time(qsort(1)::qsort(List, Sorted)).
% 1,145,746 inferences, 0.40 CPU in 0.43 seconds (93% CPU, 2864365 Lips)
List = [0.326219, 0.545052, 0.21687, 0.0500493, 0.772745, 0.805005, 0.574483, 0.301708, 0.670021|...],
Sorted = [1.39358e-06, 0.000206126, 0.00026088, 0.000299165, 0.000362691, 0.000397709, 0.000539889, 0.000574419, 0.000578717|...]
Yes
% generate a big list of random floats and then quick sort it using two threads:
?- generator::list(20000, List), time(qsort(2)::qsort(List, Sorted)).
% 80,067 inferences, 0.32 CPU in 0.21 seconds (150% CPU, 250209 Lips)
List = [0.963245, 0.666814, 0.3841, 0.281952, 0.806571, 0.608224, 0.623344, 0.138888, 0.867367|...],
Sorted = [5.89827e-05, 0.00010463, 0.000105771, 0.000171936, 0.00022632, 0.000378509, 0.000392918, 0.00041885, 0.000482844|...]
Yes
% generate a big list of random floats and then quick sort it using four threads:
?- generator::list(20000, List), time(qsort(4)::qsort(List, Sorted)).
% 80,079 inferences, 0.32 CPU in 0.16 seconds (204% CPU, 250247 Lips)
List = [0.0923009, 0.443585, 0.72304, 0.945816, 0.501491, 0.311327, 0.597448, 0.915656, 0.666957|...],
Sorted = [3.65916e-05, 4.06822e-05, 5.07434e-05, 6.09007e-05, 0.000134275, 0.000190491, 0.00024128, 0.000361441, 0.000412926|...]
Yes