我已向SLURM提交了一份sbatch作业。
#!/bin/bash
#SBATCH --job-name=freset_weighting
#SBATCH --output=freset.out
#SBATCH --error=freset.err
#SBATCH --time=120:00:00
#SBATCH --mem=32769
#SBATCH --mail-type=BEGIN
#SBATCH --mail-type=END
java -jar ~/FReSET/freset_0.1.jar -XX:-UseGCOverheadLimit -Xmx32g
作业因以下错误而停止:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.regex.Matcher.<init>(Matcher.java:207)
at java.util.regex.Pattern.matcher(Pattern.java:885)
at java.util.regex.Pattern.split(Pattern.java:994)
at java.util.regex.Pattern.split(Pattern.java:1056)
应该使用-XX:-UseGCOverheadLimit参数启动java进程以避免此错误。
干杯, 马库斯
答案 0 :(得分:0)
来自java用法
Usage: java [-options] -jar jarfile [args...] (to execute a jar file)
所以你应该在“-jar myJar.jar”之前指定选项“-XX:-UseGCOverheadLimit -Xmx32g”
java -XX:-UseGCOverheadLimit -Xmx32g -jar ~/FReSET/freset_0.1.jar
如果你收到这个错误,虽然我会担心你的程序正在做什么来使垃圾收集像这样加班。我建议做一些分析,找出造成这么多临时对象的原因。这个问题有一些关于调优的答案,GC overhead limit exceeded。