Skip to content

Release v0.2.0 #43

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

Merged
merged 72 commits into from
Feb 17, 2023
Merged

Conversation

douglasjacobsen
Copy link
Collaborator

This release includes the following pull requests:

#38 mirror_spack
#36 configurable-workspace-dir
#42 create_with_template
#39 license_update
#40 fix_bash_autocomplete
#33 url_mirror
#31 fix_nnode_deduction
#34 pr_flake_error_fix
#32 fix_empty_expvars
#27 simlink_results
#28 iperf2
#26 application_inheritance
#24 improve_imb_example
#16 spack-env-files
#22 workspace_documentation
#20 spec_namespace
#21 debug_command
#18 report_ci_failures
#13 success_criteria
#14 coverage_report
#10 imb_enhancement
#11 fix_workspace_info
#9 spack-flags

douglasjacobsen and others added 30 commits January 11, 2023 13:13
This commit adds config:spack_flags:install and
config:spack_flags:concretize that can set the flags to use when
performing `spack concretize` and `spack install` actions.

Tests for this functionality are also added.
Add support for spack flags to be set in config files
New definition has more verbose FOMs and more closely maps to the needs
of the primary customer of the application
Previously there was no way for a workload to suggest a list of values
that a user might  consider setting the variable to. This adds
functionality to support that and appears like:

```
$ ramble info intel-mpi-benchmarks                                                                                                                  130 ↵
Application:
IntelMpiBenchmarks

Description:
	Intel MPI Benchmark application.

    https://www.intel.com/content/www/us/en/developer/articles/technical/intel-mpi-benchmarks.html
    https://github.com/intel/mpi-benchmarks
    https://www.intel.com/content/www/us/en/develop/documentation/imb-user-guide/top.html

Tags:
micro-benchmark  benchmark  mpi

Setup Pipeline Phases:
install_software  get_inputs  make_experiments

Analyze Pipeline Phases:
analyze_experiments

Workloads:
pingpong  multi-pingpong  collective

pingpong variables:
	output_path
		Description: Dumpfile Output Path
		Default: ./output
	pingpong_type
		Description: Pingpong Algorithm to Use
		Default: Pingpong
		Suggested Values: ['Pingpong', 'Unirandom', 'Multi-Pingpong', 'Birandom', 'Corandom']
```
The `workspace info` command was broken when trying to extract spack
specs from a workspace.

This commit fixes the issue.
Addressing review comments
IMB enhancement + suggested value support
This commit adds syntax for defining success criteria in both
application.py files, and ramble.yaml workspace files.

Within an application definition file, this looks like:

`success_criteria(name, mode, match, file)`

Within a ramble.yaml, this looks like:

success_criteria:
- name: <name>
  mode: <mode>
  match: <match>
  file: <file>

This can be defined at any level where a variables dictionary can exist.
…_ci_failures

Update cloud-build tests so failures are reported correctly
This commit creates a (previously referenced, but missing) `debug`
command. Additionally, references to spack are removed from the .github
directory.
This commit adds spec_namespace as a property for the expander. This
namespace is defined as: `'{spec_name}.workload_name'`

`'{spec_name}'` will expand to the name of the spec that is used in each
experiment.
This commit adds support for $workspace/configs/auxiliary_software_files
to contain arbitrary files which different application types can
utilize.

For now, the spack application type copies these files into the
generated spack environment. This allows spack to read them as
additional config options.
…amespace

Change cache to use spec_namespace
…ace_documentation

Convert docs to `.rst` and write a workspace_config.rst
…env-files

Add support for auxiliary software files
Add slurm specific head to IMB slurm example
This commit updates the DirectiveMeta class to allow applications to
inherit from other applications.

This allows a base application to be defined, and other applications can
inherit the base application's directives. This way they only need to
define new features (inputs, workloads, etc..) without re-defining all
of the application attributes.

This brings the DirectiveMeta class closer in line with Spack v0.19.0's
DirectiveMeta class.
rfbgo and others added 26 commits February 6, 2023 09:36
Unsets deduced vars to allow them to fully re read from the experiment
setup

Fixes GoogleCloudPlatform#30
Fix incorrectly retained vars between experiments
This commit adds a test that actually creates a mirror, to ensure
`mirror create` is properly exercised.
This commit moves the logic for creating a spack environment out of the
software installation phase. This is to prepare for a mirror pipeline
that will handle mirroring inputs and software.
We have made significant updates to ramble and have not regenerated the
bash completion, this address that

As part of this I also updated the license for the `.in` file
The completion was not working to recommend names of workspaces, ie:

`ramble workspace activate <tab>`

This was because there was a function we reference called `_workspaces`
which was not implemented it. This commit implements it
…plete

Regenerate and fix bash autocomplete
…e_update

Update licenses to identify dual license
1. Retain tpl name when it is passed via `-t`
2. Tidy excess prints
…late

Fix bug where `-t` was not working during workspace create
This commit moves the existing mirror logic from its own command into
the workspace command (since a workspace is needed to perform the
mirroring anyway).

Additionally, this commit adds mirroring of software packages within the
workspace.

This deprecates the `mirror create` command for the time being.
…ults in lib/ramble/ramble/config.py and etc/ramble/defaults/config.yaml
workspace_path has been removed, replaced with get_workspace_path and
set_workspace_path functions.

This had a cascading effect through the unit tests, which overall
have been cleaned up to avoid leaving test workspaces around.

 Changes to be committed:
	modified:   .gitignore
	modified:   lib/ramble/ramble/cmd/workspace.py
	modified:   lib/ramble/ramble/test/cmd/on.py
	modified:   lib/ramble/ramble/test/cmd/workspace.py
	modified:   lib/ramble/ramble/test/conftest.py
	modified:   lib/ramble/ramble/test/end_to_end.py
	modified:   lib/ramble/ramble/test/expander.py
	modified:   lib/ramble/ramble/test/mirror_tests.py
	modified:   lib/ramble/ramble/workspace/__init__.py
	modified:   lib/ramble/ramble/workspace/workspace.py
…le-workspace-dir

Allow workspace_path to be set via config:user:workspace_dir
…_spack

Update mirror logic, and mirror software
@rfbgo rfbgo self-requested a review February 17, 2023 16:35
@rfbgo rfbgo merged commit e2d36b3 into GoogleCloudPlatform:main Feb 17, 2023
@douglasjacobsen douglasjacobsen deleted the release-v0.2.0 branch May 22, 2023 14:59
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.

3 participants