Re: [viff-devel] Some profiling results

2008-09-25 Thread Martin Geisler
Mikkel Krøigård [EMAIL PROTECTED] writes:

 Citat Martin Geisler [EMAIL PROTECTED]:

 Martin Geisler [EMAIL PROTECTED] writes:

  Hi everybody,
 
  I have done some testing and come up with some strange numbers. I
  measured the time each individual multiplication takes by storing
  a timestamp when the multiplication is scheduled, and another
  when it finishes.

 Here is another plot which also shows when each multiplication is
 started and how long it takes.

 I guess the first multiplication is so slow because you're busy
 scheduling the rest. Notice that no multiplication actually finishes
 until they have all been started. This diagram makes sense in my
 mind at least.

Yep, it makes good sense for me too! Now it would be interesting to
see if we can obtain better timing results if we let the reactor
process incoming data while still scheduling.

I think I'll continue with this kind of inspection since it seems to
be an easy way to obtain data about how the various pieces work
together in VIFF.

-- 
Martin Geisler

VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/.
___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk


Re: [viff-devel] Some profiling results

2008-09-24 Thread Mikkel Krøigård
Citat Martin Geisler [EMAIL PROTECTED]:

 In both plots we see that the first multiplication takes very long, it
 is sort of waiting on the other multiplications. I think this is
 because we're not yielding to the reactor when we start all the
 multiplications.

 This also means that no network communication is started for the first
 multiplication until after all multiplications have been scheduled --
 this is actually not what we want...

 Here are the plots, please let me know what you think of this.

At a glance, it does look like the timing is being done correctly. Right now I
can only confirm that there's definitely something funny going on in those
plots.


___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk


Re: [viff-devel] Some profiling results

2008-09-24 Thread Martin Geisler
[EMAIL PROTECTED] writes:

 Hi Martin,

 I have a couple of stupid questions:

 Quoting Martin Geisler [EMAIL PROTECTED]:

 I've attached two plots, one for 1000 multiplications and one for
 4000. Each plot has the multiplication-number on the x-axis and the
 time for that multiplication on the y-axis.

 If you have done 1000, resp. 4000 mult's, why do the x-axes start at
 2000, reps. 8000?

Ah, good question: the numbers are taken from the current program
counter at the time when the multiplication is scheduled. And it turns
out to start at about 2n since we start by doing 2n shamir secret
sharings to get n pairs.

 And if you have measured time for individual multiplications, why
 are the numbers on the y-axis smaller in the 1000 multiplication
 case? Shouldn't they take about the same amount of time in both
 cases?

Yes, that was what I expected too! I would at least expect the final
multiplications to take about equally long, even if the first one are
waiting longer when doing 4000 multiplications.

-- 
Martin Geisler

VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/.
___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk


Re: [viff-devel] Some profiling results

2008-09-24 Thread Martin Geisler
Martin Geisler [EMAIL PROTECTED] writes:

 Hi everybody,

 I have done some testing and come up with some strange numbers. I
 measured the time each individual multiplication takes by storing a
 timestamp when the multiplication is scheduled, and another when it
 finishes.

Here is another plot which also shows when each multiplication is
started and how long it takes.

attachment: duration-4000.png
-- 
Martin Geisler

VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/.
___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk


Re: [viff-devel] Some profiling results

2008-09-24 Thread ivan
Quoting Martin Geisler [EMAIL PROTECTED]:

 Martin Geisler [EMAIL PROTECTED] writes:

  Hi everybody,
 
  I have done some testing and come up with some strange numbers. I
  measured the time each individual multiplication takes by storing a
  timestamp when the multiplication is scheduled, and another when it
  finishes.

 Here is another plot which also shows when each multiplication is
 started and how long it takes.

I agree with Mikkel that it seems to make sense that it looks this way.
But of course we would have been happier if the first multiplication did
not have to wait for so long. In particular it seems it is waiting longer
the more multiplications you ask for in total, right?
This is certainly something we don't want. I don't nearly enough about
how this works to say what to do about it..

regards, Ivan

___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk