openmp - 使用 -fopenmp 编译并同时链接到 UMFPACK?
问题描述
我希望每个人都做得很好。
我在集群上使用 OpenMP 来并行化计算。我还想链接到 UMFPACK 来求解稀疏方程组。OMP 块中不使用 UMFPACK。
但是我发现当我运行代码时,并行化并不能很好地工作。我使用 htop 来监控 CPU。它确实说有 20 个 CPU 正在运行,但条形图暗示这不是真的:
而且我的代码确实比没有通过 -lumfpack 链接的代码运行得慢得多。实际上,如果不使用 -lumfpack 链接到库,htop 应该显示如下内容:
我使用以下代码来编译和运行代码:
module load suitesparse/5.6.0
gfortran main.f90 -lumfpack -o main.out -O3 -fopenmp -ffree-line-length-none -Wno-unused -fimplicit-none -Wall -fcheck=bound,do -ffpe-trap=invalid,zero,overflow
./main.out
由于 OMP 块中没有使用 UMFPACK,为什么会-lumfpack
与-fopenmp
? 我想知道如何让它们一起工作。任何建议表示赞赏。谢谢!
解决方案
推荐阅读
- activemq-artemis - activemq-artemis 日志监控和告警
- c++ - 仅标头库的 CMake 库问题
- html - CSS按钮斜线作为背景只是编辑颜色
- javascript - 使用 JSExecutor 从另一个文档中获取文档
- javascript - 如何使引导树视图从父级折叠到子级?
- java - 如何将此 xml 响应映射到 java 对象
- python - 如果在遍历 pandas 中的多个文件时满足条件,如何跳过 for 循环迭代?
- c# - C# - 使用多个图片框处理鼠标位置
- dart - Dart GRPC 生成的类可以有自定义的 mixin 吗?
- django - CAS django - 如何直接发送用户名和密码而不重定向到 CAS 服务器 -