Mulit-Process environment for FastV8

Hello,

     I have my thesis on this topic {A testing environment conceptually developed, which make use of NRELs FAST turbine simulator in a Multi-process environment}. 

My question is, do FAST support Multi-process environment? or can FAST be run in Multi-process environment? I came up with alternative method (since this is my first time using FAST) for this same as Bonnie Jonkman mention in

[url]Instructions for Compiling FAST] as

if Yes, then How, Can you provide any example? i am unable to find any data related to this topic.

Thanks
Muddassir Nawaz

Dear Muddassir,

Bonnie’s response pertained to running multiple FAST simulations at the same time on multiple cores or multiple nodes. She was not referring to parallelization of an individual FAST simulation.

An NREL colleague—Mike Sprague—was funded by the Intel Parallel Computing Center to begin parallelizing FAST on the Intel Xeon and Xean Phi processors, but I’m not been involved in that project and don’t know the status (I’ll ask him and follow up when I know more).

We have implemented OpenMP-based parallelization in our yet-to-be-released FAST.Farm tool for full wind-farm simulation.

Best regards,

Dear jason,

               Thank you for your response. 

I will wait for your response.

My idea is to load multiple instances of FAST. Only changing parameter will be the controller dll. (this is only idea i have for Multi-Process environment :exclamation: )
I am new to FAST, Its my third week since i started studying FAST. If you have any information/document related to my idea, that would be helpful.

Thank you
best regards
Muddassir Nawaz

Dear Muddassir,

You don’t need to do anything special to load multiple instances of FAST at the same time. Simply invoke as many FAST executable simulations as you have cores on your computer and the simulations will run without trouble.

Best regards,

Dear Jason,

Are there any news regarding the parallelization of an individual FAST/OpenFAST simulation?

Best regards,
Ricardo Amaral

Dear Ricardo,

Not much. The comments in the posts above are still valid. I don’t believe the Intel Parallel Computing Center project led to any substantial changes to OpenFAST.

OpenMP parallelization has been added to the free-vortex wake submodel of AeroDyn (OLAF).

Within our ARPA-E ATLANTIS project WEIS, we do have some funds for later in 2021 to outline strategies to reduce the computational expense of OpenFAST, but this project has a limited scope and will be mostly use to outline the strategies rather than on specific implementations.

Best regards,

Dear Jason,

In the reply you mentioned OpenMP parallelization has been added to OLAF. Is it only available while using FAST.Farm built with OpenMP or a single OpenFAST executable can be compiled with OpenMP (I meant via Visual Studio) as well so far? Thanks.

Kind regards,
PY

Hi @Puyi.Yang
We don’t have an openMP solution for OpenFAST, but you can enable OpenMP in your Visual studio solution by right clicking on the FASTLib, go to Properties > Configuration Properties > Fotran > Language > Process OpenMP Directives > Enabled. You might have to do the same for the FAST solution.
Kind regards,
Emmanuel

Hi @Emmanuel.Branlard

Thank you for your advice! I compiled OpenFAST v3.5.0 with openMP enabled successfully by turning openMP on in the Properties, however that does not work with the dev branch. Is that a reasonable situation? Thanks.

Kind regards,
Puyi

Hi Puyi,
The procedure should work for any version of OpenFAST. You might want to retry and make sure you apply it to the configuration you are compiling (e.g. Release or Debug).
Emmanuel

Dear @Emmanuel.Branlard

I’m just curious. How does the OLAF module apply OpenMP? This question comes from a try of IEA15MW’s official example for OLAF, and OpenMP was enabled in the executable, the entire capacity of CPU threads was assigned as well. However, the capacity was not fully used during the try, why? If my recall was correct, FAST.Farm generally uses all the threads assigned to it. Just for example. If you give 20 threads to FAST.Farm, then it can use up to 20 threads. But it seems like OLAF only used no more than ~50% threads during the simulation. Would you like to give me some hints? Thank you!

Kind regards,
Puyi