We are happy to announce the release of Pegasus 5.1.3. It is a minor release in the 5.1 branch. We invite our users to give it a try. 
The release can be downloaded from: https://pegasus.isi.edu/downloads
Highlights of the Release
- Support for NERSC Superfacility API: This release of Pegasus has support for NERSC Superfacility API, enabling scientists to submit and manage workflows on the Perlmutter supercomputer directly from their submit host — no SSH tunnels, no batch system logins required. Futher details about generating SFAPI tokens and configuring Pegasus can be found in the documentationThe training notebooks for ACCESS Pegasus also have been updated to be able to submit to NERSC from the ACCESS Pegasus endpoint
- Hosted Site Catalogs: With 5.1.3 release, users now have an option to get the planner to download the site catalog from a GitHub repository that hosts catalog entries for the various compute infrastructures.To specify the file to download from the GitHub repository, you have to set the following property, and have Pegasus plan for site named
compute.pegasus.catalog.site.repo.file=<basename of the file to download>
Full details on this can be found here.
- Job Tagging: Job tagging is a new feature that allows users to associate
tagswith their jobs in the abstract worklow. The planner uses to look up and overlay additional profiles from the Site Catalog. This allows you to associate different set of profiles for jobs running at the same site. For e.g. when running against a HPC cluster, this can be used to set different profiles depending on whether the job is tagged CPU or GPU. - Profile Expressions: Pegasus supports profile expressions — Python expressions that are evaluated when a job fails and is about to be retried. These expressions allow you to dynamically change resource requirements (memory, cores, GPUs, runtime, queue, project, etc.) based on the actual execution metrics collected from the previous attempt, enabling smarter retry strategies without manual intervention.Full details on this can be found here.
New Features and Improvements
- Create a Streaming based YAML DAXParser #2243
- Exit with a specific exitcode in case of plite failure #2225
- when running in a condor style, container universe should only be associated with a job if the Pegasus job has a container associated with it #2224
- Streamline Pegasus properties loading #2223
- add a load function to python api Properties class #2210
- allow for variable expansion to happen via properties file #2207
- allow jobs to have tags that then map to set of profiles in the site entry for a job #2192
- SFAPI support in Pegasus and HTCondor #2186
- Use pegasus classad variables to define values of request_* keys in condor submit files #2174
- composite event to include information about resources requested in a job #2171
- update default site logic in the planner #2164
- [PM-1973] Catalogs copied in submit dir should have their variables substituted #2079
- [PM-1808] Provide a way to specify site independent transformations #1921
- [PM-1749] provide an interface for user defined triggers #1863
- [PM-1677] add status command to see running triggers #1791
- [PM-1653] Set when_to_transfer_output = ON_SUCCESS #1767
- [PM-1536] pegasus-rc-converter to take in new yaml textual format #1650
- [PM-1103] Allow for notifications to run p-statistics at event at_end #1217
- [PM-1080] Monitord should ignore Exceptions reported due to duplicate events being inserted #1194
- [PM-876] Add support for ‘halt’ to ensemble manager #994
- update Pegasus API and planner to support sfapi as a grid gateway type #2187
- Update documentation on how profiles expressions work #2184
- update planner to accept expr pegasus profile keys #2183
- Update Python Workflow API to allow expression keys to be specified corresponding to the profiles key #2182
- change job resource requirements on job failures #2180
- support units for certain profiles #2178
- Use pegasus classad variables in remote_ce_requirements and remote_environment to define values for glite/ssh job submissions #2176
- use native supported htcondor keys for glite/ssh job submissions #2175
- generate +pegasus classads for memory and disk #2170
- warn if a user specifies condor resource profiles #2169
- Revisit default values for request_ #2167
- composite event to include wf_name and metrics app name #2166
- composite events improvements for Pegasus AI #2165
- implement transfer input files for shell code generator #2161
- Convenience class to provide resource defaults #2160
- Support for directory inputs #2159
- pegasus-kickstart to expand variable names passed to the -s and -S options #2156
- composite event to include total input and output file sizes for a job #2155
- host site catalogs in a central GitHub repository to be pulled down when workflows are planned #2154
- include invocation data in composite events #2149
- [PM-1972] DAX used in performance test should be YAML and not XML #2078
- [PM-1919] PEP 668 / non-os Python dependencies #2032
Bugs Fixed
- Remove getenv=True for subdax #2221
- pegasus-configure-glite does not create symlinks for local_submit_attributes.sh file #2191
- data transfers broken between compute(job) generating an abstract workflow for the pegasusWorkflow job #2179
- pegasus tries to mount a relative directory into the container #2173
- Resource mapping issue on Slurm #2172
- pegasus_gpus classad in jobs is always set to 1 when no value is specified #2168
- .lof files not distributed correctly for merged tasks #2163
- unable to mount workflow directory on the shared filesystem into the shifter container #2244
- container description in the TC is not serialized #2242
- enforce numeric values for pegasus profiles memory and diskspace #2177
- [PM-1071] Workflow leaf cleanup job fails (rm of <dir>/.) when relative dir is ‘.’ #1185