DApp of the Week #05 — OpenMOLE
Modelling is an important part of the scientific process and decision support. It assesses whether a theory matches the data and whether a decision scenario has a chance of seeing favourable outcomes.
Scientific models can be refined and explored using genetic/evolutionary algorithms (GA/EA). EAs form a class of generic optimisation methods, able to find optimal solutions to various problems at the cost of large computation workloads.
OpenMOLE implements distributed versions of these scientific algorithms and is thus a natural fit to exploit the computing resources made available in the iExec marketplace.
Our “DApp of the Week” series regularly features the most innovative applications built on top of iExec, to showcase what can be achieved with the tools and libraries made in iExec. Decentralized AI (ML), Birdie Blue (Fintech), Websensors (ML-based oracles) and Cerebrum (ML) were the first dapps to be featured in this series.
What is OpenMOLE?
OpenMOLE is a platform for exploring digital models. It allows to:
- Embed digital models (software applications), regardless of their programming language,
- Define advanced methods for exploring the input parameters of these models (experimental designs, scenario replication, diversity studies, sensitivity and robustness analysis, etc.),
- Distribute the execution of the resulting experiments over a wide range of high-performance computing environments (server, cluster, grid, cloud, etc.).
OpenMOLE allows scientists to reduce the complexity of large-scale experiments. They do not need to acquire any specific skills to do high performance computing. They can ask broader scientific questions thanks to innovative model exploration methods and scale up thanks to simplified deployment on high-performance computers. In particular, it is possible to deploy experiments on the European EGI grid. The project team trains users and supports them in the learning process in line with the tool’s potential.
Its development began in the interdisciplinary framework of the Institut des Systèmes Complexes in 2008 driven by Dr. Romain Reuillon, quickly joined by Mathieu Leclaire.
OpenMOLE has been adopted by the scientific communities as diverse as social sciences and medical image analysis, showing its high genericity
It is free (AGPL 3 license) and its development continues today under the partnership framework of the ISC-PIF.
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over…github.com
The iExec component of the platform is led by Dr. Jonathan Passerat-Palmbach, who is a research associate at Imperial College London, in the BioMedIA group, under Prof. Daniel Rueckert. He’s leading the informatics platform of the developing Human Connectome Project.
His research interests focus on distributed computing and software engineering applied to medical image analysis. He has worked on leveraging distributed computing to process large neuroscientific datasets and algorithms.
More recently, he started investigating the potential of decentralisation techniques (Web3, P2P, blockchains, …) for distributed computing and scientific data sharing.
An example with SimPLU 3D
SimPLU3D is a simulation model providing an implementation of multi-dimensional simulated annealing algorithm to produce built configuration from a set of boxes constrained by urban regulation that optimizes a utility function.
In the video, we can see SimPLU3D using OpenMOLE to find a large number of different design of simple buildings. Contrary to a classical optimisation problem where the objective function decreases as the optimizer is finding the best input parameters, here the exploration method is encouraged to find diverse outputs. A typical use case would be to reduce the number of options available for a local council to develop an urban area, while exposing many different configurations to the deciders.
In the diagram below, the SimPLU3D model is fed 7 different parameters ruling the design of a block of buildings. From this parameter space, 22,000,000 different configurations can be generated, using 2,551 years of equivalent CPU-time from a single desktop machine.
OpenMOLE’s input is to apply its advanced parameter space exploration methods to sift through all these configurations and identify the unique ones. The deciders can then restrict the number of different configurations they want to study and go from millions of configurations to a hundred to manually review for instance.
This approach is called Pattern Space Exploration and is extremely computationally greedy. It is however a perfect candidate for distributed computing techniques and the exploration and the configuration described in the diagram above has been processed in only 13 days using 4,000 workers in parallel thanks to the PSE method.
A library to generate buildings from local urban regulations. - SimPLU3D/simplu3Dgithub.com
Winner of the iExec Dapp Challenge
The OpenMOLE team aims to bring the optimisation and parameter space exploration methods at the heart of the OpenMOLE ecosystem to the iExec platform. We believe our joint expertise in modelling and simulation, optimisation methods and distributed computing is a unique advantage to build the first Dapp usable by many different scientific communities on the iExec Dapp Store.
OpenMOLE’s contributions will bring multiple valuable assets to the iExec network:
- A scientific DApp introducing the network to scientists not yet familiar with web3 technologies.
- An entry point for other applications lacking the expertise to bring their software to the iExec network. They can rely on OpenMOLE to delegate their workload to the iExec network.
- An extensive roadmap that can lead to a generic support of Map/Reduce applications, and refining the task and data management specifications.
OpenMOLE as a DApp
OpenMOLE has been using the iExec SDK to launch their off-chain computations. The optimization consist in running the same application with different sets of parameters each time. This is what we call a ‘bag of tasks’, this is a feature that will be implemented in the coming weeks.
Registry for sample iExec dapps. Contribute to openmole/iexec-dapp-samples development by creating an account on…github.com
OpenMOLE is now preparing the release of their version 8.
In addition to that, the OpenMOLE team also worked on their own Scala version of the iExec SDK. The OpenMOLE ecosystem is almost entirely written in Scala, making the integration of the current iExec SDK difficult. The Scala SDK is still at a very early stage but contributors are welcome :)
There’s still some work to do before OpenMOLE can directly benefit from iExec’s decentralized computing marketplace. Namely, the team will work in collaboration with iExec’s researchers to study decentralized storage solutions and how they can be inserted in the iExec workflow.
iExec on social networks
Many thanks to Dr. Jonathan Passerat-Palmbach and Eric Rodriguez who contributed to this post.