<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body><div style="font-family: sans-serif;"><div class="plaintext" style="white-space: normal;"><p dir="auto">My understanding is that the SBCL community invests much more of its effort into making the compiler generate fast code.</p>
<p dir="auto">CCL, on the other hand, has always prized speed of compilation, and other user-experience issues over generating highly optimized code.</p>
<p dir="auto">Note that this is a particularly horrible example bit of code to test.</p>
<p dir="auto">On 5 Jan 2024, at 8:32, Taoufik Dachraoui wrote:</p>
</div><blockquote class="embedded" style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;"><div id="B11813F2-D525-4D40-87BB-268628F500EE">

<div dir="ltr">why ccl is much slower?
<div><br></div>
<div>taoufik@Ankbot:~/workspace/ccl/actor$ sbcl<br>
This is SBCL 2.3.11, an implementation of ANSI Common Lisp.<br>
More information about SBCL is available at <<a href="http://www.sbcl.org/">http://www.sbcl.org/</a>>.<br>
<br>
SBCL is free software, provided as is, with absolutely no warranty.<br>
It is mostly in the public domain; some portions are provided under<br>
BSD-style licenses.  See the CREDITS and COPYING files in the<br>
distribution for more information.<br>
* (time (prog1 t (loop for i from 0 upto 100000000 collect i)))<br>
Evaluation took:<br>
  1.379 seconds of real time<br>
  1.379015 seconds of total run time (0.856185 user, 0.522830 system)<br>
  [ Real times consist of 1.143 seconds GC time, and 0.236 seconds non-GC time. ]<br>
  [ Run times consist of 1.146 seconds GC time, and 0.234 seconds non-GC time. ]<br>
  100.00% CPU<br>
  2,913,031,106 processor cycles<br>
  1,600,427,200 bytes consed<br>
 <br>
T<br>
* (quit)<br>
taoufik@Ankbot:~/workspace/ccl/actor$ ccl<br>
Clozure Common Lisp Version 1.12.1 (v1.12.1-22-g6b1f1d3a) LinuxX8664<br>
<br>
For more information about CCL, please see <a href="http://ccl.clozure.com">http://ccl.clozure.com</a>.<br>
<br>
CCL is free software.  It is distributed under the terms of the Apache<br>
Licence, Version 2.0.<br>
? (time (prog1 t (loop for i from 0 upto 100000000 collect i)))<br>
(PROG1 T (LOOP FOR I FROM 0 UPTO 100000000 COLLECT I))<br>
took 11,946,514 microseconds (11.946514 seconds) to run.<br>
     11,147,722 microseconds (11.147722 seconds, 93.31%) of which was spent in GC.<br>
During that period, and with 24 available CPU cores,<br>
     11,632,370 microseconds (11.632370 seconds) were spent in user mode<br>
        292,428 microseconds ( 0.292428 seconds) were spent in system mode<br>
 1,600,000,032 bytes of memory allocated.<br>
 397,400 minor page faults, 0 major page faults, 0 swaps.<br>
T<br>
? <br></div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Jan 5, 2024 at 3:28 PM Taoufik Dachraoui <<a href="mailto:dachraoui.taoufik@gmail.com">dachraoui.taoufik@gmail.com</a>> wrote:<br></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">It looks like it is not because of the threads:
<div><br></div>
<div>taoufik@Ankbot:~/workspace/ccl/actor$ sbcl<br>
This is SBCL 2.3.11, an implementation of ANSI Common Lisp.<br>
More information about SBCL is available at <<a href="http://www.sbcl.org/" target="_blank">http://www.sbcl.org/</a>>.<br>
<br>
SBCL is free software, provided as is, with absolutely no warranty.<br>
It is mostly in the public domain; some portions are provided under<br>
BSD-style licenses.  See the CREDITS and COPYING files in the<br>
distribution for more information.<br>
* (time (reduce #'+ (loop for i from 0 upto 100000000 collect i)))<br>
Evaluation took:<br>
  1.836 seconds of real time<br>
  1.835223 seconds of total run time (1.351394 user, 0.483829 system)<br>
  [ Real times consist of 1.184 seconds GC time, and 0.652 seconds non-GC time. ]<br>
  [ Run times consist of 1.184 seconds GC time, and 0.652 seconds non-GC time. ]<br>
  99.95% CPU<br>
  3,876,850,246 processor cycles<br>
  1,600,427,200 bytes consed<br>
 <br>
5000000050000000<br>
* taoufik@Ankbot:~/workspace/ccl/actor$ ccl<br>
Clozure Common Lisp Version 1.12.1 (v1.12.1-22-g6b1f1d3a) LinuxX8664<br>
<br>
For more information about CCL, please see <a href="http://ccl.clozure.com" target="_blank">http://ccl.clozure.com</a>.<br>
<br>
CCL is free software.  It is distributed under the terms of the Apache<br>
Licence, Version 2.0.<br>
? (time (reduce #'+ (loop for i from 0 upto 100000000 collect i)))<br>
(REDUCE #'+ (LOOP FOR I FROM 0 UPTO 100000000 COLLECT I))<br>
took 13,091,079 microseconds (13.091079 seconds) to run.<br>
     11,036,666 microseconds (11.036666 seconds, 84.31%) of which was spent in GC.<br>
During that period, and with 24 available CPU cores,<br>
     12,734,283 microseconds (12.734283 seconds) were spent in user mode<br>
        336,005 microseconds ( 0.336005 seconds) were spent in system mode<br>
 1,600,000,032 bytes of memory allocated.<br>
 397,400 minor page faults, 0 major page faults, 0 swaps.<br>
5000000050000000<br>
?<br></div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Jan 5, 2024 at 3:10 PM Taoufik Dachraoui <<a href="mailto:dachraoui.taoufik@gmail.com" target="_blank">dachraoui.taoufik@gmail.com</a>> wrote:<br></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi
<div><br></div>
<div>In my current implementation of a classical actor model</div>
<div>I found that using ccl processes is much slower than sbcl threads</div>
<div><br></div>
<div>to create a thread I use ccl:process-run-function, is there another way to </div>
<div>create native threads that are much faster; I do not need the ccl scheduling,</div>
<div>I want to create threads that are scheduled by the OS, I think that the ccl </div>
<div>scheduler is the reason why my ccl tests are much slower than the tests run </div>
<div>with sbcl</div>
<div>
<div><br></div>
<div><span class="gmail_signature_prefix"><span class="gmail_signature_prefix">Regards</span></span></div>
--<br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">Taoufik Dachraoui
<div><br></div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br></div>
<span class="gmail_signature_prefix">--</span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">Taoufik Dachraoui
<div><br></div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br></div>
<span class="gmail_signature_prefix">--</span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">Taoufik Dachraoui
<div><br></div>
</div>
</div></div></blockquote>
<div class="plaintext" style="white-space: normal;">
</div>

</div>
</body>

</html>