-
Notifications
You must be signed in to change notification settings - Fork 100
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
Define default resources #676
Comments
Good comment from @LLansing moved from #668 I'm not sure if this merits opening an issue, but I thought I'd mention a problem I'm encountering with default resources + cluster execution that sounds quite similar to that encountered by @jotech I'm using the slurm cluster profile available from the cookiecutter command suggested for use in the ATLAS docs (in the cluster execution section). It seems default resources are overriding the resource parameter values set in the ATLAS rule definitions, although I'm not defining default resources on the command line or setting them else where. For example, the initialize_qc rule sets mem=config["simplejob_mem"], which is 10 (Gb) in the config.yaml. From what I can tell, this mem parameter is converted to mem_mb near the end of the ATLAS Snakefile IF mem_mb is not listed in the job resources. However, snakemake submits the job with the following resources specified: resources: mem_mb=3992, disk_mb=3992, disk_mib=3808, tmpdir=, mem=10, java_mem=8, mem_mib=3992, time_min=300, runtime=300. Clearly the mem parameter isn't being converted to mem_mb, but rather default resource values are being applied from some source unknown to me. EDIT: I've noticed in my investigation that many rules set the mem parameter, but some set the mem_mb directly. I've also notice that some rules set mem_mb to a config value * 1000, essentially converting the config Gb value to mb (e.g. rule download_gunc), whereas other jobs simply set mem_mb equal to the config Gb value, without multiplying to convert Gb to mb (e.g. rule run_gunc). Is there a pattern to these different methods of setting mem_mb? Why not set at rule resources mem_mb=config. across the board? |
I admit my resource definition is a bit of a mess. There was not standard definition for memory in snakemake or better it was changing. If I am not mistaken it should be |
I checked all the rule .smk files and the only rules in which mem_mb is set to a config value without converting gb to mb are the following rules in
|
Thank you very much. Do you want to make a PR or should I implement it? |
I will submit a simple PR |
Commenting to add to my original comment: After adding I added |
I am having the same problem for all the individual sbatch job run parameters like, All my jobs are getting killed due to irregular memory allocations (the JAVA -XMs & disk_mb values are always set to 102GB & 1000M respectively). I attempted to include a new parameter When I run atlas with the command But the java_mem param takes on a value of around 153GB (ignoring the Essentially my jobs are killed because the program is allocating 1000M for the job, but the JAVA heap size gets more space than the total RAM. I seem to be stuck at this point. Thanks for this thread/feature request btw. |
Sorry @the-eon-flux I missed your comment.
Solution
Intermediate solutions:
assuming you have 80 in your config file. |
@SilasK, Thank you so much for your help. I tried solution number 2 and it has started sbatch jobs for the rule 'rule_decontam' with the user-specified parameters. I had jobs crashing for this specific rule earlier so I am running the rule_decontam first. Afterward, I will see if there are problems with other rules as well.
This was my atlas cmd which was wrapped in an sbatch cmd. |
Fortunately, I was also successful after experimenting for some time. On our SLURM system, the following config seems to work now:
I'm setting the This thread was very helpful. Thank you very much! |
I have a short follow-up question after reading about the rule-specific resource arguments. For me, the Could something like this work instead?
|
Yes, it should, but it is.
There is also an option to use virtual disk shm to accelerate eggNOG. |
HI all :). This thread has been super helpful for me as I have also been having problems with really strange mem_mb and disk_mb being set. @SilasK has this been fixed at this point or is this still a working process. I am using a slurm system and am encountering the problems above (setting the reosuces manually in the actual atlas command has fixed this and I am progressing slowly, but it would be nice to not have to do this if at all possible). I am especially having problems with the gunc_download rule, with this setting disk_mb to a value of 1000. Even specyfying larger amounts of mem_mb and disk_mb this rule keeps failing saying I am out of space. I have checked all my space allocations on my node and there is ample room for this database. I have attached my command below that has got me through the first few steps of the pipeline :).
If you need anymore information please let me know and I can submit it. |
I agree the default mem should be in the atlas command. |
There was no activity since some time. I hope your issue is solved in the mean time. Thank you for your contributions. |
If default resources are defined via the command line the resource attribution in atlas fail See #668
The text was updated successfully, but these errors were encountered: