Jump to content
Britton Ward

SSHResourceManager/Design Engines

Recommended Posts

Hi,

 

As time permits I am working on integrating the framework into our design process with the hope I can prove its worth, get some contracts and buy a full license.

 

One area that I see potentially being difficult is the need for each design to be run over many different operating conditions.  Essentially the design will be modified by its parameters and each design will have to be run over a range of operating conditions [Vs, Heel, Yaw, ....].  I'm not clear if there is a way to a) use the design engines as implemented in the FFW to generate these nested simulations and b) if there are any plans to update SSHResourceManager to allow these "subtasks"?

 

Also wondering if there are any plans to allow a client-server model when running large optimizations using SSHRM? Some of these can get quite large and resource intensive but they are so closely coupled to the interface that it can lock you out of doing other productive work ..

 

Just some idle thoughts.

 

Britt 

Share this post


Link to post
Share on other sites

Hi Britt,

 

Regarding the first part of the post (if I understand it correctly): Currently, it is not possible to run nested DesignEngines. It is a topic that comes up every once in a while, and I am sure we will tackle it one of these days. There are some ways, though, to simulate such a behavior. This topic may cover some things you could be interested in.

Also, there are ways to run optimization algorithms without variant creation within a DesignEngine run, coming as close as you can currently get to running nested DesingEngines. Maybe, if you can shed some more light on the goal you are trying to achieve one of my skilled colleagues can shed some light on that.

 

Currently, there are no plans on equipping the SSHRM with any application logic. There are plans, though, to improve the data-handling of the SSHRM in order to at least reduce that overhead (i.e. copying back and forth all those input and output files even for Designs that you are not really interested in...). We don't really have any details figured out for that, so I don't want to spill any uncooked beans here....

 

Another thing that is currently in the pipeline and that is actually scheduled for the next minor release (i.e. 3.2 - if the quality of that feature fulfills our standards until then) is the possibility to not only utilize the SSHRM for running your external code, but also to send the whole optimization to the SSHRM and let it run there (well... any of the computers you have configured at the SSHRM). Since you weren't at the user's meeting last year, where I showed an early prototype, let me break it down:

  • You can deploy CAESES on a host of the SSHRM - This really needs to be CAESES (not the free edition since it needs the optimization algorithms), so you will need a license for that remote computer, but we haven't figured out the details  ;) - the second slot of your floating license would be a good option (non-gui will most likely work, too, but don't quote me on that.)
  • Start a DesignEngine on your workstation
  • Pause it
  • Close the project
  • You will be asked whether you want to send the project to the SSHRM and have the DesignEngine continue there
  • Keep on working on a different project (or a copy of the same one) on your workstation, your optimization will run in your personal "cloud" controlled by the SSHRM.
  • Every once in a while, check in with the SSHRM through the webinterface in your browser to see the current state of your DesignEngine (basically the Design-Results-Table delivered to your web browser)
  • Once the DesignEngine has finished (or you decide that it should not run anymore), open the local copy of the project. This will automatically request the project's current state of the project from the SSHRM (of course, you have the freedom of choice. You can just continue the project where you left off). Yes.. this part may take some time, since all that result data needs to be copied back to your machine.
  • If the DesignEngine finished remotely, you can now start post-processing. If it did not finish, you can keep it running locally, abort it, or even send it to the SSHRM again.

Even if this is not a true client-server model, it is pretty close, in my humble opinion. I hope this scenario kind of meets what you have in mind. If it does, I am happy to tell you that the development on that functionality is actually closed and it is currently entering the testing phase, which - as we all now - will lead to more development to get all those little details worked out. But, after all, 3.1 has not been released to long ago, so I am pretty confident this will reach release-stability for 3.2.

 

Keep the idle thoughts coming!

 

Arne

Share this post


Link to post
Share on other sites

Arne,

 

Thanks for the response. Your proposal to send the whole optimization to the SSHRM is exactly what I was thinking of in terms of a client server model .. hope it comes in 3.2!

 

Ref my first point.  The link you pointed me to addresses some of what I was after but I'll describe the process in more detail.

 

I break it down this way, although the FFW has only one type of design parameter, in our processes we have "design parameters" that vary the shape geometry and "state variables" that reflect the conditions for analysis.  I would use a design engine to produce a series of geometric designs.  Each of these designs needs to be evaluated using a CFD code at 50 - 300 different conditions [Heel Angle, Leeway Angle, Vs, Appendage Conditions, Loading conditions etc.]  Typically each design would be run over the same matrix of conditions.  The results from these simulations would be processed to produce a force/moment response surface that is run in a separate optimizer to predict the best boat speed, heel, yaw etc. for different true wind speed and true wind angle conditions.  Finally this result would be evaluated against a race model incorporating weather to produce a final figure of merit for the optimization.

 

All of the program sequencing and post processing if possible with FFW. I just don't see an easy way to spawn the SSHRM processes for each design operating condition in an efficient manner.

 

I'm sure this is a problem many of your users face as it would seem very rare that a single point analysis is a sufficient figure of merit for optimization.   

 

Any suggestions would be appreciated.

 

Britt

Share this post


Link to post
Share on other sites

Hi Britt,

 

Thanks for the explanation, I think, I understand now. Currently there is no real efficient way to do this if the SSHRM is involved. Even when you setup a DesignEngine in a way that inside the geometric variation there is a state variation, the input files would need to be transferred for each condition (and I assume that the file transfer is your main concern here).

 

The only way, I can come up with, is to create a script that would trigger the simulation within one design for each state one after another. So, for example, the executable on the SSHRM-host would be a script that takes N command line arguments (I am not sure, though what the OS-limit for those is) where each argument represents one of the conditions. The script would then loop over the arguments and execute the simulation code for each condition. Of course, the script would need to take care that each of those sequential processes would need to be either executed in its own working directory or write output files with a unique name. If different working directories are used (which I would do as it seems the easiest) those would have to relative paths, so all output files end up in a sub-directory of the SSHRM-job's working directory (otherwise the SSHRM will not know what the result files are that need to be sent back to the FFW).

In FFW, you would then need to set the "Arguments"-attribute of the Computation to the conditions you want to calculate according to the syntax that can be understood by the executing script. The arguments attribute can be an expression (of type string), so you could, for example build it inside a feature.

 

Here is something we came up with in the discussion for a built in solution for this (it's just a rough blueprint and I cannot estimate any time-frame for now): A computation could be equipped with multiple configurations - or a configuration with multiple values for each entry (let's call it "EnsembleComputation" for now). Such a computation would then be executed for each configuration in a separate subfolder of the computation directory. When such a computation would be executed on the SSHRM, it would be transferred as one job to the SSHRM and all N simulations would be executed from there (in parallel on multiple hosts, if possible).

 

Does that sound like it could help?

 

Another note: If I remember correctly, your SSHRM runs on the same computer that runs the actual simulation code, right? If yes, in 3.1 some overhead of file transfer is reduced because when the "localhost" is configured as an executing host in the SSHRM, no SSH connection will be established to the localhost, but the simulation will be ran from the SSHRM's job directory directly. The file transfer from FFW to the SSHRM would still happen, of course, but the second file transfer through SFTP would not.

 

Arne

Share this post


Link to post
Share on other sites

Oh, another thing: While you are right, that this situation is faced by many customers, they usually do not have that many conditions (50-100), but rather about 10 (at least, as far as I heard when I talk to users). In that case, they usually just have 10 computations executing the same simulation code with different configurations.

Share this post


Link to post
Share on other sites

Thanks Arne,

 

Your ensemble computation idea is exactly what I had in mind .. sometime in the future!

 

When I'm running full simulations I am farming to a linux cluster. I successfully did this with a SUP board design using Fine/Marine where the parametric model generated 100 geometries and each was meshed and run on the cluster.  That one had a single figure of merit so was relatively simple compared to the full sailing yacht problem!

Britt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...