Can someone point me to an introduction into what is going on in the runtime https://github.com/dmlc/dgl/tree/master/python/dgl/runtime (executor, program, registry)? I mean, what software engineering method is that from? What is it based on? It is unfamiliar to me, and with a little background, I hope I could understand it better.
I’m really just looking for a pointer to information on how this runtime works. Thanks!
We currently do not have a documentation for the
runtime module, but here is a basic sketch:
When users call a method such as
g.update_all(), instead of diving right to computation, DGL starts a mini-program and fills it with instructions. The instructions include read/writes on the graph features, and computation on the features with built-in operators and/or User Defined Functions. DGL then runs the program by interpreting those instructions.
Expressing computation in that way could enable us possibilities for future system-level optimization (such as JIT’ing the generated program to speed up).