Building on M1 Mac.

21 views
Skip to first unread message

Naoto Nakatsuji

unread,
May 1, 2025, 5:16:26 PMMay 1
to qmcpack
Dear whom may concern,

I have few questions about the building of QMCPACK. 

— How can I fix the building process when I have failed tests? 

I’m trying to build QMCPACK in my local M1 Mac by following the manual (https://qmcpack.readthedocs.io/en/develop/installation.html). And I’ve done the compile by the both way using Macports and Homebrew. 

However, for both cases, the deterministic tests,

ctest -j 8 -R deterministic

gives the following errar code as below. I also putted LastTest.log on this post.

99% tests passed, 2 tests failed out of 1201

> Label Time Summary:

> QMCPACK                     = 528.68 sec*proc (154 tests)

> QMCPACK-checking-results    =  26.28 sec*proc (948 tests)

> coverage                    =  94.83 sec*proc (10 tests)

> deterministic               = 622.40 sec*proc (1197 tests)

> quality_unknown             = 622.40 sec*proc (1197 tests)

> unit                        =  53.39 sec*proc (46 tests)

>

> Total Test time (real) =  54.42 sec

>

> The following tests FAILED:

 37 - deterministic-unit_test_estimators (Failed)       deterministic quality_unknown unit

 45 - deterministic-unit_test_new_drivers_mpi-r16 (Failed) deterministic quality_unknown unit

> Errors while running CTest

> Output from these tests are in: /Users/nakatsuji/2025/Monte_Carlo/qmcpack/qmcpack-4.0.0/build/Testing/Temporary/LastTest.log

> Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.


- Naoto

LastTest.log

Paul R. C. Kent

unread,
May 5, 2025, 2:08:29 PMMay 5
to qmcpack
Thanks for trying QMCPACK. The good news is that both of these problems are likely ignorable:

1. deterministic-unit_test_estimators is unfortunately known to fail on M1 mac and Apple Silicon in general. We have not been able to reproduce the problem on any other machines, including on other ARM systems. We think there is something specific Apple's environment. If we do have a subtle bug here it is benign, since all the other tests are good, including the integration tests for the estimators.
2. deterministic-unit_test_new_drivers_mpi-r16: If you can post the output of ctest runs with "--output-on-failure" added we can comment further. The test always passes on our test systems, including on macOS and Linux. Assuming MPI runs are actually running to completion for you, this problem could also be ignored.

Many of the QMCPACK developers build on Mac successfully, so please followup if you run into any other issues -- they should be quick to solve.

Naoto Nakatsuji

unread,
May 5, 2025, 2:45:41 PMMay 5
to Paul R. C. Kent, qmcpack
Dear Paul,

Thank you for your reply and the comments.

I run the ctest by 
> ctest -R deterministic --output-on-failure

Please find the output file "LastTest.log" attached to this email. I really appreciate your help.

SIncerely,
Naoto

--
You received this message because you are subscribed to a topic in the Google Groups "qmcpack" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qmcpack/RmnBY2WA2b0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qmcpack+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qmcpack/ac6fe396-583c-47bd-ae4d-0c69c0694127n%40googlegroups.com.
LastTest.log

Paul R. C. Kent

unread,
May 6, 2025, 9:50:58 AMMay 6
to qmcpack
From the log we can indeed see that fortunately these errors are occurring for the reasons we speculated. The estimators one is the usual problem on mac. The mpi-r16 one is failing because your MPI installation is configured by default to fail if you attempt to use more processes than you have cores. The failing test is trying to use 16. This is standard behavior for many MPI installations, e.g. OpenMPI. Put '--oversubscribe' on the mpiexec line or set an environment variable to change. You can check 'mpiexec -n 16 --bind-to none --oversubscribe qmcpack some_input_file.xml' works first. Then "export OMPI_MCA_rmaps_base_oversubscribe=true" _might_ change the correct default on mac. You can also set options when running ' cmake -DMPIEXEC_PREFLAGS="--bind-to none --oversubscribe" -Dyour_previous_configuration_settings ../qmcpack' ; check the output of cmake to see that oversubscribe appears when it prints how mpirun will be used.

(Unfortunately I wasn't able to test the above since a fresh installation of macports was failing for me last night due to some new-to-me macports compiler issues. Will be investigating.)

-- Paul
Reply all
Reply to author
Forward
0 new messages