• 启用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
  • 相关阅读:
    .NET Cache缓存
    异步
    es6常用功能
    vue-router路由懒加载
    vue中nextTick和$nextTick
    动态模板中 swiper 划不动问题
    javaScript正则判断手机号
    Mac终端使用技巧
    alert IOS自带域名
    vue css background路径不对
  • 原文地址:https://www.cnblogs.com/zhcpku/p/13556928.html
Copyright © 2020-2023  润新知