<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Couldn&#8217;t you look at the client-server
model like this: The server is the &#8216;managing&#8217; system that distributes data to
all clients. In that case, it&#8217;s not strange to call the rendering system &#8216;server&#8217;.
In fact, this system will also handle user interaction and so on, so it&#8217;s
definitely the system that knows most about the process. Perhaps &#8216;master-slave&#8217;
is better, like in OpenMPI.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Data transfer rates: It&#8217;s 768KB raw data
indeed, and it gets compressed (using LZO) to about 1/6<sup>th</sup> of that
(lossless, there are quite some black areas in the sample scene I&#8217;m using). That&#8217;s
still more than 100KB per frame, so at 20fps, it&#8217;s 2MB. The network should be
able to handle that, but ENet isn&#8217;t: Performance drops to 400ms per frame where
I achieved 200ms or less in the original application (no client-server
rendering), or 240 in my first (buggy) UDP/Winsock implementation with LZO
compression. For comparison: Last night I tried RakNet, which manages to get
270ms frames (also using LZO compression), which isn&#8217;t optimal, but pretty
close.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
enet-discuss-bounces@cubik.org [mailto:enet-discuss-bounces@cubik.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Tim Auld<br>
<b><span style='font-weight:bold'>Sent:</span></b> Wednesday, February 02, 2005
7:43 AM<br>
<b><span style='font-weight:bold'>To:</span></b> Discussion of the ENet library<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [ENet-discuss] Large
data packets over ENet</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Firstly, if you follow convention, the&nbsp;process that
displays the rendered images is called the client, and the other processes are
the servers.&nbsp; This is because the client asks a server to do some work for
it, no matter the relative number of processes.&nbsp; Really, your client (the
renderer with work it needs done) should connect to multiple servers... not the
other way around.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Question: do you really mean 650 kilobits per frame, or do
you mean kilobytes?&nbsp; 512*384*4 = 768KB.&nbsp; While it's not impossible to
compress that to&nbsp;650Kb&nbsp;(about 83KB), using something like
JPEG,&nbsp;it would probably take quite a lot of time to do that
compression.&nbsp; There's a big difference.&nbsp; After doing some
calculation, I think you could only achieve about 20fps on a 100Mbps ethernet
with 650KB frames.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Tim</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<blockquote style='border:none;border-left:solid black 1.5pt;padding:0in 0in 0in 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>----- Original Message ----- <o:p></o:p></span></font></p>

</div>

<div style='font-color:black'>

<p class=MsoNormal style='background:#E4E4E4'><b><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial;font-weight:bold'>From:</span></font></b><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> <a
href="mailto:jacco.bikker@overloaded.com" title="jacco.bikker@overloaded.com">Jacco
Bikker</a> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>To:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> <a
href="mailto:enet-discuss@cubik.org" title="enet-discuss@cubik.org">enet-discuss@cubik.org</a>
<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>Sent:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> Wednesday,
February 02, 2005 2:44 AM<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>Subject:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> [ENet-discuss]
Large data packets over ENet<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hello,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I am writing a ray tracer that renders at interactive frame
rates on a single machine (2Ghz, 5fps). To advance to realtime performance, I
am trying to use several computers to render the image. I tried using
winsock/UDP, but I lack the knowledge to properly implement this, and the
result was disappointing for anything above 2 clients.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>So I tried Enet. Implementation was a breeze, but
performance is somewhat disappointing. Perhaps I am doing something wrong, so
let me explain what I do:<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>-</span></font><font
size=1><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 face=Arial><span style='font-size:10.0pt;font-family:
Arial'>The server accepts incoming clients.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>-</span></font><font
size=1><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 face=Arial><span style='font-size:10.0pt;font-family:
Arial'>Once at least one client is available, the server sends a &#8216;go&#8217; packet to
each client. This packet contains information about which lines the client
should render.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>-</span></font><font
size=1><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 face=Arial><span style='font-size:10.0pt;font-family:
Arial'>The client receives this information, starts rendering, and returns the
result to the server.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>The maximum amount of returned pixel data is 512x384 pixels
(32bit). This is about 650Kb per frame. Using Enet, performance is
significantly better (but still disappointing) if I compress the data. Does
Enet have problems with large data streams? Is there a way to optimize this?<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>- Jacco.<o:p></o:p></span></font></p>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center>

</span></font></div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>_______________________________________________<br>
ENet-discuss mailing list<br>
ENet-discuss@cubik.org<br>
http://lists.cubik.org/mailman/listinfo/enet-discuss<o:p></o:p></span></font></p>

</blockquote>

</div>

</body>

</html>