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
...
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.:
would mean: emulate computations for 50ms while in parallel read 20B from the local storage;
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: