New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circular dependency in Parsl #59

Closed
yadudoc opened this Issue Dec 19, 2017 · 0 comments

Comments

Projects
None yet
1 participant
@yadudoc
Contributor

yadudoc commented Dec 19, 2017

Reported by @dfj604

The following code will hang due to a circular dependency :

@App('python', dfk)
def App_A (x):
    import time
    time.sleep(0.2)
    return x*2

@App('python', dfk)
def AppSum (inputs=[]):
    return sum(inputs)

# Creating a list of App_Futures
app_futures = [ App_A(i) for i in range(0,2) ]
# Sum depends on the future results from the previous step
app_futures.extend([AppSum(inputs=app_futures)])
# However by extending app_futures with the future from AppSum, AppSum
# now depends on itself and will block forever.

print(app_futures)
[i.result() for i in app_futures]

While this maybe not ideal code from the user, this is something parsl should try to protect against.
Making a deep copy of the args and kwargs to immutable containers (say tuples) could help.

yadudoc added a commit that referenced this issue Apr 19, 2018

Adding some troubleshooting info
Provides documentaion fix for #59
Adding troubleshooting for network issues with IPP.

@yadudoc yadudoc closed this Apr 27, 2018

benclifford pushed a commit that referenced this issue Aug 9, 2018

annawoodard pushed a commit that referenced this issue Sep 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment