NREL / floris

A controls-oriented engineering wake model.
http://nrel.github.io/floris
BSD 3-Clause "New" or "Revised" License
217 stars 156 forks source link

New parallel option that is fully consistent with FlorisModel #982

Closed misi9170 closed 1 month ago

misi9170 commented 2 months ago

This pull requests provides a new interface for parallel computing with FLORIS. The existing ParallelFlorisModel was not fully consistent with the new FlorisModel and UncertainFlorisModel developed for FLORIS v4. This addresses the inconsistency in a new class, ParFlorisModel. ParallelFlorisModel will remain in FLORIS v4 to avoid making breaking changes, but now has a deprecation warning and will be removed in the next major version release of FLORIS.

This addresses #971 and possibly partially address #944.

Development still to take place:

Checklist before converting this draft to full PR status and preparing for merger:

misi9170 commented 2 months ago

Something to decide on is the default parallel interface. My thinking is that the default should be "multiprocessing", even though "pathos" is faster, because the multiprocessing package is pretty ubiquitous and pathos is still on version 0.x

paulf81 commented 1 month ago

Something to decide on is the default parallel interface. My thinking is that the default should be "multiprocessing", even though "pathos" is faster, because the multiprocessing package is pretty ubiquitous and pathos is still on version 0.x

I agree, using multiprocessing seems the better choice for default

misi9170 commented 1 month ago

We have decided to leave out mpi4py support for now. If requested, we may consider including this in future.