[gambit-list] SMP works up to what point in GSC, any practical use possible currently?

Marc Feeley feeley at iro.umontreal.ca
Tue Aug 15 10:24:10 EDT 2017


Not sure what you mean by “spawning more GVMs”…  Gambit’s model for concurrency within a single OS process is a single VM or multiple VMs, and within each VM there is a single “processor” or multiple “processors” (each processor is actually an OS thread).  These can be enabled with the --enable-multiple-vms and --enable-multiple-threaded-vms flags respectively.  Both of these flags are still experimental and work remains to be done (in the “smp” branch) to get it working smoothly.  However --enable-multiple-threaded-vms in the master branch will allow the garbage collector to run in parallel, with very good speedups on large heaps so that is useful right now even if Scheme threads are still green.

Marc



> On Aug 11, 2017, at 7:13 AM, Adam <adam.mlmb at gmail.com> wrote:
> 
> Hi Marc,
> 
> When starting GSC, spawning more GVM:s will work (= a part of SMP), the heap will work across more GVM:s (= another part of SMP), however the IO subsystem is not SMP:ified at all so as soon as you hit the REPL things will break bad.
> 
> Is this a correct understanding, and, is there any practical use of the SMP currently?
> 
> Like, some subset of the runtime that actually is SMP-proof (e.g. all except for IO) so you could use secondary GVM:s for computation in green threads and talk to them via some SMP-proof messaging primitives?
> 
> Adam




More information about the Gambit-list mailing list