From 52121f95015a0d6168b18af0ad9a4c23baba3d48 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Mon, 8 Feb 2021 21:19:14 +0200 Subject: [PATCH 01/12] Add empty jinja block --- flow/templates/base_script.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flow/templates/base_script.sh b/flow/templates/base_script.sh index d9d5fc321..8097f5ac6 100644 --- a/flow/templates/base_script.sh +++ b/flow/templates/base_script.sh @@ -17,6 +17,8 @@ cd {{ project.config.project_dir }} {% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} {% for operation in operations %} +{% block before_operation %} +{% endblock %} # {{ "%s"|format(operation) }} {{ operation.cmd }}{{ cmd_suffix }} {% if operation.eligible_operations|length > 0 %} From 3b69f413bed9b527aacb2faa62def81f74120874 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Tue, 9 Feb 2021 13:37:17 +0200 Subject: [PATCH 02/12] Rename block to pre_operation --- flow/templates/base_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/templates/base_script.sh b/flow/templates/base_script.sh index 8097f5ac6..fd3a14f05 100644 --- a/flow/templates/base_script.sh +++ b/flow/templates/base_script.sh @@ -17,7 +17,7 @@ cd {{ project.config.project_dir }} {% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} {% for operation in operations %} -{% block before_operation %} +{% block pre_operation %} {% endblock %} # {{ "%s"|format(operation) }} {{ operation.cmd }}{{ cmd_suffix }} From 73818b1faf9a06356c10694f4b7c4cca94561cc9 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Tue, 9 Feb 2021 13:53:10 +0200 Subject: [PATCH 03/12] Move below comment --- flow/templates/base_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/templates/base_script.sh b/flow/templates/base_script.sh index fd3a14f05..3d8fd17f7 100644 --- a/flow/templates/base_script.sh +++ b/flow/templates/base_script.sh @@ -17,9 +17,9 @@ cd {{ project.config.project_dir }} {% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} {% for operation in operations %} +# {{ "%s"|format(operation) }} {% block pre_operation %} {% endblock %} -# {{ "%s"|format(operation) }} {{ operation.cmd }}{{ cmd_suffix }} {% if operation.eligible_operations|length > 0 %} # Eligible to run: From 680c8830515cc965117ee635889b24085bd41368 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Tue, 9 Feb 2021 13:53:22 +0200 Subject: [PATCH 04/12] Simplify stampede script --- flow/templates/stampede2.sh | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index 094862473..0b36fe757 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -35,7 +35,6 @@ {% endif %} {% endblock %} -{% block body %} {% if ns.use_launcher %} {% if parallel %} {{("Bundled submission without MPI on Stampede2 is using launcher; the --parallel option is therefore ignored.")|print_warning}} @@ -55,33 +54,11 @@ export LAUNCHER_JOB_FILE={{ launcher_file }} $LAUNCHER_DIR/paramrun rm {{ launcher_file }} {% else %} -{% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} -{% for operation in operations %} - -# {{ "%s"|format(operation) }} -{{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }}{{ operation.cmd }}{{ cmd_suffix }} -{% if operation.eligible_operations|length > 0 %} -# Eligible to run: -{% for run_op in operation.eligible_operations %} -# {{ run_op.cmd }} -{% endfor %} -{% endif %} -{% if operation.operations_with_unmet_preconditions|length > 0 %} -# Operations with unmet preconditions: -{% for run_op in operation.operations_with_unmet_preconditions %} -# {{ run_op.cmd }} -{% endfor %} -{% endif %} -{% if operation.operations_with_met_postconditions|length > 0 %} -# Operations with all postconditions met: -{% for run_op in operation.operations_with_met_postconditions %} -# {{ run_op.cmd }} -{% endfor %} -{% endif %} -{% endfor %} +{% block pre_operation %} +{{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }} +{% endblock %} {# We need to reset the environment's base offset in between script generation for separate bundles. #} {# Since Jinja's bytecode optimizes out calls to filters with a constant argument, we are forced to #} {# rerun this function on the environment's base offset at the end of each run to return the offset to 0. #} {{ "%d"|format(environment.base_offset)|decrement_offset }} {% endif %} -{% endblock %} From c0a1d08be4f85654c7be4220a373363815ef4f60 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Wed, 10 Feb 2021 15:16:09 +0200 Subject: [PATCH 05/12] Make pre_operation scoped --- flow/templates/base_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/templates/base_script.sh b/flow/templates/base_script.sh index 3d8fd17f7..91d6337ad 100644 --- a/flow/templates/base_script.sh +++ b/flow/templates/base_script.sh @@ -18,7 +18,7 @@ cd {{ project.config.project_dir }} {% for operation in operations %} # {{ "%s"|format(operation) }} -{% block pre_operation %} +{% block pre_operation scoped %} {% endblock %} {{ operation.cmd }}{{ cmd_suffix }} {% if operation.eligible_operations|length > 0 %} From 488d51301602cc4f859f691f8d2ca2c08ece7b04 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Wed, 10 Feb 2021 15:16:19 +0200 Subject: [PATCH 06/12] Add comment --- flow/templates/stampede2.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index 0b36fe757..6e7b751d3 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -54,6 +54,7 @@ export LAUNCHER_JOB_FILE={{ launcher_file }} $LAUNCHER_DIR/paramrun rm {{ launcher_file }} {% else %} +{# Only the pre_operation block is overridden, all other behavior is inherited from base_script.sh #} {% block pre_operation %} {{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }} {% endblock %} From 74609a3877dbc4595b40bd8421332c468707807a Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Sat, 13 Feb 2021 16:21:35 +0200 Subject: [PATCH 07/12] export _FLOW_STAMPEDE_OFFSET_ --- flow/templates/stampede2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index 6e7b751d3..7439ae64d 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -56,7 +56,7 @@ rm {{ launcher_file }} {% else %} {# Only the pre_operation block is overridden, all other behavior is inherited from base_script.sh #} {% block pre_operation %} -{{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }} +{{ "export _FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }} {% endblock %} {# We need to reset the environment's base offset in between script generation for separate bundles. #} {# Since Jinja's bytecode optimizes out calls to filters with a constant argument, we are forced to #} From 5783a4c686764a2bd3dd7d81caaa5be2abcd3fa3 Mon Sep 17 00:00:00 2001 From: Andrei Berceanu Date: Thu, 25 Feb 2021 19:27:32 +0200 Subject: [PATCH 08/12] Fix export in flow/templates/stampede2.sh Co-authored-by: Bradley Dice --- flow/templates/stampede2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index 7439ae64d..d7f9904f2 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -56,7 +56,7 @@ rm {{ launcher_file }} {% else %} {# Only the pre_operation block is overridden, all other behavior is inherited from base_script.sh #} {% block pre_operation %} -{{ "export _FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }} +export _FLOW_STAMPEDE_OFFSET_={{ "%d"|format(operation.directives['nranks']|return_and_increment) }} {% endblock %} {# We need to reset the environment's base offset in between script generation for separate bundles. #} {# Since Jinja's bytecode optimizes out calls to filters with a constant argument, we are forced to #} From f175e2a1513bc3f77d4010e173ee8b0f4673a78e Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Thu, 25 Feb 2021 11:58:53 -0600 Subject: [PATCH 09/12] Add back body block. --- flow/templates/stampede2.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index d7f9904f2..5daefc787 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -35,6 +35,7 @@ {% endif %} {% endblock %} +{% block body %} {% if ns.use_launcher %} {% if parallel %} {{("Bundled submission without MPI on Stampede2 is using launcher; the --parallel option is therefore ignored.")|print_warning}} @@ -63,3 +64,4 @@ export _FLOW_STAMPEDE_OFFSET_={{ "%d"|format(operation.directives['nranks']|retu {# rerun this function on the environment's base offset at the end of each run to return the offset to 0. #} {{ "%d"|format(environment.base_offset)|decrement_offset }} {% endif %} +{% endblock %} From 91cdca8213f56b0d12c547232fae553b18508c29 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Thu, 25 Feb 2021 12:10:28 -0600 Subject: [PATCH 10/12] Revert Stampede2 changes. --- flow/templates/stampede2.sh | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index 5daefc787..a5756ace8 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -55,10 +55,31 @@ export LAUNCHER_JOB_FILE={{ launcher_file }} $LAUNCHER_DIR/paramrun rm {{ launcher_file }} {% else %} -{# Only the pre_operation block is overridden, all other behavior is inherited from base_script.sh #} -{% block pre_operation %} -export _FLOW_STAMPEDE_OFFSET_={{ "%d"|format(operation.directives['nranks']|return_and_increment) }} -{% endblock %} +{% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} +{% for operation in operations %} + +# {{ "%s"|format(operation) }} +{{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }}{{ operation.cmd }}{{ cmd_suffix }} +{% if operation.eligible_operations|length > 0 %} +# Eligible to run: +{% for run_op in operation.eligible_operations %} +{# The split/join handles multi-line cmd operations. #} +# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} +{% endfor %} +{% endif %} +{% if operation.operations_with_unmet_preconditions|length > 0 %} +# Operations with unmet preconditions: +{% for run_op in operation.operations_with_unmet_preconditions %} +# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} +{% endfor %} +{% endif %} +{% if operation.operations_with_met_postconditions|length > 0 %} +# Operations with all postconditions met: +{% for run_op in operation.operations_with_met_postconditions %} +# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} +{% endfor %} +{% endif %} +{% endfor %} {# We need to reset the environment's base offset in between script generation for separate bundles. #} {# Since Jinja's bytecode optimizes out calls to filters with a constant argument, we are forced to #} {# rerun this function on the environment's base offset at the end of each run to return the offset to 0. #} From 0a180c8ea7019a5747394acfb3aaadf82e2f79d5 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Fri, 26 Feb 2021 13:58:00 -0600 Subject: [PATCH 11/12] Simplify stampede2 body block again and move pre_operation outside so that scope is respected. --- flow/templates/stampede2.sh | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/flow/templates/stampede2.sh b/flow/templates/stampede2.sh index a5756ace8..2d76ddd3e 100644 --- a/flow/templates/stampede2.sh +++ b/flow/templates/stampede2.sh @@ -55,34 +55,17 @@ export LAUNCHER_JOB_FILE={{ launcher_file }} $LAUNCHER_DIR/paramrun rm {{ launcher_file }} {% else %} -{% set cmd_suffix = cmd_suffix|default('') ~ (' &' if parallel else '') %} -{% for operation in operations %} - -# {{ "%s"|format(operation) }} -{{ "_FLOW_STAMPEDE_OFFSET_=%d "|format(operation.directives['nranks']|return_and_increment) }}{{ operation.cmd }}{{ cmd_suffix }} -{% if operation.eligible_operations|length > 0 %} -# Eligible to run: -{% for run_op in operation.eligible_operations %} -{# The split/join handles multi-line cmd operations. #} -# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} -{% endfor %} -{% endif %} -{% if operation.operations_with_unmet_preconditions|length > 0 %} -# Operations with unmet preconditions: -{% for run_op in operation.operations_with_unmet_preconditions %} -# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} -{% endfor %} -{% endif %} -{% if operation.operations_with_met_postconditions|length > 0 %} -# Operations with all postconditions met: -{% for run_op in operation.operations_with_met_postconditions %} -# {{ "\n# ".join(run_op.cmd.strip().split("\n")) }} -{% endfor %} -{% endif %} -{% endfor %} +{# Only the pre_operation block is overridden, all other behavior is inherited from base_script.sh #} +{{ super () -}} {# We need to reset the environment's base offset in between script generation for separate bundles. #} {# Since Jinja's bytecode optimizes out calls to filters with a constant argument, we are forced to #} {# rerun this function on the environment's base offset at the end of each run to return the offset to 0. #} {{ "%d"|format(environment.base_offset)|decrement_offset }} {% endif %} {% endblock %} + +{# This override needs to happen outside the body block above, otherwise jinja2 doesn't seem to #} +{# respect block scope and the operations variable is left undefined. #} +{% block pre_operation %} +export _FLOW_STAMPEDE_OFFSET_={{ "%d"|format(operation.directives['nranks']|return_and_increment) }} +{% endblock %} From 5f55973f2ef44087fd2a4e05814b333ecdcff892 Mon Sep 17 00:00:00 2001 From: Bradley Dice Date: Fri, 26 Feb 2021 14:13:03 -0600 Subject: [PATCH 12/12] Update template reference data. --- tests/template_reference_data.tar.gz | Bin 18305 -> 18252 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/template_reference_data.tar.gz b/tests/template_reference_data.tar.gz index 9d3e4560b6d26e582e58ab9e23473af67b2d402f..461c60f3fd32c4398ff1df78f722d5645549ad8a 100644 GIT binary patch literal 18252 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 literal 18305 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