this is the profile for a sample of 1000 elements Fri Apr 11 10:21:21 2014 restats
31594963 function calls in 103.708 seconds Ordered by: internal time List reduced from 47 to 20 due to restriction <20> ncalls tottime percall cumtime percall filename:lineno(function) 1 57.133 57.133 103.692 103.692 skymapsI.py:44(mymain) 176832 9.898 0.000 11.710 0.000 interpolate.py:394(_call_linear) 18101000 7.808 0.000 7.808 0.000 {method 'write' of 'file' objects} 1237824 3.794 0.000 3.794 0.000 {numpy.core.multiarray.array} 1001000 3.610 0.000 38.383 0.000 instruments.py:10(kappa) 353664 3.314 0.000 3.314 0.000 {method 'reduce' of 'numpy.ufunc' objects} 176832 3.157 0.000 7.428 0.000 interpolate.py:454(_check_bounds) 176832 2.074 0.000 10.213 0.000 interpolate.py:330(__init__) 176832 2.053 0.000 21.522 0.000 interpolate.py:443(_evaluate) 176832 1.253 0.000 4.404 0.000 polyint.py:82(_set_yi) 176832 0.769 0.000 0.769 0.000 {method 'clip' of 'numpy.ndarray' objects} 353664 0.706 0.000 0.706 0.000 {method 'reshape' of 'numpy.ndarra y' objects} 353664 0.667 0.000 1.205 0.000 numerictypes.py:735(issubdtype) 707328 0.637 0.000 2.451 0.000 numeric.py:392(asarray) 176832 0.601 0.000 23.555 0.000 polyint.py:37(__call__) 353664 0.569 0.000 3.883 0.000 _methods.py:31(_any) 176832 0.504 0.000 1.429 0.000 polyint.py:74(_reshape_yi) 176832 0.473 0.000 0.473 0.000 {method 'searchsorted' of 'numpy.n darray' objects} 176832 0.440 0.000 1.645 0.000 polyint.py:102(_set_dtype) 176832 0.426 0.000 4.830 0.000 polyint.py:30(__init__) thanks Gabriele 2014-04-11 10:18 GMT-04:00 Gabriele Brambilla < gb.gabrielebrambi...@gmail.com>: > ok > modifying the for in this way (zipping an array of matrix drive it crazy) > it works > > dko=0 > > for gammar in gmils: > > > omC = (1.5)*(gammar**3)*c/(rho*rlc) > > gig = omC*hcut/eVtoErg > > > #check the single emission > > > > for w in eel: > > omega = > (10**(w*stepENE+Lemin))*eVtoErg/hcut > > x = omega/omC > > kap = instruments.kappa(x) > > Iom = (1.732050808/c)*(e**2)*gammar*kap > #jackson dI/domega > > P = Iom*(c/(rho*rlc))/(2*pi) #jackson P > > phps = P/(hcut*omega) #photons per second > > www = phps/(stepPHA*sin(zobs)*stepOB) > > MYMAPS[dko][i,j,w] += www > > dko += 1 > > > > count = count + 1 > > Now I will tell you how much it takes. > > Thanks > > Gabriele > > > > 2014-04-11 10:05 GMT-04:00 Gabriele Brambilla < > gb.gabrielebrambi...@gmail.com>: > > ok, it seems that the code don't enter in this for loop >> >> for gammar, MYMAP in zip(gmlis, MYMAPS): >> >> I don't understand why. >> >> Thanks >> >> Gabriele >> >> >> 2014-04-11 9:56 GMT-04:00 Gabriele Brambilla < >> gb.gabrielebrambi...@gmail.com>: >> >> Hi, I'm sorry but there is a big problem. >>> the code is producing empty file.dat. >>> >>> I think it's because of this that previously I have done that strange >>> trick of myinternet... >>> >>> So: >>> >>> for my_line in open('data.dat'): >>> >>> myinternet = [] >>> >>> gmlis = [] >>> >>> print('reading the line', count, '/599378') >>> >>> my_parts = [float(i) for i in my_line.split()] >>> >>> phase = my_parts[4] >>> >>> zobs = my_parts[5] >>> >>> rho = my_parts[6] >>> >>> >>> >>> gmils=[my_parts[7], my_parts[8], my_parts[9], >>> my_parts[10], my_parts[11]] >>> >>> >>> >>> i = int((phase-phamin)/stepPHA) >>> >>> j = int((zobs-obamin)/stepOB) >>> >>> >>> >>> for gammar, MYMAP in zip(gmlis, MYMAPS): >>> >>> >>> >>> omC = (1.5)*(gammar**3)*c/(rho*rlc) >>> >>> gig = omC*hcut/eVtoErg >>> >>> #check the single emission >>> >>> >>> >>> for w in eel: >>> >>> omega = >>> (10**(w*stepENE+Lemin))*eVtoErg/hcut >>> >>> x = omega/omC >>> >>> kap = instruments.kappa(x) >>> >>> >>> Iom = (1.732050808/c)*(e**2)*gammar*kap >>> #jackson dI/domega >>> >>> P = Iom*(c/(rho*rlc))/(2*pi) #jackson P >>> >>> phps = P/(hcut*omega) #photons per second >>> >>> www = phps/(stepPHA*sin(zobs)*stepOB) >>> >>> MYMAP[i,j,w] += www >>> >>> >>> >>> count = count + 1 >>> >>> when I exit here the MYMAP matrix has all the cells = 0. >>> >>> Now I will try to fiugre it out why. >>> >>> Thanks >>> >>> Gabriele >>> >>> >>> >>> 2014-04-11 9:20 GMT-04:00 Gabriele Brambilla < >>> gb.gabrielebrambi...@gmail.com>: >>> >>> Hi Danny, >>>> I'm quiet impressed. >>>> the program takes near 30 minutes instead of more than 8 hours! >>>> >>>> this is the profile: >>>> Fri Apr 11 09:14:04 2014 restats >>>> >>>> 19532732 function calls in 2105.024 seconds >>>> >>>> Ordered by: internal time >>>> >>>> ncalls tottime percall cumtime percall filename:lineno(function) >>>> 1 2087.606 2087.606 2105.006 2105.006 skymapsI.py:44(mymain) >>>> 18101000 12.757 0.000 12.757 0.000 {method 'write' of 'file' >>>> objects} >>>> >>>> 715853 3.473 0.000 3.473 0.000 {method 'split' of 'str' >>>> objects} >>>> 715854 1.162 0.000 1.162 0.000 {zip} >>>> 1 0.018 0.018 2105.024 2105.024 <string>:1(<module>) >>>> 6 0.006 0.001 0.006 0.001 {open} >>>> 5 0.002 0.000 0.002 0.000 {method 'close' of 'file' >>>> objects} >>>> >>>> 1 0.000 0.000 0.000 0.000 >>>> function_base.py:8(linspace) >>>> 5 0.000 0.000 0.000 0.000 >>>> {numpy.core.multiarray.zeros} >>>> 1 0.000 0.000 0.000 0.000 >>>> function_base.py:93(logspace) >>>> 1 0.000 0.000 0.000 0.000 >>>> {numpy.core.multiarray.arange} >>>> 3 0.000 0.000 0.000 0.000 {range} >>>> 1 0.000 0.000 0.000 0.000 {method 'disable' of >>>> '_lsprof.Prof >>>> iler' objects} >>>> >>>> I hope to have similar problems in the future to learn better how to do >>>> with them! >>>> but in the profile I don't see any operation regarding reading the file >>>> or the mathematical operations...are them hidden in mymain()? >>>> >>>> thanks >>>> >>>> Gabriele >>>> >>>> >>>> >>>> >>>> 2014-04-10 21:38 GMT-04:00 Danny Yoo <d...@hashcollision.org>: >>>> >>>> > Comment: You are looping over your sliced eel five times. Do you >>>>> > need to? I like eel salad a great deal, as well, but, how about: >>>>> > >>>>> > >>>>> > for k in eel: >>>>> > MYMAP1[i, j, k] = MYMAP1[i, j, k] + myinternet[oo] >>>>> > MYMAP2[i, j, k] = MYMAP2[i, j, k] + myinternet[oo] >>>>> > MYMAP3[i, j, k] = MYMAP3[i, j, k] + myinternet[oo] >>>>> > MYMAP4[i, j, k] = MYMAP4[i, j, k] + myinternet[oo] >>>>> > MYMAP5[i, j, k] = MYMAP5[i, j, k] + myinternet[oo] >>>>> > oo = oo + 1 >>>>> >>>>> >>>>> Hi Gabriele, >>>>> >>>>> Also note that, when Martin looked at this part of the code, he >>>>> unfortunately misinterpreted its effect; Martin's proposed rewrite >>>>> here does not preserve the meaning of the original code. But rather >>>>> than wag my finger at how Martin interpreted the code, I'd rather make >>>>> the observation that this is a warning sign that the original code >>>>> here was not easy to understand. >>>>> >>>> >>>> >>> >> >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor