Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot allocate memory GTDB-Tk #231

Open
Anna-MarieSeelen opened this issue Nov 21, 2024 · 2 comments · May be fixed by #240
Open

Cannot allocate memory GTDB-Tk #231

Anna-MarieSeelen opened this issue Nov 21, 2024 · 2 comments · May be fixed by #240

Comments

@Anna-MarieSeelen
Copy link

Anna-MarieSeelen commented Nov 21, 2024

Hi,

I am running aviary recover and at the gtdb-tk step I keep getting a cannot allocate memory issue.

gtdbtk.log

I think the issue is probably related to this issue on github: Ecogenomics/GTDBTk#267 (comment) where they say:

"This is a known issue when running pplacer on HPCs / using scheduler systems (see the FAQ).

Briefly, the bacterial tree requires ~110GB of RAM. The HPC thinks each thread pplacer is using the full amount of memory, so multiply that by the number of threads you're using and it thinks you're out of memory, i.e. it thinks you're using 110 x 24 = 2.6TB of RAM.

Ensure that you're able to access at least 110 GB of RAM, and try run GTDB-Tk with --pplacer_cpus 1"

I think the problem is that Aviary takes the given cpus from the command line argument and gives those amount of cpu's to the pplacer argument of GTDB-Tk, which is causing the error, because of what is explained above. I thought this could be solved if i specified the amount of threads to be given to pplacer in the aviary recover command using the --pplacer-threads argument. However, I get an error when I do that since aviary does not recognize that argument.

Aviary_5449214_stderr.txt

I can circumvent this problem for now by adding --skip-taxonomy and then running gtdb-tk separately with 1 or 2 cpus, but it would be nice such an argument could be added to specify the amount of threads to be given to --pplacer.

I hope I explained everything clearly. If there is another way to solve this problem please let me know.

Best,

Anna

ps. Great program by the way! 😃

@rhysnewell
Copy link
Owner

Hi Anna,

Thanks for raising this. Previously, we did have --pplacer_cpus as its own parameter but took it out as it was confusing. Looks like we'll have to come up with some other solution to get around this issue. Just to confirm though, you were submitting this to a HPC right?

Cheers,
Rhys

@Anna-MarieSeelen
Copy link
Author

Thank you for your quick response! Yes indeed I was submitting the job to a HPC that uses SLURM.

Anna-MarieSeelen added a commit to Anna-MarieSeelen/aviary that referenced this issue Nov 26, 2024
@AroneyS AroneyS linked a pull request Dec 9, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants