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

Update Wrapper to Support Pegasus 5.0.0 #73

Merged
merged 14 commits into from
Feb 8, 2021
Merged

Conversation

lichtefeld
Copy link
Collaborator

@lichtefeld lichtefeld commented Jan 12, 2021

Closes #48

@lichtefeld
Copy link
Collaborator Author

I believe there are still a few pending changes here including:

  • updating the resource requests to follow the outline of this page from pegasus' documentation as we currently add all these parameters as extra parameters when we should adapt to using the standard profiles for all the non-extra types.
  • Troubleshooting the current unit test failures which are currently because we're using an XML parser to verify we've written the DAX correctly when the DAX representation has been changed to YAML
  • Verifying a proper install of Pegasus 5.0.0 on saga03 for current testing -- When trying to run a test workflow I'm currently unable to submit as it appears the appropriate 'glite' configuration may not be complete. See here for information about what may be required.

…rs rather than XML to be inline with Pegasus5
@codecov
Copy link

codecov bot commented Jan 14, 2021

Codecov Report

Merging #73 (2455bed) into master (55f57b7) will increase coverage by 1.65%.
The diff coverage is 98.82%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #73      +/-   ##
==========================================
+ Coverage   74.77%   76.42%   +1.65%     
==========================================
  Files          13       13              
  Lines         547      560      +13     
==========================================
+ Hits          409      428      +19     
+ Misses        138      132       -6     
Impacted Files Coverage Δ
...egasus_wrapper/scripts/example_workflow_builder.py 0.00% <0.00%> (ø)
pegasus_wrapper/artifact.py 92.68% <100.00%> (ø)
pegasus_wrapper/pegasus_utils.py 100.00% <100.00%> (+21.05%) ⬆️
pegasus_wrapper/resource_request.py 88.04% <100.00%> (-2.28%) ⬇️
pegasus_wrapper/workflow.py 96.64% <100.00%> (+0.99%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 15e805c...2455bed. Read the comment docs.

@lichtefeld lichtefeld marked this pull request as ready for review February 1, 2021 15:27

Currently the root directory should be be in your home directory and not on an NAS like `/nas/gaia/` as the submission will fail for an NFS reason.
The experiment directory can be (and ought to be) on such a drive, though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any restrictions on valid root dirs? Should the README include a statement that root dirs can now be on shared /nas/gaia or /nas/user/xyz ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no longer any restrictions on valid root dirs. There used to be a NFS related bug when trying to mount a shared NAS as the root dir for Pegasus but it has been resolved.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@danielnapierski I've added a note to the readme that the root_dir can be set to any location on the NAS, and that a shared drive e.g. /nas/gaia may be preferred due to space limitations on the user home dirs. However if unspecified the script will default to a users /nas/home/xyz/ dir.

@@ -243,14 +279,12 @@ def limit_jobs_for_category(self, category: str, max_jobs: int):
"""
self._category_to_max_jobs[category] = max_jobs

def _conf_limits(self) -> str:
def _conf_limits(self) -> None:
"""
Return a Pegasus config string which sets the max jobs per category appropriately.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: not returning a string anymore so docstring should be updated

handle.write(
f"{ckpt_name} file://{checkpoint_path} site={self._default_site}\n"
)
checkpoint_pegasus_file = self.create_file(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is cool.

Copy link
Member

@joecummings joecummings left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

README.md Outdated
@@ -72,7 +66,8 @@ Partitions each have a max walltime associated with them. See the saga cluster w

If you change code while a pipeline is runnning, the jobs will pick up the changes. This could be helpful if you notice an error and fix it before that code runs, but can also lead to some unexpected behavior.

## `No module named 'Pegasus'`
## `No module named 'Pegasus'` (Version 4.9.3)
*This is believed to have been fixed for Pegasus Version 5. If this arrises please leave an issue*

This is a weird one that pops up usually when first getting set up with Pegasus. First, if you see this please contact one of the maintainers (currently @joecummings or @spigo900). To fix this, install the following packages with these commands in this exact order - they are dependent on each other.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can remove this fix. Comment you added is enough.

@lichtefeld lichtefeld merged commit 32deba8 into master Feb 8, 2021
@lichtefeld lichtefeld deleted the 48-pegasus-5-upgrade branch February 8, 2021 15:06
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

Successfully merging this pull request may close these issues.

Upgrade to 5.0.0dev API for making workflows
3 participants