java - 在批处理模式下运行 matlab 时如何增加 java 堆内存大小

标签 java excel matlab memory heap-memory

我正在我所在研究所的集中式集群 (linux) 中使用 12 个处理器运行并行 matlab 代码。代码运行良好,但无法打印 Excel 文件。我正在使用 xlwrite 函数,并在工作目录中拥有所有相关的文件夹和文件。我得到的错误是

``使用 org.apache.poi.xssf.usermodel.XSSFCell/setCellValue 时出错 Java发生异常: java.lang.OutOfMemoryError:超出 GC 开销限制

如何更改堆内存?

生成的(预期)每个 Excel 文件大约有 45000 行和 6 列,并且包含整数和 float 据。 (我在整个代码中使用了 xlwrite 函数四次)代码中使用的输入数据变量的大小约为 22MB。 同一段代码在具有 32GB RAM 的 Windows 机器上完美运行。但是我无法访问它,因此需要知道如何在 Linux 机器上运行它。 服务器中提交作业的cmd文件为:

 #!/bin/bash
#@ output     = test.out
#@ error      = test.err
#@ job_type   =  MPICH
#@ node = 1
#@ tasks_per_node = 16
#@ class = Medium128
#@ environment = COPY_ALL 
#@ queue
Jobid=`echo $LOADL_STEP_ID | cut -f 6 -d .`
tmpdir=$HOME/scratch/job$Jobid
mkdir -p $tmpdir; cd $tmpdir
cp -R $LOADL_STEP_INITDIR/* $tmpdir
matlab < filterDataVal.m 
mv ../job$Jobid $LOADL_STEP_INITDIR

最佳答案

我设法通过 ssh -X 登录集群,然后通过 GUI 上的首选项设置更改堆内存

关于java - 在批处理模式下运行 matlab 时如何增加 java 堆内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31066294/

相关文章:

java - 如何在hibernate中填充相同pojo类型的两个子成员变量

c++ - 从 Matlab 调用 C++ 类(具有内存持久性)

matlab - 直接椭圆拟合后椭圆系数的非归一化

excel - 可以安排从 SQL Developer 到 Excel 的数据导出吗?

excel - 在电子表格仍打开时将 Excel 数据导入 SAS

matlab - 图像过滤

java - 使用从 Jackson 创建的对象在 Android 上使用 OrmLite 保存子集合

编译简单程序时 Java 编译器失败

java - 无法使用 Struts 将文件上传到 MySQL

excel - VBA Excel 的比率条件要求