Improvements of Parametric Distribution Solving

Introduction

Some improvements have been added to Flux 2024 regarding the Parametric Distribution Solving:

  • setting of memory for each concurrent Flux in the windows of the distribution manager
  • increase the speed-up of the parametric distribution solving

Distribution Manager dialog box

Some improvements have been added to the distribution Manager dialog box.

It's possible to define the memory management per concurrent (secondary Flux):

  • Dynamic memory for each concurrent

  • User memory for each concurrent

Note: For the User memory option:
  • the numerical memory defined is used by each concurrent Flux
  • It's excepted that these secondary Flux need less memory than the primary
  • Allocating less memory to each secondary Flux can allow to run more concurrent Flux
  • Available memory depends on the memory allocated to the primary Flux and on the number of concurrent Flux

Speed-up

The solving of parametric scenarios with distribution has been accelerated due to improvements in file handling and management. Bottlenecks related to file copying operations required to retrieve the results have been eliminated, leading to overall shorter computation times.

The previously presented new possibility of independently adjusting the memory allocated to secondary Flux instances also tends to speed up the resolution of distributed parametric scenarios.

The global speed-up in the resolution of large parametric scenarios is illustrated by the example documented in the table below, which compares the resolution times obtained with Flux 2024 and with previous version 2023.1 for a large 2D Magneto Static project representing an electrical machine.
Magneto Static 2D - 44,206 steps

16 Secondary Flux instances

2023.1 2024
Primary Flux Memory (86 Gb) Dynamic Dynamic Dynamic Dynamic
Secondary Flux Memory (8Gb) Dynamic User Dynamic User
Time 90h 12min 69h 25min 44h 50min 33h 28min

In this example, 44,206 parametric steps were distributed among 16 cores. Consequently, 16 secondary Flux instances were executed, with 1 core per instance. Dynamic memory was used for the primary Flux in all cases, since parametric distribution requires significant memory in huge projects (86Gb in this case). For the secondary Flux instances, both Dynamic and User memory were employed, to illustrate that the new feature allowing an independent memory allocation between Primary and Secondary instances may be used to further speed up the resolution of distributed parametric scenarios.