Parallelization

I have a project, in which I should study the scheme that is used in MFiX to execute in parallel. and if possible, to improve the speed by changing the parallelization scheme. I dont know where is the subroutine or related code lines to parallelization. Any idea, how can I start to save the time? I have a limited time.
Appreciate any guidance.

This is not a simple thing. Parallelization isn’t one code line or one routine. To give you a sense of the scale of the question that you are asking, grep “smp” or “dmp” in the mfix source directory.

1 Like

It is depended on the platform or linux enviroment. For my case, I use build_mfixsolver --smp or --dmp to compile the parallel solver. BTW, you need to import the package for compiling in HPC such as openmp, interMPI to compile SMP or DMP solver respectively.

I am still working on the code algorithm. I cannot understand some of the varibles. can you introduce those who you know. it helps me a lot in understanding the code faster. they are:
lbuf, gbuf, idebug, ldebug, drecvbuf, dsendbuf, facebuf, isendindices, dg-cycoffset

I will grep and look at context. Might be a few days before I have time to really look at the code. Meanwhile, I can see “words” in the variables that you sent and perhaps just pointing those out will get you started.

lbuf -> l buffer
gbuf -> g buffer
idebug -> i debug mode
ldebug -> l debug mode
drecvbuf -> d receive buffer
dsendbuf -> d send buffer
facebuf -> face buffer
isendindices -> i send indices
dg-cycoffset -> dg minus cyclic offset

1 Like

Thank you,
This is really helpful for me. If you find something else, please let me know. especially on the l, g, dg abbreviations.

In this context (for lbuf, gbuf ,this is not always true):
l : local (current process or rank) variable or buffer
g : global variable or buffer

dg is related to the des grid.

1 Like

Thank you Jeff!!!

@jeff.dietiker And two more, what are the variables : lidebug, idebug?
thank you.

These are internal flags to write debug information

1 Like