3 ms·
Running one process per neuron is going to be extremely slow.
by Ono-Sendai 9y ago
Running one process per neuron is going to be extremely slow.
- btbuildem 9y agoErlang's inter-process messaging is ridiculously optimized. Processes are extremely low-weight, it costs approximately nothing to start and stop them. This is one of the core strength of Erlang. Running one process per neuron would actually be a very efficient way to do it.
- mononcqc 9y agoIt should still be pretty slow compared to just doing the neural net propagation as matrix operations
- ramchip 9y agoI'm quite sure that would be a grossly inefficient approach. Sending a message is expensive in Erlang, less so than in other languages, but it's still very large compared to a few math operations. It's a common mistake to use processes to represent objects [1]. The recent article from Discord [2] also mentioned "Sending messages between Erlang processes was not as cheap as we expected, and the reduction cost — Erlang unit of work used for process scheduling — was also quite high. We found that the wall clock time of a single send/2 call could range from 30μs to 70us due to Erlang de-scheduling the calling process." [1] http://theerlangelist.com/article/spawn_or_not http://theerlangelist.com/article/spawn_or_not [2] https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b