Multiwfn forum

Multiwfn official website: http://sobereva.com/multiwfn. Multiwfn forum in Chinese: http://bbs.keinsci.com/wfn. E-mail of admin: sobereva[at]sina.com

You are not logged in.

#1 2022-05-10 13:59:39

i.s.ger
Member
Registered: 2020-12-01
Posts: 55

Use OpenMP standard instead of Intel extension

Dear Tian Lu,

I checked KMP_* calls and noticed that is an extension of OpenMP which currently has its own similar parameter that makes KMP_* calls useless. In the patch (0001-Use-OpenMP-standard-instead-on-Intel-extension.patch.txt), I replaced all calls of KMP_ with simple checking of the OMP_STACKSIZE environment variable. Note, that before the patch, MultiWFN checked KMP_STACKSIZE environmental variable under Linux/MacOS (so, the changes are related only to env.variable) and in the case of Windows, MultiWFN calls the KMP_SET_STACKSIZE_S routine. Unfortunately, according to the OpenMP standard, there is no equivalent of the KMP_SET_STACKSIZE_S routine, so only the reading of env.variable is the way to set up OMP_STACKSIZE under Windows/Linux/MacOS.

Updating of manual should not be difficult for Linux; for Windows, it requires repeating Linux part with some minor changes.

How to setup OMP_STACKSIZE under Windows:

PowerShell: $env:OMP_STACKSIZE = "100M"
CMD: set OMP_STACKSIZE=100M

It works both for gfortran and ifort (I checked it with a small program).

Best regards,
Igor

Offline

#2 2022-05-11 05:13:10

sobereva
Tian Lu (Multiwfn developer)
From: Beijing
Registered: 2017-09-11
Posts: 1,624
Website

Re: Use OpenMP standard instead of Intel extension

Dear Igor,

Thank you, your suggestion is fully reasonable, but this part of change cannot be incorporated into the official version of Multiwfn. The main (and sounds ridiculous) reason is that I found there are (really) a lot of Windows users who don't know anything about the command line environment (nowadays many beginners in computational chemistry field don't even have basic common sense of using computer!!! I don't know how it is in the world, but at least that's the real situation in Chinese), they don't even know how to open the command line window, and it is often very hard for me to explain for them how to set environment variables correctly... So for the Windows version of Multiwfn, I still intend to keep the current code and avoid the user having to manually set environment variables.

Best regards,

Tian

Offline

#3 2022-05-16 08:35:35

i.s.ger
Member
Registered: 2020-12-01
Posts: 55

Re: Use OpenMP standard instead of Intel extension

Dear Tian Lu,

There is a new patch, which keeps current behavior under Windows when Multiwfn is compiled using ifort. In the case if someone uses a non-Intel compiler, the Windows version will be the same as Linux. It is actual for building Multiwfn using gfortran under Linux. 0001-OpenMP-and-MKL-initialization.patch.txt

I also wrapped MKL calls in #ifdef for making possible usage of other BLAS/LAPACK implementations. Makefile is changed for its correct compilation.

Best regards,
Igor

Offline

#4 2022-05-16 11:32:17

sobereva
Tian Lu (Multiwfn developer)
From: Beijing
Registered: 2017-09-11
Posts: 1,624
Website

Re: Use OpenMP standard instead of Intel extension

Dear Igor,

I just updated source code package on official site, your patch has been applied with minor adaptations.

At the same time, I added a new line into "Compilation method.txt" for Windows version:
In "Command Line" sub-tab, add "/DINTEL_MKL" to the text box.

Best regards,

Tian

Offline

Board footer

Powered by FluxBB