2. How is the distribution done?#
Code_Aster being a finite element code, the data distribution implemented to control parallelism is a mesh distribution (” EOD “ for Element Oriented Distribution). Each processor is thus responsible for a set of meshes (physical or late) and will therefore only perform the elementary calculations, assemblies and fills of corresponding data structures.
This distribution of the cells between the processors is done at the level of model assignment (command AFFE_MODELE). Depending on the distribution mode chosen by the user (MAIL_DISPERSE, MAIL_CONTIGU..) and the number of processors allocated for the job, the code operates the MAILLE/PROC distribution and stores it in the data structure PARTITION. Moreover, this distribution can be modified during the calculation via using the MODI_MODELE command.
Note:
Late meshes: Meshes that do not exist in the initial mesh and that are added during the calculation to facilitate data entry. They are most often encountered with Dirichlet conditions imposed with AFFE_CHAR_MECA or when using the continuous contact method
To facilitate the management of late meshes, they are automatically assigned to the master processor. This work overload generally leads to a low load imbalance. Otherwise, the user can restore the balance by unloading this processor (via the keyword CHARGE_PROC0_MA /SD*) from a certain percentage of the physical meshes that are initially assigned to him (or from a certain number of sub-domains if the distribution is sub-domain oriented) .*