• Multiwfn forum

    Multiwfn official website: http://www.shanxitv.org/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,468
    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,468
    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

    久久精品国产99久久香蕉