Re: native threads

Taoufik Dachraoui <[email protected]> Fri, 5 Jan 2024 15:28:45 +0100
Newsgroups gmane.lisp.openmcl.devel
Message-ID <CA+2r5MHWO+dkDzWOq91P8tTZhnB3w58dYKBzXmzp9XWa_Pnj7w@mail.gmail.com>
It looks like it is not because of the threads:

taoufik@Ankbot:~/workspace/ccl/actor$ sbcl
This is SBCL 2.3.11, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (time (reduce #'+ (loop for i from 0 upto 100000000 collect i)))
Evaluation took:
  1.836 seconds of real time
  1.835223 seconds of total run time (1.351394 user, 0.483829 system)
  [ Real times consist of 1.184 seconds GC time, and 0.652 seconds non-GC
time. ]
  [ Run times consist of 1.184 seconds GC time, and 0.652 seconds non-GC
time. ]
  99.95% CPU
  3,876,850,246 processor cycles
  1,600,427,200 bytes consed

5000000050000000
* taoufik@Ankbot:~/workspace/ccl/actor$ ccl
Clozure Common Lisp Version 1.12.1 (v1.12.1-22-g6b1f1d3a) LinuxX8664

For more information about CCL, please see http://ccl.clozure.com.

CCL is free software.  It is distributed under the terms of the Apache
Licence, Version 2.0.
? (time (reduce #'+ (loop for i from 0 upto 100000000 collect i)))
(REDUCE #'+ (LOOP FOR I FROM 0 UPTO 100000000 COLLECT I))
took 13,091,079 microseconds (13.091079 seconds) to run.
     11,036,666 microseconds (11.036666 seconds, 84.31%) of which was spent
in GC.
During that period, and with 24 available CPU cores,
     12,734,283 microseconds (12.734283 seconds) were spent in user mode
        336,005 microseconds ( 0.336005 seconds) were spent in system mode
 1,600,000,032 bytes of memory allocated.
 397,400 minor page faults, 0 major page faults, 0 swaps.
5000000050000000
?

On Fri, Jan 5, 2024 at 3:10 PM Taoufik Dachraoui <
[email protected]> wrote:

> Hi
>
> In my current implementation of a classical actor model
> I found that using ccl processes is much slower than sbcl threads
>
> to create a thread I use ccl:process-run-function, is there another way to
> create native threads that are much faster; I do not need the ccl
> scheduling,
> I want to create threads that are scheduled by the OS, I think that the
> ccl
> scheduler is the reason why my ccl tests are much slower than the tests
> run
> with sbcl
>
> Regards
> --
> Taoufik Dachraoui
>
>

-- 
Taoufik Dachraoui