top | item 41397972

(no title)

seattleeng | 1 year ago

A new programming model for distributed computing is desperately needed. Something between a full operational system a la Temporal, but without the extreme operational overhead + a sane cooperative runtime like Golang.

I think we're probably too early to build this today. Ray is used at my current job for scaling subroutines in our distributed job system. It's the closest I've seen.

discuss

order

sorentwo|1 year ago

What you’re describing sounds exactly like Elixir (any Erlang family language really, Elixir is just most ergonomic IMO). Truly seamless cooperative scheduling with transparent distribution between any number of nodes.

Shameless plug, but there’s also Oban, a widely used database backed background job system.

cosmic_quanta|1 year ago

> A new programming model for distributed computing is desperately needed

The article mentions actor-model frameworks like Akka. Is that not like Ray?

At work we use and maintain something similar called Cloud Haskell (confusingly implemented in a package called distributed-process: https://github.com/haskell-distributed/distributed-process) and I have to say that using it is a breeze.

lamp_book|1 year ago

Oversimplifying it, but if you look as parallelism as a special case of concurrency [0] then ray is a framework for the former and actors are a model for the latter. Actors are lower level and you could build something like Ray on top of it, but if your goal is to process large data in parallel you’d want something like ray. Accordingly ray can’t be used for more general computing.

[0] and it’s an oversimplification because while concurrency can reasoned about conceptually, parallelism implicates implementation realities around computation resources and data locality.