C++内存中的并行MPI代码错误



我正在努力理解我正在处理的C++代码出现内存不足错误。这是一个带有几个标志变量的科学代码,用于打开/关闭一系列代码功能。当关闭几个函数时,代码运行良好。然而,当这些例程处于活动状态时,会导致"内存不足"的情况。。。。

Qsub创建的错误文件说退出状态:-4

由于一个或多个节点内存不足,作业终止。在我做了一些补充之前,我所说的函数以前工作得很好。我基本上创建了一些指针,初始化为NULL,创建一个与之关联的内存块,在其中存储大量感兴趣的内容,然后删除[]*p

我正在努力找出问题的根源。我想知道是什么原因造成的。我相信这是一些C++编程错误(由于我对C++缺乏经验,我忽略了这个错误)。有没有办法弄清楚这个bug是什么。。。。它在哪里或如何解决。

我脑海中闪过一些想法,-使用try{}catch}-运行一些内存程序来跟踪系统中的内存使用情况(实时)-针对这种情况调试MPI/C++代码的任何其他有效方法。

  • 我读到一些关于堆栈和堆的东西,以及内存是如何存储的。。。声明2D数组、动态1D数组最安全的方法是什么。。。基于指针或基于数组定义

请用你的想法教育我。

valgrind应该能够为您提供内存泄漏的指示。

最新更新