tomcucinotta / distwalk

Distributed processing emulation tool
GNU General Public License v3.0
1 stars 4 forks source link

Generic ASYNC block #42

Open tomcucinotta opened 6 months ago

tomcucinotta commented 6 months ago

Just as a brainstorming around the recent #40 and #41, we might also think of a generic ASYNC block, applicable to any command, including COMPUTE, FORWARD/LOAD/STORE, CALL/RPC, etc..., e.g.:

ASYNC 2
COMPUTE 50ms
SKIP 1
LOAD 20B

would mean: emulate computations for 50ms while in parallel read 20B from the local storage;

ASYNC 2
COMPUTE 50ms
SKIP 1
COMPUTE 50ms

This would be a request for a parallel computation on 2 threads, if available; and, a FORK might actually be implemented with an ASYNC + FORWARD_F&F (fire & forget) like this:


ASYNC n1 (n. commands in 1st branch)
  FORWARD_FF IP1:port1
  COMPUTE
  ...
ASYNC n2 (n. commands in 2nd branch)
  FORWARD_FF IP2:port2
  STORE
  ...
// 3rd branch
FORWARD_FF IP3:port3
LOAD
...