cadCAD Technical Update
How to Upgrade your cadCAD Models to the Latest Version
As we continue building cadCAD, our success is contingent on our community and the feedback you give us. We apologize for any inconvenience or model disruptions caused by our 0.4.15 update and the succession of hot fixes introduced for our community. We’ve been hard at work updating our core tech, but that also means some models built on old versions have had compatibility issues — our internal teams have felt the pain too. We’ve reflected and resolved to update our release process here on out with maintaining separate branches for the stable build of cadCAD and a staging repo for our latest version for feedback.
We appreciate you being fellow travelers with us on building the next generation of data science simulation. If you’d like to be part of our next community call to discuss the latest cadCAD updates, you can join us on our community discord to stay in the loop: https://discord.gg/hS8cnRB
Since version 0.3.1, we’ve released intermediate versions of cadCAD during a beta testing period that involved hot fixes and rapid iteration. We’ve deprecated and no longer support intermediate versions 0.4.15–0.4.22 and strongly recommend upgrading to version 0.4.23. We’ve included the full list and links to all versions that can be found later in this announcement.
Updating Your Model
Below is a quick guide (link to gist) for getting your models running in version 0.4.23, if they had been working in 0.3.1 previously. Most of the needed changes are a “find and replace” procedure. If you replace the code blocks under ver.0.3.1 column with the code blocks under 0.4.23, your model should be successfully updated to version 0.4.23. Any questions can be directed to our “Core-Tech” working group channel on the cadCAD Discord.
Changes for Version 0.4.23
Changelog: https://github.com/cadCAD-org/cadCAD/blob/master/CHANGELOG.md
Multi — System Model Execution
- Multi — System Model simulation results will no longer return truncated results (exclude the results of the last `cadCAD.configuration.Configuration` appended to `cadCAD.configs`).
Experiments
https://github.com/cadCAD-org/cadCAD/blob/master/documentation/README.md#experiments
- `cadCAD.configuration.Experiment` (Alpha) is in development and needed to be released to support the implementation of web applications and proprietary feature extensions. It is intended to represent a unique identifier of an experiment of one or more configured System Models. For this reason, `append_configs` is a method of `cadCAD.configuration.Experiment`. As of now it does not support multi — system model simulation because configurations are still appended globally despite `append_config` being a method of Experiment.
Local Execution Mode (Default)
https://github.com/cadCAD-org/cadCAD/blob/master/documentation/Simulation_Execution.md
- Implicit parallelization of Monte-Carlo / Stochastic simulations (Automatically selects Multi-Threaded Mode if simulations are configured for more than a single run)
- Backwards Compatibility:`cadCAD.engine.ExecutionMode` accepts legacy execution modes from version 0.3.1
Post-Processing Enhancements
- Single Result Dataset as a 2 dimensional `list`returns a single dataset instead of multiple datasets per Monte Carlo simulation as in version 0.3.1.
New System Metrics as dataset attributes:
- Simulation (Alpha) is a unique identifier being developed to represent Experiments as stated above and will be renamed accordingly
- Subset is a unique identifier of Monte Carlo simulations produced by parameter sweeps
Note: Returning a single dataset was originally specified during the project’s inception instead of multiple per simulation
Post-Processing Modifications
Flattened Configuration List
- The `configs` `list` has been temporarily flattened to contain single run System Model `Configuration` objects to support both fault-tolerant simulation and elastic workloads. This functionality will be restored in a subsequent release by a class that returns `config`’s original representation in version 0.3.1.
- The conversion utilities have been provided to restore its original representation of configurations with runs >= 1
System Configuration Conversion
https://github.com/cadCAD-org/cadCAD/blob/master/documentation/System_Configuration.md
- Configuration as List of Configuration Objects (as in version 0.3.1)
- New: System Configuration as a Pandas DataFrame
- New: System Configuration as List of Dictionaries
Expandable state and policy update parameter space
This enables the development of feature enhancements that involve the use of additional parameters without requiring users to modify their update parameters spaces when upgrading to newer versions. For this reason state / policy update examples in documentation include an additional `**kwargs` parameter.
- State Updates: https://github.com/cadCAD-org/cadCAD/blob/master/documentation/README.md#state-update-functions
- Policy Updates: https://github.com/cadCAD-org/cadCAD/blob/master/documentation/README.md#policy-functions
List of cadCAD Versions
Current version
Current version 0.4.23 — released Sep 22, 2020
https://github.com/cadCAD-org/cadCAD
Deprecated versions
*Must build from source
What is cadCAD?
cadCAD (short for complex adaptive dynamics Computer-Aided Design) is an open source Python-based modeling framework for research, validation, and Computer Aided Design of complex systems. cadCAD supports varied multiscale system modeling approaches and can be easily integrated with common empirical data science workflows. Monte Carlo methods, A/B testing and parameter sweeping features are natively supported and optimized for within the tool.
Given a model of a complex system, cadCAD can simulate the impact that a set of actions might have on it. This helps individuals or organizations make informed, rigorously tested decisions on how best to modify or interact with a complex system in order to achieve their desired goals.
Support cadCAD Education & Development:
We are working hard on the technical foundations of cadCAD, a key tool in the safe and ethical design of complex systems like crypto-economies. Support developer education in the use of cadCAD models by contributing to our Gitcoin Grant:
🎉 https://gitcoin.co/grants/308/cadcad-computer-aided-design-for-complex-systems 🎉
Contribute in the cadCAD community:
- Keep in the loop on our Discord: https://discord.gg/hS8cnRB
- Join our community on Telegram: https://t.me/cadcad_org
- Contribute on our forum: https://community.cadcad.org/
- Follow cadCAD on Twitter: https://twitter.com/cadcad_org