From the docs and some browsing of the code, it was not clear to me whether when the dependency graph is split across multiple compute hosts each host does a compute valuation up from market data, or whether calibrated intermediate results are shared across hosts. If the calibrated results are shared, what do you require from an analytics library to implement this?
Intermediate results can be shared across hosts (transparently). When you integrate an analytics library, you write and register ‘engine functions’ that declare to the engine what inputs they require (including any meta-data properties, e.g. which curve, currency, etc) and what outputs they produce. Presently that requires some fairly boilerplate Java, but we are in the late stages of developing a Java-based DSL that allows you to declare your inputs, outputs and the relationship between them.
We’re also about to add a feature to allow logging messages from these functions and the underlying analytics to flow through to each cell in our WebUI, which will make debugging these functions more convenient.
Cool. I was afraid that the splitting was only in terms of full subgraphs.
No, although the system does try to not split graphs if it can for efficiency reasons.