Open ghost opened 8 years ago
$ ./yxt samples/skynet '--goal=skynet:start(1000000,10)' Yxtrang v0.1alpha, 64-bits, Feb 17 2016 Consult default => 'samples/skynet'
(13.814 s) yes
Can get it down to around 7 seconds by specifying a thread-pool size of 1 (--tpool=1), in effect forcing it to serialize. Prevents cache-thrashing I suppose.
Came back to it recently. Just over 3 seconds now.
Out of interest I have included my own implementation in Prolog. This is written in my own Prolog ( https://github.com/infradig/yxtrang ) which implements Erlang-style processes and message-passing. It is quite slow as I haven't done too much optimisation in this area (in fact I just got it working well-enough to run the test at all).
It would be trivially easy to distribute the skynet processes over multiple nodes, as send/recv work transparently over networks as well.