क्यों ज़िप के साथ एक "के लिए लूप" अजगर में के समय निष्पादन मोटे तौर पर दो बराबर contextt में समान नहीं है

वोट
0

मैं दो अलग लेकिन बराबर संदर्भ में एक ही आकार की वस्तुओं के साथ ही समारोह का उपयोग कर पायथन में एक ही पाश के लिए चल रहा हूँ। हालांकि दो छोरों के कम्प्यूटेशनल समय ही नहीं है। एक मामले में यह तीन बार अन्य मामले की कम्प्यूटेशनल समय है। यहाँ कोड है:

result = multiproc_map(local_analysis, state_batches)
for ii, (ATii,muii) in zip(state_batches, result):
   AT[:,ii] = ATii 
   mu[ii]  = muii 

यहाँ दो मामलों में ऊपर कोड के हिस्से की (सेकंड में।) Diiferent निष्पादन समय कर रहे हैं:

multiproc_map के निष्पादन के समय: 9.5367431640625e-07 4.069389343261719

पाश के लिए के निष्पादन के समय: 13.779568910598755 0.0259706974029541

दोनों ही मामलों में वस्तुओं का आकार local_analysis और state_batches बिल्कुल वैसा ही कर रहे हैं।

किसी भी मदद को बहुत सराहा जाएगा। बेशक, मैं अधिक विवरण और विवरण अगर जरूरत प्रदान कर सकते हैं :)

09/10/2019 को 13:00
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं अंत में एक समाधान नहीं बल्कि इस समस्या का एक विवरण मिल गया। मैं दो अलग-अलग मामलों में इस पाश उपयोग कर रहा था के रूप में, मैं बग की उत्पत्ति का पता लगाने सकता है। मैं अंत में पाया के समय निष्पादन में एक अंतर नहीं था "पाश के लिए" अगर मैं समारोह और कीवर्ड्स का उपयोग तर्क की परिभाषा में मानकों की स्थिति को बदलने। यहाँ समारोह के पुराने परिभाषा है:

hybrid_dual_resolution(N,Nl,Nhs,Nls,alpha,betaH1,betaH2,betaH3,betaL1,betaL2,betaL3,
                       opt_file_hr,opt_file_lr,loc_radh,loc_radl,upd_a,
                       infl=1.0,rot=False,mp=False,taper='GC',**kwargs):

यहाँ समारोह जहाँ मैं कीवर्ड तर्कों के रूप तर्क देना की नई परिभाषा है:

def hybrid_dual_resolution(opt_file_hr=None,opt_file_lr=None,upd_a='DEnKF',
                           N=3,Nhs=200,Nl=32,Nls=200,loc_radh=17.7,loc_radl=8.75,
                           alpha=0.04,
                           betaH1=1.,betaH2=0.,betaH3=0.,
                           betaL1=0.,betaL2=1.,betaL3=0.,
                           taper='GC',infl=1.0,
                           rot=False,mp=False,**kwargs):

और अब लूप के निष्पादन के समय दोनों ही मामलों में एक ही और न्यूनतम समय मैं पिछले पोस्ट में उल्लेख के करीब है।

मैं काफी इस बग द्वारा हैरान हूं। आपको लगता है कि कीवर्ड तर्कों के रूप तर्क गुजर "पाश के लिए" के निष्पादन के समय बदल सकते हैं हैं?

11/10/2019 को 14:12
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more