Opened 10 days ago

Last modified 4 days ago

#3009 new help

setup of suite ensemble

Reported by: xd904476 Owned by: um_support
Component: UM Model Keywords:
Cc: Platform:
UM Version:

Description

Hi, I am setting up a suite with 5 ensembles (u-bm680), starting from David Case suite u-bd149.
I have a problem in the suite.rc file that in the originally are (from u-bl536):

graph = """

{{ 'validate_suite_info ⇒ install_ancil' + ( ' & fcm_make2_pp' if POSTPROC else ) + (' & ' + FCMUM_LAST if BUILD_UM else ) + (' & fcm_make2_ocean' if BUILD_OCEAN else ) + (' & recon' if RECON else ) }}
{{ 'fcm_make_pp ⇒ fcm_make2_pp' + (' ⇒ POSTPROC' if RUN else ) if POSTPROC else }}
{{ 'fcm_make_pptransfer ⇒ fcm_make2_pptransfer' + (' ⇒ pptransfer' if RUN else ) if PPTRANSFER else }}
{{ 'fcm_make_ocean ⇒ fcm_make2_ocean' + (' ⇒ recon' if RECON else ' ⇒ coupled' if RUN else ) if BUILD_OCEAN else }}
{{ FCMUM_GRAPH + (' ⇒ recon' if RECON else ' ⇒ coupled' if RUN else ) if BUILD_UM else }}
{{ 'fcm_make_drivers ⇒ fcm_make2_drivers' + (' ⇒ coupled' if RUN else ) if BUILD_DRIVERS else }}
{{ 'install_ancil ⇒ recon ' if RECON else ('install_ancil ⇒ coupled' if RUN else )}}
{{ 'recon' + (' ⇒ coupled' if RUN else
) if RECON else }}
{{ 'clearout' + (' ⇒ coupled' if RUN else
) if CLEAROUT else }}
"""

and should include the extra ensemble and perturbation changes that are in suite.rc of u-bd149 which in these lines looks like this:

[ R1 ?]

graph = """

{{ 'fcm_make_pp ⇒ fcm_make2_pp' + (' ⇒ POSTPROC_GROUP' if RUN else ) if POSTPROC else }}
{{ 'fcm_make_ocean ⇒ fcm_make2_ocean' + (' ⇒ recon' if RECON else ' ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RUN else ) if BUILD_OCEAN else }}
{{ FCMUM_GRAPH + (' ⇒ recon' if RECON else ' ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RUN else ) if BUILD_UM else }}
{{ 'fcm_make_drivers ⇒ fcm_make2_drivers' + (' ⇒ coupled<ensemble>' if RUN else ) if BUILD_DRIVERS else }}
{{ 'install_ancil ⇒ recon ' if RECON else ('install_ancil ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RUN else )}}
{% if RUN %}

{{ 'recon ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RECON else }}
{{ 'clearout ⇒ coupled<ensemble>' if CLEAROUT else
}}
{{ 'coupled<ensemble> ⇒ plot_loadbalance' if PLOT_LOAD_BALANCE else }}

{% endif %}
"""

I have tried making the changes that I thought were required but there is clearly a bug that I can't see in these lines:

graph = """

{{ 'validate_suite_info ⇒ install_ancil' + ( ' & fcm_make2_pp' if POSTPROC else ) + (' & ' + FCMUM_LAST if BUILD_UM else ) + (' & fcm_make2_ocean' if BUILD_OCEAN else ) + (' & recon' if RECON else ) }}
{{ 'fcm_make_pp ⇒ fcm_make2_pp' + (' ⇒ POSTPROC_GROUP' if RUN else ) if POSTPROC else }}
{{ 'fcm_make_pptransfer ⇒ fcm_make2_pptransfer' + (' ⇒ pptransfer' if RUN else ) if PPTRANSFER else }}
{{ 'fcm_make_ocean ⇒ fcm_make2_ocean' + (' ⇒ recon' if RECON else ' ⇒ coupled' if RUN else ) if BUILD_OCEAN else }}
{{ FCMUM_GRAPH + (' ⇒ recon' if RECON else ' ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RUN else ) if BUILD_UM else }}
{{ 'fcm_make_drivers ⇒ fcm_make2_drivers' + (' ⇒ coupled<ensemble>' if RUN else ) if BUILD_DRIVERS else }}
{{ 'install_ancil ⇒ recon ' if RECON else ('install_ancil ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RUN else )}}
{% if RUN %}

{{ 'recon ⇒ perturb<ensemble> ⇒ coupled<ensemble>' if RECON else }}
{{ 'clearout ⇒ coupled<ensemble>' if CLEAROUT else
}

{{ 'coupled<ensemble> ⇒ plot_loadbalance' if PLOT_LOAD_BALANCE else }}
{% endif %}
"""

the error I get is a syntax error and I tried a few things, but I can't get it to work.
Could you help pls?

thanks,
Dani

Change History (5)

comment:1 Changed 9 days ago by dcase

I've copied this suite, and made a number of changes which should get past the stage of processing the suite.rc . If you look at puma:/home/dcase/roses/u-bm680/suite.rc then you will have an idea, but to summarise:

  • There is a missing } in {{ 'clearout ⇒ coupled<ensemble>' if CLEAROUT else }}
  • [[POSTPROC_GROUP]] needs to be defined (it's just a dummy in mine for now)
  • [[ recon ]] is defined twice (I removed the one which inherits itself)
  • TEST_NRUN_CRUN is undefined, so I set {% set TEST_NRUN_CRUN = False %}
  • I changed the logic around in the graph. Basically I took some of the one liner if statements and unrolled them to make it easier to debug

I can't promise that this is doing the thing that you want, but compare changes and check the logic of the new suite carefully. It may be easier to get it working from this point.

Dave

comment:2 Changed 5 days ago by xd904476

Hi Dave,
thanks for your help, but I need some extra guidance. The model runs up to the point of getting to the 'perturb-couple' tasks.
I can see already in the rosie guy that the graph 'perturb' which should be created in suite.rc is not there, therefore I can't add anywhere the line that links to the .py file that performs the perturbations.
I have done a full diff between the suites and I believe I've done something wrong in the statements in lines 88-onwords. I think some of the "ifs" are not allowing the 'perturb' graph to be created.

Could you help pls?
Thanks,
Dani

comment:3 Changed 4 days ago by dcase

Excuse me if this appears twice:

  • you should have the perturb app referenced in the suite, but you need to copy app/perturb from u-bd149 so that it's available
  • If you can't see it in the GUI, then you can edit the command to run in app/perturb/rose-app.conf and the script in app/perturb/bin once you've copied them over

comment:4 Changed 4 days ago by xd904476

Hi Dave,
I had tried this already and again now with the same result. Attached you can find a screenshot of the available menus in the rose gui.
The suite on the left in the screenshot is a copy of u-bd149 and the one on the right is u-bm680.
You can see there that the menu "perturb" is not there together with the . "plot load balance", which I am not worrying about at the moment.
I thought that this kind of things were set either in the mai rose-app.conf or in suite.rc, but I can't get it to work.

Thanks,
dani

comment:5 Changed 4 days ago by dcase

I can't see your upload, but that may be because our website is being a bit annoying today.

More importantly, copy the app/perturb directory from u-bd149 into your new suite. Then you can see the app in the GUI, and also you can run the script.

Note: See TracTickets for help on using tickets.