Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{math}[gompi/2022b] SCOTCH v7.0.3 #17459

Merged
merged 5 commits into from
Jul 19, 2023

Conversation

furstj
Copy link
Contributor

@furstj furstj commented Mar 2, 2023

(created using eb --new-pr)

@furstj
Copy link
Contributor Author

furstj commented Mar 2, 2023

SCOTCH library supports CMake since 7.0.3. Under my opinion it will be better to use generic CMakeMake easyblock.

@furstj
Copy link
Contributor Author

furstj commented Mar 13, 2023

@jfgrimm compilation without -DBUILD_SHARED_LIBS=ON produces static libraries on my system. May be that SCOTCH somewhat bypasses standard CMakeMake setup.

-DINSTALL_METIS_HEADERS=OFF is essential to avoid compilation problems with other libraries. The same trick was in scotch easyblock (see lines 135-137 in the easyblock scotch.py). Therefore I prefer to follow this behavior and to use INSTALL_METIS_HEADERS=OFF.

@boegel boegel added the update label Mar 15, 2023
@boegel boegel added this to the 4.x milestone Mar 15, 2023
@furstj
Copy link
Contributor Author

furstj commented Mar 31, 2023

It seems that there is a problem with OpenFOAM build which requires non-threaded SCOTCH. Therefore I propose to switch back to version based on scotch.py easyblock.

@furstj
Copy link
Contributor Author

furstj commented Mar 31, 2023

@mboisson I did some tests with OpenFOAM v2212 witch threaded scotch and I didn't found any problem yet. Nevertheless, I added threadedmpi = False as in your eb to keep compatibility with OF10.

@mboisson
Copy link
Contributor

For reference, the threaded-scotch issue with OpenFOAM is discussed in this issue: #15907

@furstj
Copy link
Contributor Author

furstj commented Mar 31, 2023

I'm aware of #15907. I tried the motorBike tutorial without any problems both with threaded and non-threaded SCOTCH with OF 2212.

@mboisson
Copy link
Contributor

mboisson commented Mar 31, 2023

Ok, then maybe the issue with threaded SCOTCH is simply resolved in version 7.x. Or maybe it simply does not happen with OpenFOAM v2xyz (only with OpenFOAM 10, 11, etc.)

@furstj
Copy link
Contributor Author

furstj commented Apr 1, 2023

I will try to install OF10 and check it....

@furstj
Copy link
Contributor Author

furstj commented Apr 2, 2023

@mboisson Indeed, the installation of OF10 failed during sanity checking for SCOTCH 7.0.3 without threadedmpi=True With threadedmpi=False the installation was successful. Therefore, the thradedmpi=False is still necessary. Thanks for hint.

@furstj
Copy link
Contributor Author

furstj commented Jul 18, 2023

@mboisson, @boegel Is it possible to review/approve this PR? SCOTCH is used by many other easyconfigs (OpenFOAM, PETSc, ...).

@mboisson
Copy link
Contributor

I can't approve PRs in this repo (fortunately ? unfortunately ? I don't know)

source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/']
sources = ['%(namelower)s-v%(version)s.tar.gz']
checksums = ['5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5']
threadedmpi = False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, i tried following the dicussion, but i'm still hazy on this. You say we still need to disable this, but we have never had a SCOTCH easyconfig that set this before. As far as i can tell, this was always the default (actually, default in gompi, default on in iimpi), so should we just leave it out in this easyconfig as well?

Copy link
Contributor

@mboisson mboisson Jul 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, we still need to disable this. It was always broken in many of the builds of OpenFOAM done by EB as far as I know.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenFOAM.org requires a non-threaded MPI version of SCOTCH. Whether the flag makes it into the default recipe or in a separate recipe (which is what we did in our stack) does not really matter.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having threaded MPI version of SCOTCH is the source of the following long-standing issues: #7093
#15907
and is discussed upstream:
https://develop.openfoam.com/Development/openfoam/-/issues/2791

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, we still need to disable this.

I thought we were already disabling it by default, but i misread the code;
https://github.com/easybuilders/easybuild-easyblocks/blob/develop/easybuild/easyblocks/s/scotch.py#L109
I missed the not in not in

But the comment in the easyblock suggests this is some old crap that should be removed a looong time ago.

        # For backwards compatability of v2.8.0 this is necessary but could be removed on a major version upgrade
        mpi_family = self.toolchain.mpi_family()
        if self.cfg['threadedmpi'] is None and mpi_family not in [toolchain.INTELMPI, toolchain.QLOGICMPI]:
            cflags += " -DSCOTCH_PTHREAD"

version 2.8.0 of what i wonder.. it couldn't be SCOTCH since that would be too ancient. I traced it back to this PR:
easybuilders/easybuild-easyblocks#914
so it was referring to EasyBuild 2.8.0

So, i guess this part of the easyblock should have been removed a long time ago.

Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Micket
Copy link
Contributor

Micket commented Jul 19, 2023

@boegelbot please test @ generoso

@Micket
Copy link
Contributor

Micket commented Jul 19, 2023

Test report by @Micket
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
vera-c1 - Linux Rocky Linux 8.7, x86_64, Intel Xeon Processor (Skylake), Python 3.6.8
See https://gist.github.com/Micket/c08593b5344fb5eb75bb671a361e10dd for a full test report.

@boegelbot
Copy link
Collaborator

@Micket: Request for testing this PR well received on login1

PR test command 'EB_PR=17459 EB_ARGS= EB_CONTAINER= /opt/software/slurm/bin/sbatch --job-name test_PR_17459 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 11272

Test results coming soon (I hope)...

- notification for comment with ID 1642405326 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
cns1 - Linux Rocky Linux 8.5, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/d225b18de4162275c56f5763aff6d372 for a full test report.

@Micket
Copy link
Contributor

Micket commented Jul 19, 2023

@boegelbot please test @ jsc-zen2

@Micket
Copy link
Contributor

Micket commented Jul 19, 2023

Going in, thanks @furstj!

@Micket Micket merged commit b1a5577 into easybuilders:develop Jul 19, 2023
10 checks passed
@boegelbot
Copy link
Collaborator

@Micket: Request for testing this PR well received on jsczen2l1.int.jsc-zen2.easybuild-test.cluster

PR test command 'EB_PR=17459 EB_ARGS= /opt/software/slurm/bin/sbatch --mem-per-cpu=4000M --job-name test_PR_17459 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen2.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 3003

Test results coming soon (I hope)...

- notification for comment with ID 1642417376 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen2c1.int.jsc-zen2.easybuild-test.cluster - Linux Rocky Linux 8.5, x86_64, AMD EPYC 7742 64-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/boegelbot/6758d3f888cdb365b8df99a8cb80aafb for a full test report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants