OpenMDAO is an open-source high-performance computing platform for systems analysis and multidisciplinary optimization, written in Python. It enables you to decompose your models, making them easier to build and maintain, while still solving them in a tightly coupled manner with efficient parallel numerical methods. OpenMDAO provides a library of sparse solvers and optimizers designed to work with its distributed-memory, sparse data-passing scheme. OpenMDAO ships with a numpy data-passing implementation that lets you get up and running quickly and provides efficient operation for serial execution. It also comes with an MPI-based implementation that will let you run in parallel on your multi-core processor and high performance computing (HPC) environments.
A simple flow based testing framework. testflo was written to support testing of the OpenMDAO framework. Some OpenMDAO features require execution under MPI while some others don’t, so we wanted a testing framework that could run all of our tests in the same way and would allow us to build all of our tests using unittest.TestCase objects that we were already familiar with. The MPI testing functionality was originally implemented using the nose testing framework. It worked, but was always buggy, and the size and complexity of the nose framework made it difficult to know exactly what was going on. Enter testflo, an attempt to build a simpler testing framework that would have the basic functionality of other test frameworks, with the additional ability to run MPI unit tests that are very similar to regular unit tests.