2017-09-01 4 views
0

Ich habe einen Code in Bluehive ausgeführt. Der Code hat einen Parameter N. Wenn N klein ist, läuft der Code einwandfrei. Aber für etwas große N (zB N = 10) wird der Code für Stunden laufen und am Ende bin ich immer folgende Fehlermeldung:slurmstepd: Fehler: Überschritt Speichergrenze überschritten

slurmstepd: error: Exceeded step memory limit at some point. 

Die Batch-Datei, die ich anmelde hat den folgenden Code:

#!/bin/bash 
#SBATCH -o log.%a.txt -t 3-01:01:00 
#SBATCH --mem-per-cpu=1gb 
#SBATCH -c 4 
#SBATCH --gres=gpu:1 
#SBATCH -J Ankani 
#SBATCH -a 1-2 

python run.py $SLURM_ARRAY_TASK_ID 

Ich bin genug Speicher für den Code zuweisen. Aber immer noch den Fehler

"slurmstepd: error: Exceeded step memory limit at some point." 

Kann jemand helfen?

Antwort

0

Ich werde jedoch feststellen, dass das Speicherlimit, das in dieser Fehlermeldung durch "Speicherbegrenzung" beschrieben wird, nicht unbedingt mit der RSS Ihres Prozesses zusammenhängt. Diese Grenze wird durch die cgroup Plugin zur Verfügung gestellt und durchgesetzt werden, und Speicher Cgroups

track not only RSS of tasks in your job but file cache, mmap pages, etc. If I had to guess you are hitting memory limit due to page cache. In that case, you might be able to just ignore this error since hitting the limit here probably just triggered memory reclaim which freed cached pages (this shouldn't be a fatal error).

If you'd like to avoid the error, and you're only writing out data and don't want it cached, then you could try playing with posix_fadvise(2) using the POSIX_FADV_DONTNEED which hints to the VM that you aren't going to read the pages you're writing out again.

Hier ist the source of this text

Verwandte Themen