This is an old revision of the document!


Parallel Computing in ENVI-met

Starting with Version 4.3, ENVI-met allows parallel computing on several CPU cores in the full versions (BUSINESS/SCIENCE). The BASIC and STUDENT editions do not support parallel computing.

Parallel computing is a wonderful option to reach never observed calculation speeds, but it is also a source of pitfalls and misunderstandings. According to Stephen Toub from Microsoft [1], there are even pitfalls for pitfalls.

Many people have a concept what parallel computing is, and they want to have it in their applications, but as this is a relatively new area of computing, it contains many misunderstandings and misleading expectations we try to clarify in this Knoledge Base.

So, please read the following sections carefully to get most of the new options of ENVI-met.

Basic Questions

The speed of the computer CPU will most likely not increase in the near future as the 4 GHz imposes a physical boundary on conventional computer chips. In contrast, the number of CPU cores or virtual cores is increasing constantly, like the 16/32 cores now available for desktop computers with the AMD ThreadRipper or the 20/40 cores INTEL i-10 processors. On servers or High-Capacity Systems, even hundreds of cores may be available.

ENVI-met now offers the option to distribute parts of the calculation routines over several CPUs resulting in the option of a much higher computation speed.

No. Because running in parallel means, that you pack a computation task “package”, send it to the CPU core, let it be calculated and then get it back. In other words, the calculation of this package is (MUST) be independent of the tasks of other packages calculated at the same time. If you send out 200 packages, you will never know in which order and when they will actually be finished. A microclimate model like ENVI-met is based on the interactions between the different variables and elements. These interactions cannot be solved in parallel because the conditions of one element highly depend on the state of the other elements. So, after a number of parallel calculations, ENVI-met needs to gather and analyse the results and update all variables and processes before a new round of parallel computing can begin.

Some modules cannot be executed in parallel at all because they highly depend on interactions between different elements. This is why most of the time, ENVI-met cannot use 100% of your CPU.

No.

As outlined in the paragraph, parallel computing can be seen as packing calculation task “packages”, sending them to a CPU core and, once they are finished, getting them back and copying the results back to the main computer memory.

This process generates an significant overhead to the computing process which is not required when running ENVI-met in single core mode, because in single core mode, only one CPU core is working on the data and no copying and package sending is required.

If you run small models, say 50x50x20 grids, the overhead of package packing may consume all the benefits of the parallel computing. Moreover, it may be slower compared to a sequential single-core calculation.

Parallel computing is at its best if the packages send are large and the tasks included are heavy like in large ENVI-met models.

Practical Issues

Yes. In older ENVI-met versions, each ENVI-met simulation did use ONE core, or better, the computation equivalent to one core.

Now, in the full version, by default, each simulations uses ALL available cores installed in the computer. So, if you have e.g. 8 cores in your computer, by default, each simulation will try to acquire 8 cores.

If you now start another simulation with the same settings on the same PC, the new simulation will try the same.

As a consequence, both simulations will struggle for computer resources and the execution time will be very inefficient due to this competition.

If you plan to run more than one simulation on the same computer, you should select modified Parallel Computing options in the ProjectWizard such as “HALF” (running 2 simulations) or “QUAD” (4 simulations).

You may also decide to turn of parallel computing in general (set 1 Core), because you already perform a kind of parallel computing when executing serveral ENVI-mets at the same time.

References

  1. Toub, Stephen (2010): Patterns of parallel programming, Microsoft Corp., available online: Patterns of parallel programming
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies