Can I remove a firework from a workflow after its creation ?

Hello,

I have a worflow where a lot of tasks run in parallel (I analyse a large number of signals idenpendantly) and a final “join” fw wich depends on all parallel ones (I’m looking for common events in these signals).

My problem is that some signals are corrupted, or a file is not complete … something has gone wrong in a single signal analysis and it is not possible to overcome this.

I would like to definitively remove these FIZZLED tasks from the workflow (just like if they had never existed), so I can execute the final tasks wich depends on them and can therefore never start. As I have a large number of signals, it doesn’t mind if some few of them are missing …

Is there a simple way for doing it ?

Best regards,
David

Hi David

There is no way to “remove” the Fireworks other than manually hacking the MongoDB database which I would not recommend. However, there is a solution to your problem which is, in the “join” FireWork, to add the following to your spec:

{"_allow_fizzled_parents": True}

This is (barely) documented in: http://materialsproject.github.io/fireworks/failures_tutorial.html and http://materialsproject.github.io/fireworks/reference.html#reserved-keywords-in-fw-spec

With this option set in your “join” Firework, it will execute when all its parents are some mixture of COMPLETED or FIZZLED.

This should work for any future workflows, I’m not sure the best way to patch your existing workflows. You might have to add that option to your join FW (either lpad update_fws or LaunchPad.update_spec()) and manually refresh the workflow (either lpad admin refresh or LaunchPad._refresh_wf()) but I haven’t tried it

Best,

Anubhav

···

On Friday, September 15, 2017 at 2:38:42 AM UTC-7, [email protected] wrote:

Hello,

I have a worflow where a lot of tasks run in parallel (I analyse a large number of signals idenpendantly) and a final “join” fw wich depends on all parallel ones (I’m looking for common events in these signals).

My problem is that some signals are corrupted, or a file is not complete … something has gone wrong in a single signal analysis and it is not possible to overcome this.

I would like to definitively remove these FIZZLED tasks from the workflow (just like if they had never existed), so I can execute the final tasks wich depends on them and can therefore never start. As I have a large number of signals, it doesn’t mind if some few of them are missing …

Is there a simple way for doing it ?

Best regards,
David