[m-users.] Parallel Mercury
edu500ac at gmail.com
Tue Nov 29 08:03:29 AEDT 2016
Well, I discovered the problem. I need to compile the program with:
mmc --parallel -j4 --grade=asm_fast.par.gc fibgc.m -o fib.x
Now, Mercury goes faster than C, as before. Thank you, anyway.
2016-11-28 18:03 GMT-02:00 Eduardo Costa <edu500ac at gmail.com>:
> A few years ago, I tested Mercury for parallel programming. It worked very
> well. In fact, with 8 CPUs, Mercury could beat a C program. Recently, I
> tested the very same programs again, but this time Mercury refused to
> parallelize the process. Gnome System Monitor shows a single CPU doing all
> the work. Here is the program I borrowed from Paul Bone's thesis:
> :- module fibgc.
> :- interface.
> :- import_module io.
> :- pred main(io::di, io::uo) is det.
> :- implementation.
> :- import_module float,integer.
> :- import_module solutions, io, int.
> :- import_module string, char, list.
> :- func fib(int, int) = int.
> fib(N, Depth)= F :-
> ( N<2 -> F=1
> (Depth > 0 ->
> ( F1= fib(N-1, Depth - 1)
> F2= fib(N-2, Depth-1) & F= F1+F2)
> F1= fib(N-1, 0), F2= fib(N-2,0), F= F1+F2)).
> main(!S) :- command_line_arguments(Args, !S),
> ( to_int(head(Args), N),
> to_int(head(tail(Args)), D) ->
> F= fib(N, D),
> print(F, !S)
> print("Usage: ./fibo.x 5", !S)),
> %% ~/mercuryTutor/mybook$ mmc --parallel \
> %% --high-level-code -j8 \
> %% --grade=hlc.par.gc fibgc.m -o fib.x
> I wonder whether somebody in this list could tell me what is going on. By
> the way, I tried the above program with NAIL Prolog, and it is able to
> perform the parallelization. I mean, NAIL Prolog does the parallelization,
> not Mercury.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the users