Github user rasehorn commented on the issue:
https://github.com/apache/zeppelin/pull/1799
@cloverhearts
I think a picture and some pseudocode tells more than thousand words, so I
created one.
Also: I'm only talking about the use case to ensure a certain sequence of
paragraph executions when runAll is called for the notebook. If you explicitely
call z.run(paragraphId) within a certain notebook after runAll() was called,
you propably execute those paragraphs twice.
The easiest way to ensure a certain sequence of paragraph execution after
runAll() was issued is to make the paragraphs wait for the one they depend on
to finish.
Lets say we have three paragraphs.
The first one is necessary to prepare the data and define temporary tables.
The second and third paragraphs depend on that data, so it does not make sense
to execute them before paragraph 1 finished.
Since the last two paragraphs are in status "running" and wait in parallel
for the first paragraph to finish, they will be executed in parallel.
Please see the picture

From my point of view this would be the easiest way for a ZeppelinUser to
ensure a certain sequence of paragraph execution including control which
paragraphs are executed in parallel.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---