मैं अपने क्लस्टर में client.submit इंटरफ़ेस के साथ फ़ंक्शन सबमिट करने के लिए Dask Distributed का उपयोग कर रहा हूं। यदि कोई क्लस्टर उपलब्ध नहीं है तो मैं सीरियल, गैर-वितरित, निष्पादन के लिए डिफ़ॉल्ट हूं। मैं फ़ंक्शन से, यह निर्धारित करने में सक्षम होना चाहता हूं कि यह एक वितरित भविष्य या सामान्य कार्य के रूप में चल रहा है या नहीं।

उदाहरण के लिए, नीचे दिए गए work फ़ंक्शन के लिए मैं जानना चाहता हूं कि यह client.submit(work) के माध्यम से चल रहा है या केवल work() के रूप में।

def work():
    if is_distributed():
       # do stuff
    else:
       # do different stuff

is_distributed() ऊपर कैसा दिखना चाहिए?

0
gallamine 22 सितंबर 2020, 23:02

1 उत्तर

सबसे बढ़िया उत्तर

आपको फ़ंक्शन distributed.worker.get_worker का उपयोग करना चाहिए। यह या तो कार्यकर्ता का उदाहरण लौटाएगा, या एक ValueError बढ़ाएगा। तो आप कुछ ऐसा कर सकते हैं

def is_distributed()():
    import distributed.worker
    try:
        get_worker()
        return True
    except ValueError:
        return False
0
mdurant 22 सितंबर 2020, 21:06