Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
71a1c78
Updates to docs.
FrankD412 Jun 20, 2022
1eb63fb
Addition of other doc related files.
FrankD412 Jun 20, 2022
2affbf0
Addition of other doc related files.
FrankD412 Jun 20, 2022
c96fe94
Fix tabbed layouts.
FrankD412 Jun 20, 2022
bc06b79
Fix configuration for tabbed content.
FrankD412 Jun 20, 2022
65cbaf9
Removal of local python version.
FrankD412 Jun 21, 2022
37e0626
Add centering to mermaid class objects
jwhite242 Jul 17, 2022
dd36281
Add hooks for custom css
jwhite242 Jul 17, 2022
633b319
Add utility script for generating svg's of example workspaces
jwhite242 Jul 17, 2022
5b6ee41
Add basic examples to overview section
jwhite242 Jul 17, 2022
763a331
Clean up linter warnings
jwhite242 Jul 17, 2022
9bcbe04
Test updating of read the docs config for mkdoc switch
jwhite242 Jul 17, 2022
4b2fc70
Update lock file for mkdocs port
jwhite242 Jul 17, 2022
14aa29b
Start spec 1.0 docs with description, and env/variables blocks
jwhite242 Jul 27, 2022
f1700b3
Add docs for dependencies block in specification
jwhite242 Jul 29, 2022
ccaeea1
Add a few admonitions about the effects of path/git dependencies and …
jwhite242 Jul 29, 2022
e76351c
Add batch block, start study block
jwhite242 Aug 3, 2022
745af5d
Finish study steps documentation and add global.parameters docs
jwhite242 Aug 3, 2022
4ae4340
Add full lulesh specification examples
jwhite242 Aug 3, 2022
4c4ca06
Remove the spec 2.0 stubs
jwhite242 Aug 4, 2022
72e57e5
Add scheduler section
jwhite242 Aug 4, 2022
0430b6b
Add first tutorial example
jwhite242 Aug 23, 2022
2347563
Update mermaid to use native for theme color support. Start hello-bye
jwhite242 Aug 25, 2022
379133e
Add sample status outputs
jwhite242 Aug 25, 2022
97b4241
Finish hello_bye_world tutorial
jwhite242 Aug 28, 2022
5e05ed9
Add parameterized, labeled, and funnel step variants of hello bye tut…
jwhite242 Aug 29, 2022
5975ce4
Add table of updated parameter combinations for funnel example
jwhite242 Aug 29, 2022
217f0e7
First attempt at reproducible science and computational analog diagrams
jwhite242 Sep 7, 2022
7ab55f3
First draft of pgen and hpc extensions of the tutorial example
jwhite242 Sep 14, 2022
da09efd
First pass porting parameter specification section
jwhite242 Oct 14, 2022
931d0a6
Start section on tokens
jwhite242 Nov 2, 2022
635f903
Fill out token/workflow dsl section
jwhite242 Nov 2, 2022
cc6bea2
Move sphinx docs out of the way
jwhite242 Nov 9, 2022
a7804e0
Move mkdocs into the docs path
jwhite242 Nov 9, 2022
f434a7e
First pass at working auto-generated api docs
jwhite242 Nov 10, 2022
0138f14
Update read the docs config to point to relocated docs
jwhite242 Nov 10, 2022
c764887
Add new dependencies for api doc generation
jwhite242 Nov 10, 2022
cfc10f6
Fix directory url setting
jwhite242 Nov 10, 2022
44d4f98
Attempt to fix the pathing/nav bars
jwhite242 Nov 10, 2022
ac2d4b2
Rework ref guide paths, nav layout, and api doc generator
jwhite242 Nov 11, 2022
9948ce3
Tweak api doc generation to more robustly set path to package source
jwhite242 Nov 11, 2022
a6fddf8
Tweak api docs to capture contents of __init__.py's and write to
jwhite242 Nov 23, 2022
6c73257
Add docstring to ScriptAdapterFactory to enable inclusion in api docs
jwhite242 Nov 23, 2022
f38f987
Clean up debug code in api doc generation
jwhite242 Nov 23, 2022
a7b664f
Remove announce block
jwhite242 Nov 23, 2022
c3a70b1
First draft of how-to-guide for processing large parameter sets in ba…
jwhite242 Nov 29, 2022
4dbb31b
Make note about non-csv sources more prominent as it is an important
jwhite242 Nov 30, 2022
60a96fd
Remove outermost level of docs directory nesting
jwhite242 Nov 30, 2022
a3a9532
Fixup pathing to use more standard mkdocs layout
jwhite242 Nov 30, 2022
6116f14
Make sample git dependency url more obviously not-real
jwhite242 Nov 30, 2022
93e7a04
Add recipe for manipulating steps states
jwhite242 Dec 1, 2022
f2545cc
Refactor how-to-guide layout, add timeout guide
jwhite242 Dec 10, 2022
cba240f
Remove old monolithic how-to-guide page
jwhite242 Dec 10, 2022
02ddf62
Fix links from how to guides to the other sections
jwhite242 Dec 16, 2022
03f530a
Add command line reference page
jwhite242 Jan 10, 2023
179a074
Add links to the top level commands
jwhite242 Jan 10, 2023
d247f57
Install image zoom plugin, update toml and lock files
jwhite242 Jan 18, 2023
5d68700
Document launcher options and fill in missing slurm keys
jwhite242 Jan 19, 2023
ddbfe1d
Remove duplicated paragraph
jwhite242 Feb 23, 2023
33f98bf
Rework nav and landing page contents
jwhite242 Feb 24, 2023
fb18d9b
Remove old nested docs
jwhite242 Feb 24, 2023
0c22379
Update copyright
jwhite242 Feb 24, 2023
610d90d
remove remaining unused docs from initial version
jwhite242 Feb 24, 2023
fc0c3d4
Address a lot of review comments and add missing monitoring pages
jwhite242 Feb 25, 2023
6f5bc91
Tweak the monitoring section a bit
jwhite242 Feb 25, 2023
47a6458
Fix a few malformed nested tables
jwhite242 Feb 27, 2023
545c6ab
Rework reproducible science diagrams to be more readable
jwhite242 Mar 1, 2023
f43146f
Polish up the landing page a bit
jwhite242 Mar 2, 2023
d82493d
Add tutorial for porting existing hpc batch workflows
jwhite242 Apr 12, 2023
7bd97ea
Fix links, add new starting point on landing page, and update path
jwhite242 Apr 12, 2023
984e9be
Polish the batch to maestro port section, adding topologies and
jwhite242 Apr 26, 2023
24ff226
Address some review comments to better highlight key concepts in
jwhite242 Apr 26, 2023
49d780e
Expand important details of the lulesh-post step for the script and
jwhite242 Apr 26, 2023
e1aa04c
Address usage of maestro run to create the workflow topologies, updat…
jwhite242 Apr 27, 2023
5753b6e
Remove sphinx and regenerate lock file
jwhite242 Apr 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,13 @@ build:
- pip install poetry>=1.2
- poetry config virtualenvs.create false
- poetry install

mkdocs:
# configuration: docs/mkdocs.yml
# Temporarily allow warnings
fail_on_warning: false

# # Optionally declare the Python requirements required to build your docs
# python:
# install:
# - requirements: docs/requirements.txt
2,487 changes: 0 additions & 2,487 deletions docs/Doxyfile

This file was deleted.

21 changes: 21 additions & 0 deletions docs/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### The MIT License (MIT)

Copyright (c) 2021 Francesco Di Natale

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
116 changes: 116 additions & 0 deletions docs/Maestro/basics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
![](https://github.com/LLNL/maestrowf/raw/develop/assets/logo.png?raw=true "Orchestrate your workflows with ease!")

# Maestro Workflow Conductor ([maestrowf](https://pypi.org/project/maestrowf/))

[![Build Status](https://travis-ci.org/LLNL/maestrowf.svg?branch=develop)](https://travis-ci.org/LLNL/maestrowf)
[![PyPI](https://img.shields.io/pypi/v/maestrowf.svg)](https://pypi.python.org/pypi?name=maestrowf&version=1.0.0&:action=display)
![Spack](https://img.shields.io/spack/v/py-maestrowf)
[![Issues](https://img.shields.io/github/issues/LLNL/maestrowf.svg)](https://github.com/LLNL/maestrowf/issues)
[![Forks](https://img.shields.io/github/forks/LLNL/maestrowf.svg)](https://github.com/LLNL/maestrowf/network)
[![Stars](https://img.shields.io/github/stars/LLNL/maestrowf.svg)](https://github.com/LLNL/maestrowf/stargazers)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/LLNL/maestrowf/master/LICENSE)

[![Downloads](https://static.pepy.tech/personalized-badge/maestrowf?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads)](https://pepy.tech/project/maestrowf)
[![Downloads](https://static.pepy.tech/personalized-badge/maestrowf?period=month&units=international_system&left_color=grey&right_color=blue&left_text=Downloads/Month)](https://pepy.tech/project/maestrowf)

Maestro can be installed via [pip](https://pip.pypa.io/):

pip install maestrowf

## Documentation

* [Maestro Documentation](https://maestrowf.readthedocs.io) - Official Maestro documentation.
* [Maestro Sheetmusic](https://github.com/LLNL/maestro_sheetmusic) - A collection of sample and user contributed Maestro study examples.
* [Maestro Samples](/samples) - Maestro sample studies.

## Getting Started is Quick and Easy

Create a `YAML` file named `study.yaml` and paste the following content into the file:

``` yaml
description:
name: hello_world
description: A simple 'Hello World' study.

study:
- name: say-hello
description: Say hello to the world!
run:
cmd: |
echo "Hello, World!" > hello_world.txt
```

> *PHILOSOPHY*: Maestro believes in the principle of a clearly defined process, specified as a list of tasks, that are self-documenting and clear in their intent.

Running the `hello_world` study is as simple as...

maestro run study.yaml

## Creating a Parameter Study is just as Easy

With the addition of the `global.parameters` block, and a few simple tweaks to your `study` block, the complete specification should look like this:

``` yaml
description:
name: hello_planet
description: A simple study to say hello to planets (and Pluto)

study:
- name: say-hello
description: Say hello to a planet!
run:
cmd: |
echo "Hello, $(PLANET)!" > hello_$(PLANET).txt

global.parameters:
PLANET:
values: [Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto]
label: PLANET.%%
```

> *PHILOSOPHY*: Maestro believes that a workflow should be easily parameterized with minimal modifications to the core process.

Maestro will automatically expand each parameter into its own isolated workspace, generate a script for each parameter, and automatically monitor execution of each task.

And, running the study is still as simple as:

``` bash
maestro run study.yaml
```

## Scheduling Made Simple

But wait there's more! If you want to schedule a study, it's just as simple. With some minor modifications, you are able to run on an [HPC](https://en.wikipedia.org/wiki/Supercomputer) system.

``` yaml
description:
name: hello_planet
description: A simple study to say hello to planets (and Pluto)

batch:
type: slurm
queue: pbatch
host: quartz
bank: science

study:
- name: say-hello
description: Say hello to a planet!
run:
cmd: |
echo "Hello, $(PLANET)!" > hello_$(PLANET).txt
nodes: 1
procs: 1
walltime: "00:02:00"

global.parameters:
PLANET:
values: [Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto]
label: PLANET.%%
```

> **NOTE**: This specification is configured to run on LLNL's quartz cluster. Under the `batch` header, you will need to make the necessary changes to schedule onto other HPC resources.
>
> *PHILOSOPHY*: Maestro believes that how a workflow is defined should be decoupled from how it's run. We achieve this capability by providing a seamless interface to multiple schedulers that allows Maestro to readily port workflows to multiple platforms.

For other samples, see the [samples](/samples) subfolder. To continue with our Hello World example, see the [Basics of Study Construction](https://maestrowf.readthedocs.io/en/latest/hello_world.html) in our [documentation](https://maestrowf.readthedocs.io/en/latest/index.html).
129 changes: 129 additions & 0 deletions docs/Maestro/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Command Line Interface
---

Installing Maestro will add two entry points/console scripts that are used for running, creating, and interacting with studies:

* [`maestro`](#maestro)

This is the primary user interface for creating, launching, and monitoring studies.

* [`conductor`](#conductor)

This is the background process that Maestro launches which does the actual orchestration and running of the studies and lives until the study execution is complete.


## **maestro**

The Maestro Workflow Conductor for specifying, launching, and managing general workflows.

**Usage:**

``` console
maestro [OPTIONS] COMMAND [ARGS]...
```

**Options:**

| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `-h`, `--help` | boolean | Show this help message and exit. | `False` |
| `-l`, `--logpath` | filename | Alternate path to store program logging. | <study_name\>.log |
| `-d`, `--debug_lvl` | choice (`1` &#x7C; `2` &#x7C; `3` &#x7C; `4` &#x7C; `5`) | Level of logging messages to be output. Smaller choice produces more output. <table> <thead> <th>Choice</th> <th>Max Debug Level</th> </thead> <tbody> <tr> <td>5</td> <td>Critical</td> </tr> <tr> <td>4</td> <td>Error</td> </tr> <tr> <td>3</td> <td>Warning</td> </tr> <tr> <td>2</td> <td>Info (Default)</td> </tr> <tr> <td>1</td> <td>Debug</td> </tbody> </table> | 2 (Info) |
| `-c`, `--logstdout` | boolean | Log to stdout in addition to a file. **NOTE:** This only controls immediate output from `maestro` during the setup phase. Once `conductor` is launched and the study is running this log info goes to file only if not running in the foreground | `True` | <!-- insert link to the foreground/background option -->
| `-v`, `--version` | boolean | Show program's version number and exit. | `False` |


**Subcommands**

- [*cancel*](#cancel): Cancel all running jobs.
- [*run*](#run): Launch a study based on a specification
- [*status*](#status): Check the status of a running study.

### **cancel**

Cancel all running jobs in every given study directory.

**Usage:**

``` console
maestro cancel [OPTIONS] DIRECTORY [DIRECTORY ...]
```

**Options:**

| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `-h`, `--help` | boolean | Show this help message and exit. | `False` |


### **run**

Entry point for launching a study described in a YAML based study specification <!-- add link to this specification? -->

**Usage:**

``` console
maestro run [OPTIONS] SPECIFICATION
```

**Options:**

| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `-h`, `--help` | boolean | Show this help message and exit. | `False` |
| `-a`, `--attempts` | integer | Maximum number of submission attempts before a step is marked failed. | 1 |
| `-r`, `--rlimit` | integer | Maximum number of restarts allowed when steps specify a restart command. (0 denotes no limit)| 1 |
| `-t`, `--throttle` | integer | Maximum number of inflight jobs allowed to execute simultaneously (0 denotes not throttling) | 0 |
| `-s`, `--sleeptime` | integer | Amount of time (in seconds) for the manager to wait between job status checks. | 60 |
| `--dry` | boolean | Generate the directory structure and scripts for a study but do not launch it. | `False` |
| `-p`, `--pgen` | filename/path | Path to a Python code file containing a function that returns a custom filled ParameterGenerator instance. | None |
| `--pargs` | string | A string that represents a single argument to pass a custom parameter generation function. Reuse '--parg' to pass multiple arguments. [Use with '--pgen'] | None |
| `-o`, `--out` | path | Output path to place study in. [NOTE: overrides OUTPUT_PATH in the specified specification] | "<study name\>_timestamp" |
| `-fg` | boolean | Runs the backend conductor in the foreground instead of using nohup. | `False` |
| `--hashws` | boolean | Enable hashing of subdirectories in parameterized studies (NOTE: breaks commands that use parameter labels to search directories). | `False` |
| `-n`, `--autono` | boolean | Automatically answer no to input prompts. | `False` |
| `-y`, `--autoyes` | boolean | Automatically answer yes to input prompts. | `False` |
| `--usetmp` | boolean | Make use of a temporary directory for dumping scripts and other Maestro related files. | `False` |


### **status**

Check the status of each given running or completed study.

**Usage:**

``` console
maestro status [OPTIONS] DIRECTORY [DIRECTORY ...]
```

**Options:**

| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `-h`, `--help` | boolean | Show this help message and exit. | `False` |
| `--layout` | choice (`flat` &#x7C; `legacy` &#x7C; `narrow`) | Alternate status table layouts. See [Status Layouts](monitoring.md#status-layouts) for description of these options| `flat` |


## **conductor**

A application for checking and managing and ExecutionDAG within an executing study.

**Usage:**

``` console
conductor [OPTIONS] DIRECTORY
```

**Options:**

| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `-h`, `--help` | boolean | Show this help message and exit. | `False` |
| `-s`, `--status` | path | Check the status of the ExecutionGraph located as specified by the 'directory' argument. | None |
| `-l`, `--logpath` | filename | Alternate path to store program logging. | <study_name\>.log |
| `-d`, `--debug_lvl` | choice (`1` &#x7C; `2` &#x7C; `3` &#x7C; `4` &#x7C; `5`) | Level of logging messages to be output. Smaller choice produces more output. <table> <thead> <th>Choice</th> <th>Max Debug Level</th> </thead> <tbody> <tr> <td>5</td> <td>Critical</td> </tr> <tr> <td>4</td> <td>Error</td> </tr> <tr> <td>3</td> <td>Warning</td> </tr> <tr> <td>2</td> <td>Info (Default)</td> </tr> <tr> <td>1</td> <td>Debug</td> </tbody> </table> | 2 (Info) |
| `-c`, `--logstdout` | boolean | Log to stdout in addition to a file. **NOTE:** This only controls immediate output from `maestro` during the setup phase. Once `conductor` is launched and the study is running this log info goes to file only if not running in the foreground | `True` | <!-- insert link to the foreground/background option -->
| `-s`, `--sleeptime` | integer | Amount of time (in seconds) for the manager to wait between job status checks. | 60 |



Loading