What is ArupCompute Local?
AC Local is a new update to the ArupCompute desktop clients (Excel, Grasshopper, Dynamo), Python client and .NET client that will allow users to run calculations directly on their own machine, giving user's improved calculation performance and speed!
All you need to do is install the AC Local service using the existing ArupCompute desktop client installer - just make sure to check the "ArupCompute Local Proxy" option when selecting which components should be added. Once this is installed, you can use the desktop clients exactly as they are currently used now. ArupCompute will download libraries and run calculations locally automatically!
Moving the "compute" to the data
Compared to desktop-based solutions (ex. spreadsheets), which are very low-latency, ArupCompute is a cloud-based solution that can have significant latency. The majority of this latency is spent ‘in-flight’ over the network. ArupCompute users outside the UK (where ArupCompute is hosted) are particularly affected by this latency, and they often experience slower response times due to geography. This latency can also make running a higher volume of calculations time consuming.
With AC Local, rather than sending input data to ArupCompute and executing a calculation remotely, we send libraries and functions to user, where there calculation inputs already sit. AC Local copies libraries published to ArupCompute (ie. those hosted on the cloud) to the user’s computer, so that these libraries and calculations can be run there. This reduces the effects of latency and greatly improves overall calculation speed.
Based on initial testing, using AC Local can yield more than a 10x speedup in overall calculation time:
How does it work?
Using AC Local does not require any changes to the way you currently use the ArupCompute desktop clients. AC Local will download libraries and run calculations locally automatically.
AC Local runs functions in a self-contained "sandbox" on the local machine. Each version of a library is hosted separately.
Currently only ArupCompute libraries written in C# (e.g. DesignCheck), can be downloaded with Local. Libraries written in Python are not yet supported. Any C# library that does not include third party, licensed software as a dependency can be used with Local. Libraries which do use third party, licensed software (e.g. AdSecCompute which uses AdSec) will continue to run in the cloud for the time being.
Because AdSecCompute directly uses AdSec, a third party, licensed software, it cannot be copied to a user's machine with Local. This means, for the time being, AdSecCompute functions will continue to run in the cloud only.
We will be exploring alternative approaches to working with the AdSec license, so we can run AdSecCompute locally in the future!
Comparing local vs remote-only design
The below diagrams gives a high level overview of the AC Local design, and how this compares to the previous remote-only design.
Before
Without AC Local, with a remote-only design, all calculations are run in the cloud.
Now
With AC Local, calculations can now be run locally. Those that can't run locally will be run in the cloud: