From: jpff <jpff@co...>  20080730 08:58:52

I will try to explain the measurements and the purposes to which they could be put. In order that an opcode OP is to be played for T seconds it will need to be initialised (irate) and then it is performed. The performance function will be called T*kr times. Each of these calls has a fixed cost and a cost that is proportional to ksmps. So the cost of OP for T secs is A + T*kr*(B*ksmps + C) As ksmps*kr is sr you can view this as A + T*sr*B + T*kr*C A is immutable, B is the cost per sample and C is the cost of using a kontrol rate. The measurements were done on an i386 using valgrind and similar tools, using Trapped and Hans Mikelson's Teknobubble. Clearly the figures average the effect of different parameters, and there are some oddities that suggest that the tools need a little tweak, So uses: for rt performance it tells you the value of the kr reduction against quality. When there are more opcodes measured it should inform the choice of detailed methods. For parallelism it is essential that the granularity of the tasks is considered, and over the years I have played with parallelism I have seems significant slowdowns as the small granularity messes up the overhead cost of task switch or distribution. I hope this clarifies things a little. I am afraid that at heart I am a mathematician so formulae are clearer than words in these cases. Happy to answer questions take requests for particular opcodes to be measured or whatever improves csound. Below is my current data set ==John ffitch  A B C (missing values are zero) !=.i: 13 !=.k: 0 0 13 *.ak: 0 6 15 *.ka: 0 6 15 *.kk: 0 0 9 +.aa: 0 6 16 +.kk: 0 0 9 /.ak: 0 6 20 /.kk: 0 0 9 =.i 7 =.k: 0 0 7 =.a: 0 1 15 .kk: 0 0 9 grain: 497 917.921440 79475.154651 arand: 52 0.351226 188.512264 balance: 38 2.351111 274.488889 butterbp: 20 30 71 butterhi: 19 30.000387 35 butterlp: 19 29.005359 45.478359 buzz: 75 0.639775 430.385596 cpspch: 106.368056 delay: 4097 0.340018 157.403009 exp.i: 19.412868 exp.k: 0 0 19.412868 expon.k: 178.553846 0 9 expseg.a: 669.121622 5.000011 37 expseg.k: 669.121622 0.000031 26 foscil: 81 29 72 frac.i: 65 gbuzz: 77 64.000105 125.499682 init: 0 4 12 int.i: 67 integrate: 13 5 17 kcgoto: 0 0.000022 8.758767 kgoto: 0 0 7 line.k: 20 0.000762 8.992379 linen.k: 62 0.000004 20.650515 linseg.k: 266.971564 0.000559 29.994448 nlfilt: 1068.813496 52.985889 100.158886 octpch.i: 74 oscil.ka: 69 17 46 oscil.kk: 69 0 41 oscil.kk: 69 12 47 oscili.kk: 69 21 49 outs: 0 9.563279 21.655083 phasor.a: 38 15.979998 32.000007 phasor.k: 38 0.000798 27 randh.k: 60 0.058034 34.004509 randi.k: 76 0.015561 35.999951 =.r: 2 reinit: 0 0 16335.400000 reson: 39 13.002546 99.545002 reverb: 6963.481481 77.038957 157.999993 rms: 32 10 21 sqrt.i: 8 sqrt.k: 0 0 8 table.a: 93 23.062626 43.997796 table.k: 93 0 45 tablei.k: 93 0 61 timout: 40 0.002915 15.235836 upsamp: 0 4 12 vdelay: 2073.886076 53.572573 69.049966 zacl: 14 51 54 zar: 14 1 41 zaw: 14 1.000018 38.998197 zkcl: 14 0 101 zkr: 14 0 32 zkw: 14 0 31.999964 **end** 