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

conda package doesn't have pplacer_threads option? #209

Open
CJREID opened this issue Jul 12, 2024 · 2 comments
Open

conda package doesn't have pplacer_threads option? #209

CJREID opened this issue Jul 12, 2024 · 2 comments

Comments

@CJREID
Copy link

CJREID commented Jul 12, 2024

Hi Rhys,

I'm using aviary via the conda package and I've been having gtdbtk run out of memory with the default setting of 48 threads for pplacer so I tried to set it lower on the command line --pplacer_threads 1 but I get this error.

usage: aviary [--version] [--verbosity VERBOSITY] [--log LOG]
              {assemble,recover,annotate,diversity,cluster,viral,complete,isolate,batch,configure}
              ...
aviary: error: unrecognized arguments: --pplacer_threads 1

I've also noticed that when I print the help, the option is not there. I also tried with the -p option and got the same error. The parameter seems to be present in all the .smk files and a number of python scripts within the package but just doesn't work as a command line option.

Cheers,
Cam

@rhysnewell
Copy link
Owner

Hey Cam,

That's because --placer_threads is no longer a command line argument. It was deprecated awhile ago, the help message of aviary reflects it but the docs are out of date. The pplacer_threads variables are now set via the max_threads cli argument. We just automatically cap pplacer out at 48 threads because that software has a deadlock when given more CPU. Just figured it would be easier for the user to not worry about manually setting the amount of pplacer threads they want every time

Cheers,
Rhys

@CJREID
Copy link
Author

CJREID commented Jul 13, 2024

Ah ok, yeah I read here that pplacer uses (or appears to use) PARENT_MEMORY * (N_CHILDREN + 1) GB. So whatever I set it'll run out because the memory that the rule takes is the same as what the slurm job requests? Or am I misunderstanding?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants