首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openmpi和var差制

Openmpi和var差制
EN

Stack Overflow用户
提问于 2016-03-07 14:31:19
回答 1查看 302关注 0票数 2

我只是使用val差制来测试openmpi-1.4/例中提供的示例:

mpirun.openmpi --np 2 valgrind --log-file=output.dat --leak-check=full --tool=memcheck ./ring_c

然后我在output.dat中找到了以下内容:

==30450== Syscall param writev(向量.)指向未初始化的字节。 ==30450== 0x54DC150:__writev_nocancel (syscall-template.S:81) ==30450== by 0x7E3B312: mca_oob_tcp_msg_send_handler (in /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so) ==30450== by 0x7E3C50A: mca_oob_tcp_peer_send (in /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so) ==30450== by 0x7E40266: mca_oob_tcp_send_nb (in /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so) ==30450== by 0x7C2FFB7: orte_rml_oob_send (in /usr/lib/openmpi/lib/openmpi/mca_rml_oob.so) ==30450== by 0x7C30637: orte_rml_oob_send_buffer (in /usr/lib/openmpi/lib/openmpi/mca_rml_oob.so) ==30450== by 0x824CBAE:?(以/usr/lib/openmpi/lib/openmpi/mca_grpcomm_bad.so)表示) ==30450== by 0x4E900FB: ompi_mpi_init (in /usr/lib/openmpi/lib/libmpi.so.1.0.8) ==30450== by 0x4EA8499: PMPI_Init (in /usr/lib/openmpi/lib/libmpi.so.1.0.8) ==30450== by 0x4009AD: main (ring_c.c:19) ==30450==地址0x65c0321是256个指定块中的161个字节。 0x4C2DEAE处的/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so):realloc (在/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)中) ==30450== by 0x4F1E619: opal_dss_buffer_extend (in /usr/lib/openmpi/lib/libmpi.so.1.0.8) ==30450== by 0x4F1E9D0: opal_dss_copy_payload (in /usr/lib/openmpi/lib/libmpi.so.1.0.8) ==30450== by 0x4EFA3DD: orte_grpcomm_base_pack_modex_entries (in /usr/lib/openmpi/lib/libmpi.so.0.8) ==30450== by 0x824CA8F:?(以/usr/lib/openmpi/lib/openmpi/mca_grpcomm_bad.so)表示) ==30450== by 0x4E900FB: ompi_mpi_init (in /usr/lib/openmpi/lib/libmpi.so.0.8) ==30450== by 0x4EA8499: PMPI_Init (in /usr/lib/openmpi/lib/libmpi.so.0.8) ==30450== by 0x4009AD: main (ring_c.c:19) ==30450==堆摘要: 退出时使用的==30450==:1,482个块中的298,974字节 ==30450==总堆使用率: 7,740个分配程序,6,258个空闲,13,223,431字节分配 ... ==30450==泄漏摘要: ==30450==绝对丢失:69个块中的51,132个字节 ==30450==间接丢失:39个块中的14,378字节 ==30450==可能丢失:0块中的0字节 ==30450==仍然可达:233464字节在1,374个块中 ==30450==被抑制:0块中的0字节 未显示==30450==可达块(找到指针的块)。 要查看它们,请重新运行:- ==30450== ==30450== ==30450==用于计数检测到的和抑制的错误,使用:-v重新运行 ==30450==使用 ==30450==错误摘要:来自63个上下文的63个错误(抑制:0从0)

根据内存检查结果,它存在内存泄漏。由于该示例由openmpi-1.4开发人员提供,是否意味着每个使用openmpi-1.4作为libary的程序都会遇到内存泄漏?弗雷德

EN

回答 1

Stack Overflow用户

发布于 2016-03-11 15:58:43

出于性能原因,OpenMPI并不是无懈可击的。但是,根据常见问题,提供了一个抑制文件。

代码语言:javascript
复制
mpirun -np 2 valgrind --suppressions=$PREFIX/share/openmpi/openmpi-valgrind.supp
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35846312

复制
相关文章

相似问题

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