应用程序(Java+;Matlab)仅在集群上使用过多内存

应用程序(Java+;Matlab)仅在集群上使用过多内存,java,matlab,cluster-computing,matlabcontrol,Java,Matlab,Cluster Computing,Matlabcontrol,我已经编写了一个使用8个线程的Java应用程序。该应用程序使用matlabcontrol(MatConsoleECTL)从Java中打开和使用Matlab会话。目前我正在使用4个Matlab会话(我已经创建了一个Matlab会话池) 如果我在本地PC上运行应用程序,一切都正常。总体内存消耗(Java+Matlab会话)约为6GB 现在我还想在我的大学集群上执行它。在将作业提交到集群时,我为每个线程/核心分配了2GB内存(总共16GB内存)。作业顺利完成,但资源使用情况奇怪 在我的本地计算机上使用

我已经编写了一个使用8个线程的Java应用程序。该应用程序使用matlabcontrol(MatConsoleECTL)从Java中打开和使用Matlab会话。目前我正在使用4个Matlab会话(我已经创建了一个Matlab会话池)

如果我在本地PC上运行应用程序,一切都正常。总体内存消耗(Java+Matlab会话)约为6GB

现在我还想在我的大学集群上执行它。在将作业提交到集群时,我为每个线程/核心分配了2GB内存(总共16GB内存)。作业顺利完成,但资源使用情况奇怪

在我的本地计算机上使用的最大内存为6GB(最大内存)。这没关系。但最大保留内存为45GB(最大交换容量)。以下是群集使用的最大内存和最大交换的简短定义:

最大交换是应用程序分配的内存和最大内存 是实际使用的内存(即实际写入的内存)。作为 例如,最大交换>最大内存。在大多数应用程序中,最大交换大约是 比最大内存高10–20%

我不知道为什么分配的内存这么高。我的假设是它与Matlab有关。因此,也许打开的Matlab会话分配了那么多内存(但从未使用过)。我在Matlabcontrol中找不到任何选项来设置分配的内存

有人知道吗