A lot of companies now are talking about the « cloud » but not everyone knows what it actually means…
As you might be required at some time or another to run your FEA “into the cloud”… better understand what is means ;-)
As usual, let’s break down what it means and make everything simple to understand
(Simplicity is the root of understanding)
Why would I ever put my FEA in the cloud ?
One of the major reason FEA can work well in the cloud is because Real World FEA problems solved by an FEA solver require a lot of computational resources (like Processor cores, RAM & Storage)
So the FEA solver is the main part of the FEA system that we would like to have in the cloud.
Now you understand that there are mainly 2-3 things you need to understand here:
- What is an FEA solver?
- What is the cloud?
- Why can the cloud be useful?
Let’s tackle those topics one by one
What is an FEA solver?
In engineering and science, everything (at the raw level) starts with equations and physics (because that’s the way we engineers describe nature ;-) )
That’s why we observe fire (the physics) and we create a mathematical description of what happens with equations so we can “explain” the behavior later on.
So, okay, fine… you have equations…
…But what does it has to do with the FEA solver?
EVERYTHING ;-)
The solver is basically a software which uses numerical methods to compute the solution to those equations in very particular situations
Why can’t we just use the analytical solution of those equations?
Because most equations are too complex to be solved analytically and exactly, so we need to find an approximate solution (and bare the error).
(BTW the core of the Finite Element Method (FEA) is a bunch of numerical algorithms and clever methods which help to solve a various range of engineering problems)
So… The way to solve an equation numerically is to use an algorithm which can do it.
Simple to say… difficult to do!
And very computationally intensive too
The FEA solver requires your computer to have a very good processor with a lot of cores (providing that it supports multicore), a lot of RAM (to save the large matrixes in memory while solving the equations) and a lot of hard drive space (to save results and do out-of-core calculation).
That’s what FEA engineers call “computational resources”
If you want an example of algorithm used, you can think about the Newton-Raphson method for example is a very useful algorithm in FEA analysis for solving non-linear step-by-step solutions.
So… The solver is basically a compiled application which runs on a computer (1), takes an input (2), execute an algorithm (3) and gives you back output(4).
Ok… the solver « Mystery » is solved ;-)
When I say “Runs on a computer”, I didn’t precise where the computer has to be located… and that makes all the difference with the cloud.
So, Traditionally, the solver is just a piece of your FEA software and is run on your computer as a normal program.
(If you need more details about how a solver works, I have an article about it here)
Now, before I describe to you what is the cloud, you need to understand the limitations of running a solver on a local machine… that has to do of course with the computational resources I mentioned before.
Bare with me, you will see, everything will become clear for you after you read the next parts of the article
What are the main limitations of running a solver application on my own computer?
When I install any traditional FEA software on my local machine, I basically get 3 kinds of software installed:
- The “pre” software used to create my FEA model. This is generally a software which has a GUI (Graphical User Interface) to help the user to interact with the various commands of the software in an easy graphical way.
- The solver which has the heavy task to compute the model and provide the results (Generally hidden and accessible only with command line)
- The “post” software used to view and process results which has also generally a GUI.
So, as soon as the model is created and ready to be solved, that’s when you need to send it to the solver which will compute and solve numerically the physical equations corresponding to your model and then generate the results you asked for.
That’s when you have to wait a loooooong time generally (Depending on the model) ;-)
So you already experience the first limitation of using your own computer to run the algorithms…The calculation takes a lot of time and also CPU power!
Some brilliant engineers had the idea to accelerate all that by using something « new »… a cloud server.
Now the big question…
What is the cloud?
The principle of the cloud computing is the following…
Instead of having a physical computer in front of you, you have a computer which is located remotely somewhere you will never know.
So because the guys who invented it didn’t want to bother the users with giving a real location of that “remote computer” (and users do not really care either generally), they decided to give it a clever name and call al remote locations the cloud.
It answers the simple question:
Where is the computer I am sending my data? In the cloud!
The actual true answer might be “A server farm owned by Google or Amazon in Singapore”
So… it’s basically called a cloud server because you don’t necessarily know the location of your server.
It may be located in US, or in Singapore or anywhere else…and sometimes your data is even distributed between several machines…but the location in itself is not very relevant (as long as it is connected to the internet obviously)
So putting your “FEA in the cloud” means simply that instead of installing your FEA software on your computer, you would install it inside a remote server computer “in the cloud”.
What happens when I compute an FEA model on the cloud?
Simple…
1- You basically send the input data file to a remote server,
2- The solver located in the cloud server runs the algorithms required using the superior calculation power of that « cloud server »
3- You get the output data back on your computer
Note that this is not a sooo new concept…
In fact, FEA started from the very beginning by using punch card machines system to create “input decks”, that would then be sent to a remote location where a HUGE mainframe was doing the calculations and print results on paper sheets
It’s interesting to see how history can run in circles ;-)
Doesn’t mean we are going back in time… we are just taking the best of both “local” and “remote” worlds to create innovative engineering solutions with huge potential
Otherwise, how could we start designing the star destroyers you see in star wars and start to colonise space?? Right? ;-)
Can I have EVERYTHING in the cloud? (not just the solver)
I described mainly the case where only the solver is in the cloud and everything else is on your local computer.
In my humble opinion, that’s the best way to do it…
I tried a few of the current software who boast to have an ‘easy to use’ browser interface (I won’t give up names), but frankly, I was highly disappointed by the time it takes to load different web pages and my model crashed so many times that I had to give up after 54 minutes of pure despair
(I am not exagerating… okay, just slightly, let’s say I was just mildly despaired)
I think that a local pre/post software is the best to solve latency issues and make sure my model building experience is optimal.
Why would you put everything in a browser if it is to make the experience worse… seriously?
(I may change my mind in the future when I happen to see a real solution rather than another free gimmick browser app trying to build another me too package around an open-source reputed solver putting everything you create in a free community that you never asked for)
Anyhoo…
The pre/post processing graphical interface may be installed on your local computer while your solver is in the cloud.
In this way, every time you want to computer something, you have to send the data to the cloud server, wait for it to compute and get some result and receive those results back to your computer.
Important Note: As using FEA in the cloud requires to send your data to a remote server, make sure that the software you use protects your data by encrypting them and uses a 3rd party secure cloud implementation such as Amazon AWS. FEA simulation data can be very sensitive and I would be very careful to send my FEA data to a company which would store those data in their own servers.
Why has a cloud server more computational power than your computer?
Your computer is a physical hardware, so whatever number of cores you have on your processor, this ain’t gonna change…
The number of cores for example may be 4, 8, 16, 32 but it rarely goes beyond that
(Except if you are the happy owner of a supercomputer… in that case, send me a photo please, I’ll feature you on this article ;-) )
So…
A cloud server is different as it is generally a « virtual » machine.
The number of cores it can use can change and expand in function of your needs …
This is why it is said to be « scalable »
Let’s assume for example that you have a huge Finite Element model with 10 billions of degrees of freedom (and also that you know what to do with it…)
With a normal computer, it would take years for you to calculate this model (if you can do it at all)
But with a cloud server, you can expand the number of cores and calculate much faster ;-)
Cool, isn’t it?
How can you use FEA in the cloud?
2 methods…
First, you are very geeky (like me) and you can setup your own cloud server, install an open-source solver in it and create an API that will send and receive data that you can process using python or mathlab
(I would LOVE to show you how to do all that BTW… maybe in a future blog post! Make sure you are in the email list to be notified when I do, because this would be HUGE :-) )
Or…
Second (more practical) solution is to use a software which already does all that for you!
There are several solutions on the market right now
For example, you can think about Onscale which provides you for free with a pre/post software and then gives you 10 Core/Hours per month to use their solver on the cloud (10 CH are actually a lot, you can run more than 1000 small models with that)
The advantages I see in Onscale are:
- It uses a real local pre/post software (not another in-browser app)
- The company has proprietary solvers developped for more than 20 years (They do not just take a free open-source solver and just create a cheap interface around)
- All your models and data are yours (no “community” sharing BS for free users)
- Very good possibility to integrate with Python and Matlab (Possibility to create automated FEA worfflows)
It is true that now Onscale is much more focused on solving dynamic time-domain problems for electronic and acoustic industry… but they have real Multiphysics solvers too and more will come soon ;-)
Tutorial: 2D Wave propagation in a steel plate with a defect with “FEA in the cloud” software Onscale
I talked a lot about the cloud in this article, but what does it actually LOOK LIKE to run something on the cloud?
Nothing is ever useful without a quick practical example!
Here’s a quick 3 steps tutorial that will show you how FEA in the cloud work for a 2D acoustic wave problem:
What I’ll in this 2D acoustic wave propagation in a steel plate tutorial with OnScale is the following
0- Download and install OnScale (Only if you want to try, it’s free anyway ;-) )
1- Build the steel plate with a defect model
2- Run simulation on the cloud and obtain results back from the cloud
3- Check the results in the post-process
Ok, here’s the video tutorial:
(If you just want to see how the cloud works, jump at 10:40 in the video)
The full detailed tutorial is available here
Note that OnScale does also simple static analysis, non only complex non-linear transient explicit stuffs (And yes, OnScale main solver is an explicit one ;-) )
Wants to know more about Acoustic Waves and how they propagate?
Check this article:
That’s all for today!
If this is useful for you, please leave a comment and let me know
Thank you so much for reading!
PS: What is your personal view about the cloud? I would love to know what you think! Post a comment and let me know, I read all of them
Sahithya says
As always brilliant article. Thanks for the information Cyprien
Sergei says
Yes, delegating computationally-intensive analyses to a remote server is a great way to boost design productivity.
However, with great computational power comes great responsibility.
Sometimes, computational limitations force engineers like me to come up with smarter, less heavy computational models, which can require a lot of mental effort, while with lots of computing power in the cloud the engineers would be tempted to be like “bla bla very fine mesh and solve”.
Besides, security is also a concern.
Cyprien says
You are totally right about that Sergei, however, FEA in general isn’t a tool to put into the hands of fools. You will exactly get the same behavior on local machines as well… I saw a bunch of guys purchasing little clusters just to be able to run bigger models without having to think too much about “do I actually need such a big model?”. The cloud is actually preventing people to do that… because while you can run bigger models, it is also more expensive to do so, thus engineers start to actually about reducing the model size!
Security is a concern, yes! I think Amazon is pretty secure, so if the cloud goes entirely through Amazon and everything is crypted, there shouldn’t be much security concern. Nevertheless, I am indeed a bit concerned about companies who save your model into their own server and have a total access to it internally, for me, that feel like a security concern!
aish feat says
Thanks for sharing this information
Sowmyatt says
wonderful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article. This article resolved my all queries. keep it up.