zoukankan      html  css  js  c++  java
  • 启用valgrind的MPI支持

    TL;DR

    sudo apt install valgrind-mpi

    内存泄漏和越界问题,是C/C++程序常见问题。有一些工具提供了检测内存泄漏的功能,如 valgrind 的 memchecker。
    其工作原理大致是这样的:通过替换掉可能分配内存的函数,来追踪内存使用情况,典型如重载 malloc/free。当然,这也就意味着,栈上分配的静态数组越界是无法检测到的。
    valgrind最早用于单进程内存检测,但是后续也提供了多进程支持,如MPI。
    对于启用valgrind的MPI支持,网上给出的大多是手动编译,添加链接库的方式,比较麻烦,这里提供一种简单方案。

    我们使用包管理器提供的预编译好的版本。
    安装valgrind:

    sudo apt install valgrind
    

    然后查看系统中此时是否提供了mpiwrapper:

    ompi_info | grep mpi
    

    输出为空,默认没有提供mpiwrapper,通过以下命令安装:

    sudo apt install valgrind-mpi
    

    再次执行命令查看,可以看到:

    libmpiwrap-amd64-linux.so
    

    mpi支持库已经安装。

    ps:
    常见问题测试样例和检测命令,可参考@Madcola Linux下内存问题检测神器:Valgrind

    系统环境:

    • Ubuntu 18.04 LTS
    • Open MPI v4.0.4
  • 相关阅读:
    kvm virtio
    GPU 线程块/线程束
    ubuntu source
    React
    分布式系统
    honpeyhonepy
    css是干什么的
    bootstrap中的横的列
    数据安全之 alert logic
    viewset的使用的方法
  • 原文地址:https://www.cnblogs.com/zhcpku/p/13556928.html
Copyright © 2011-2022 走看看