Feature compute separation

@s-u, opening a PR on this to discuss
This is parallelized fine, but the function returns a promise only for the compute part.  It would be more correct to 

```
return Promise.all([res, promise_s])
```

so that the caller can be sure everything is initialized.