首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ctest和MPI并行测试

ctest和MPI并行测试
EN

Stack Overflow用户
提问于 2022-04-22 16:24:10
回答 1查看 217关注 0票数 0

我正在尝试用googleTest构建一些测试,这些测试应该测试一些MPI并行代码。理想情况下,我希望我们的CI服务器通过ctest执行它们。

我天真的方法是简单地用MPI调用ctest

代码语言:javascript
复制
mpirun -n 3 ctest

但是,只要至少执行两个测试,即使是微不足道的测试也会失败。

简单测试的示例:

代码语言:javascript
复制
TEST(TestSuite, DummyTest1) {
  EXPECT_TRUE(true);
}
TEST(TestSuite, DummyTest2) {
  EXPECT_TRUE(true);
}

我应该以其他方式推出ctest吗?还是我必须以完全不同的方式对待这件事?

更多信息:

  • 测试是通过gtest_discover_tests()添加的。
  • 直接使用MPI (mpirun -n 3 testExe)启动测试可执行文件可以获得成功的测试,但我更喜欢使用ctest
  • 版本信息:
    • googletest: 1.11.0
    • MPI: OpenMPI 4.0.3和MPICH 3.3.2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 11:16:57

根据链接到合并请求和 GitLab存储库中的问题的CMake论坛帖子,gtest_discover_tests()目前根本不支持MPI。

一个可能的解决方法是滥用CROSSCOMPILING_EMULATOR属性将包装器注入测试命令。然而,这改变了整个目标,而不仅仅是测试,因此您的里程可能会有所不同。

代码语言:javascript
复制
set_property(TARGET TheExe PROPERTY CROSSCOMPILING_EMULATOR '${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 3')
gtest_discover_tests(TheExe)

请参阅论坛帖子,以获得一个完整的最小示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71971858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档