0

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)

このエラーを回避するには、Java プロセスを -XX:-UseGCOverheadLimit 引数で開始する必要があります。

乾杯、マーカス

4

1 に答える 1

0

Javaの使い方から

使用法: java [-options] -jar jarfile [args...]
           (jarファイルを実行するため)

したがって、「-jar myJar.jar」の前に「-XX:-UseGCOverheadLimit -Xmx32g」オプションを指定する必要があります。

java -XX:-UseGCOverheadLimit -Xmx32g -jar ~/FReSET/freset_0.1.jar

このエラーが発生している場合は、ガベージ コレクションをこのように残業させるためにプログラムが何をしているのかが心配です。非常に多くの一時オブジェクトの原因を突き止めるために、プロファイリングを行うことをお勧めします。この質問には、チューニングに関するいくつかの回答があります。GC オーバーヘッドの制限を超えました。

于 2013-05-08T18:21:00.847 に答える