-
Notifications
You must be signed in to change notification settings - Fork 356
Update NCI Gadi config and documentation #1096
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
Changes from 11 commits
3ac5528
f74b747
6604a74
8de4348
e09360e
7666d32
b4babd5
fbacde0
c327c7a
7366d3b
f1710d1
b723f61
907e0e9
2fda07e
e6db7c0
4813c4e
7b1b250
2bfab19
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,43 +1,31 @@ | ||
| // NCI Gadi nf-core configuration profile | ||
| params { | ||
| config_profile_description = 'NCI Gadi HPC profile provided by nf-core/configs' | ||
| config_profile_contact = 'Georgie Samaha (@georgiesamaha), Matthew Downton (@mattdton)' | ||
| config_profile_contact = 'Georgie Samaha (@georgiesamaha), Kisaru Liyanage (@kisarur), Matthew Downton (@mattdton)' | ||
| config_profile_url = 'https://opus.nci.org.au/display/Help/Gadi+User+Guide' | ||
| project = System.getenv("PROJECT") | ||
| storage = "gdata/${params.project}+scratch/${params.project}" | ||
|
jfy133 marked this conversation as resolved.
Outdated
kisarur marked this conversation as resolved.
Outdated
|
||
| } | ||
|
|
||
| // Enable use of Singularity to run containers | ||
| singularity { | ||
| enabled = true | ||
| autoMounts = true | ||
| cacheDir = "/scratch/${params.project}/${System.getenv('USER')}/nxf_singularity_cache" | ||
| } | ||
|
|
||
| // Submit up to 300 concurrent jobs (Gadi exec max) | ||
| // pollInterval and queueStatInterval of every 5 minutes | ||
| // submitRateLimit of 20 per minute | ||
| executor { | ||
| queueSize = 300 | ||
| pollInterval = '5 min' | ||
| queueStatInterval = '5 min' | ||
| submitRateLimit = '20 min' | ||
| } | ||
|
|
||
| // Define process resource limits | ||
| process { | ||
| executor = 'pbspro' | ||
| storage = "scratch/${params.project}" | ||
| project = "${params.project}" | ||
| storage = "${params.storage}" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Process doesn't have any of these directives?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can check the documentation here:
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's certainly... creative. I'd strongly recommend using
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @pontus. The version of Nextflow installed on Gadi includes more changes than just the introduction of these new directives (e.g. adding support for job submission and monitoring with the route/exec queue structure available on Gadi). Therefore, users may not be able to bring their own unmodified version of Nextflow and expect it to work on Gadi. Also, with Gadi's PBS Pro, storage locations must be specified using
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @kisarur I sort of feel uncomfortable with it (was it not possible to make a plugin rather than patch nextflow?) but it thats what you need then we have to accept that. However please could you comment very clearly everywhere in the config wherever not standard nextflow is being used. We would not want other users copying it over into their configs where they are not using your special patched version of nextflow.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the info, I also would feel rather uncomfortable with that setup but as there's no linter complaint I guess it's fine for now. I see Maxime has suggested comments to mark this as special (hopefully meaning people won't try to copy it), it would be great if you implement those. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would agree with James that this seems much better suited to a plugin that provides a custom executor than simply monkey-patching nextflow. It would be possible that custom process directives would still exist then but I think it would be far clearer for users and the plugin + executor would be embedded in the config too which gives additional indication that things are non-standard There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If it helps, we have been supporting nextflow since before plugins were available. This is how it has been done for a while and the initial focus was around getting nextflow working at all.
kisarur marked this conversation as resolved.
Outdated
|
||
| module = 'singularity' | ||
| cache = 'lenient' | ||
| stageInMode = 'symlink' | ||
| queue = { task.memory < 128.GB ? 'normalbw' : (task.memory >= 128.GB && task.memory <= 190.GB ? 'normal' : (task.memory > 190.GB && task.memory <= 1020.GB ? 'hugemembw' : '')) } | ||
| beforeScript = 'module load singularity' | ||
| } | ||
|
|
||
| // Write custom trace file with outputs required for SU calculation | ||
| def trace_timestamp = new java.util.Date().format('yyyy-MM-dd_HH-mm-ss') | ||
| trace { | ||
| enabled = true | ||
| overwrite = false | ||
| file = "./gadi-nf-core-trace-${trace_timestamp}.txt" | ||
| fields = 'name,status,exit,duration,realtime,cpus,%cpu,memory,%mem,rss' | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.