How do I exclude some I/O variables I don't need from being stored in memory?

Sebastian.Sanchez

My simple workflow can now take up to 9 GB of RAM every time I run the model (without the driver).

This is because I'm running many cases with one of the components in a vectorized way. This means I've made one component that takes in an N-shaped input, operates on it and outputs an N-shaped vector too.

Is there a way to tell OpenMDAO not to store in its dictionaries some the outputs of certain intermediate components that don't provide the design variables nor the constraints values?

Sebastian.Sanchez

OpenMDAO's memory usage doesn't come from storing I/O values. The problem was that I had declared in an N-input to N-output Component that the partial derivatives were of the form (from=['*'], wrt=['*']). This defines the Jacobian as completely dense, and in my case it was much sparser than this because the component was doing a vectorized computation. So its Jacobian was diagonal.

As of OpenMDAO 2.0.2, large dense jacobians use a lot of memory, and specifying the sparsity is highly recommended. By defining the partials with the rows and cols arguments, memory usage went from 13 GB down to 200 MB. See: http://openmdao.org/twodocs/versions/2.0.2/feature_reference/core_features/working_with_derivatives/sparse_partials.html

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Why do I need to import some class like Scanner and don't with class like Math (eclipse)

In Eclipse, how can I exclude some files (maybe based on the .svn extension or filename) from being copied to the output folder?

How can I terminate a Stream if I don't need any value from termination?

How can I exclude some tags from `git log`?

Do I need a memory barrier?

How can I configure Polymer-cli build to exclude some file-path from being minified?

How do I do a Cross Join when I don't have all the columns I need?

How do I exclude a property from being mapped

How do I block undefined variables from being sent on Postman?

I don't understand how my calculations are being read as a str instead of an integer when the variables are valued with numbers

How do I create a cudaTextureObject_t from linear memory?

how do I go about removing all the language packs I don't need

how do i exclude specific variables from a glm in R?

I need to find specific variables that the user has inputted however I don't comprehend how

How can I prevent external comments from being stored in T-SQL object definitions?

How do I exclude `.` and `..` from a directory listing

Some commands do run with PHP exec() others don't, how can I avoid/fix this?

How do I exclude a certain groovy file from being compiled in gradle?

How do I align div elements where some have text and some don't?

How do I implement an interface if I don't need all of its functions?

How do I store class variables in memory?

How do I exclude x.class from being compiled into my jar file?

How can I exclude some packages from (transitive) dependencies?

What is this pointer and memory code printing? I don't know if it's printing garbage or how to print the value that I need

How do I exclude a dependency from being pinned by Spring Boot's dependency management plugin?

Why do some variables need `self.` and others don't, in 1 function?

How can I exclude some items from a merged enum in TypeScript?

How can I access variables stored in the dynamic memory in a different function?

Fast api with My SQL update table with dynamic variables, I don't know from advance how many variables i'm gonna need to update