Re: OpenExr 2.3 - slower write speeds for Uncompressed and Zip1

Karl Rasche <[email protected]> Mon, 22 Apr 2019 17:01:19 -0700
Newsgroups gmane.comp.video.openexr.devel
Message-ID <CAD5HwvTnmJFXr_Ouj0wA+R=KGwbqYgmkCLymSEAKCfcAKYwqsg@mail.gmail.com>
--===============0226401540401592372==
Content-Type: multipart/related; boundary="00000000000092d0bc05872749f9"

--00000000000092d0bc05872749f9
Content-Type: multipart/alternative; boundary="00000000000092d0bb05872749f8"

--00000000000092d0bb05872749f8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Reaching way back - I do recall performance differences between 4.1 and
4.8, though it was for reading and 4.8 was faster. The exact reason I can=
=E2=80=99t
recall. This sounds different.

Which case in copyFromFrameBuffer() are you hitting? The code is actually
pretty straightforward at it core - its memcpy or memcpy with byte order
swizzing.

Karl

On Mon, Apr 22, 2019 at 10:20 AM Gyula Gubacsi <[email protected]>
wrote:

> Hi,
>
> Following up on this, we tried the suggestion of using the
> ILMBASE_FORCE_CXX03 but did not make any difference in our measurement. S=
o
> I went on and investigated the issue closer. I've eliminated a few
> differences before I got something that might be the cause of the problem=
.
>
> So, our OpenEXR build, 2.2.0 was built with the standard compiler at the
> time, gcc 4.1.2 if I'm right. I have compared this to the OpenEXR 2.3.0
> which I built with GCC 4.8.5. In order to eliminate the differences, I've
> rebuilt OpenEXR 2.2.0/2.3.0 with gcc 4.8.5 (vfx17) and gcc 6.3.1 (vfx19).
> The results seem to indicate that OpenEXR 2.2.0 experiences the same
> slowdown as 2.3.0  with these compilers, as compared to the one built wit=
h
> gcc 4.1.2. When investigated with VTune, I found that the function that
> rises the most significantly in execution time, is
> Imf2_X::copyFromFrameBuffer(). This is true  for both 2.3.0 and 2.2.0. So
> it seems that the slowdown. We would normally expect speed ups  with newe=
r
> compilers, but of course it's never a linear path. There was  some slowdo=
wn
> also in the rleCompress function, but with generally less impact (at the
> moment I'm focusing on RLE compression as in our experience this suffered
> the most significant slowdown, but now I suspect it might as well be a
> relative portion of slowdown that made this compression type slower). I
> also read on some threads that people experienced significant gains on DW=
A
> performance when switching gcc 4.1.x to 4.8, which confirms our finding a=
s
> well.
>
> Any experience with different compilers?  The copyFromFrameBuffer functio=
n
> seems to be very complex and it might have been an overly optimistic
> optimisation back in 4.1.2 that might have been removed since.
>
> On Thu, 4 Apr 2019 at 13:22, Tony Micilotta <[email protected]>
> wrote:
>
>> Hi Peter and Nick,
>>
>>
>>
>> Thank you for the suggestions and performance findings. We rebuilt with =
ILMBASE_FORCE_CXX03
>> defined, however the write speed changes remain unchanged . We=E2=80=99l=
l look at
>> your suggestions too Peter and will also take a peak with vtune.
>>
>>
>>
>> Regards,
>>
>> Tony
>>
>>
>>
>> *From: *Peter Hillman <[email protected]>
>> *Date: *Wednesday, 3 April 2019 at 07:30
>> *To: *Nick Porcino <[email protected]>, Tony Micilotta <
>> [email protected]>, "[email protected]" <
>> [email protected]>
>> *Subject: *Re: [Openexr-devel] OpenExr 2.3 - slower write speeds for
>> Uncompressed and Zip1
>>
>>
>>
>> I've just been running tests myself along the same lines.
>>
>> I tried comparing writing various schemes with EXR-2.2.1, EXR-2.3.0 and
>> EXR-2.3.0 using an IlmBase build with ILMBASE_FORCE_CXX03 (passing
>> --enable-stdcxx=3D03 to ./configure)
>>
>> This attempts to use the API in a similar way to the Nuke exrWriter
>> example (my code attached)
>>
>>
>>
>> Conclusions:
>>
>>
>>
>> I don't think ILMBASE_FORCE_CXX03 has a difference in my test.
>>
>> I find no reliable speed difference between 2.2.1 and 2.3.0 where no
>> threadpool is used (so running the attached test using *testEXR zips
>> none 1 /tmp/test.exr*) or the number of threads is close to the number
>> of CPU cores regardless of compression scheme (e.g. with 4 cores try *te=
stEXR
>> zips 4 20 /tmp/test.exr*) .
>>
>> I *did* manage to make 2.3.0 go slower than 2.2.1, by running *testEXR
>> zips 100 10 /tmp/test.exr* which means there are 100 threads allocated,
>> but only a (random?) 10 of those have anything to do each time, since on=
ly
>> 10 scanlines are written at once, and those 10 are fighting for (in my
>> case) 4 cores. Both 2.2.1 and 2.3.0 run slower with excessive threadpool=
s,
>> but the effect is significantly more in 2.3.0.
>>
>>
>>
>> I wonder if somehow Nuke's other threads are interfering with EXRs
>> threadpool operation in 2.3.0 in a way they aren't in 2.2.1? It might be
>> interesting to implement a test like the attached as a self-contained
>> method triggered from a button press in a Nuke node, so it runs within
>> Nuke's existing framework but doesn't use any Nuke functionality at all,
>> and see if there's a difference between that and running the function as=
 a
>> standalone binary outside of Nuke.
>>
>>
>>
>> I'm intrigued that, according to the graph, the compression schemes that
>> write single scanlines at once have slowed down, and the ones that write
>> many scanlines at once have sped up. Schemes that write multiple scanlin=
es
>> per block have lower overhead through IlmThread. In my case I didn't see
>> any significant speedups with 2.3.0 in any scheme.
>>
>>
>>
>> Peter
>>
>>
>> ------------------------------
>>
>> *From:* Openexr-devel <openexr-devel-bounces+peterh=3D
>> [email protected]> on behalf of Nick Porcino <[email protected]>
>> *Sent:* Wednesday, 3 April 2019 5:05 PM
>> *To:* Tony Micilotta; [email protected]
>> *Subject:* Re: [Openexr-devel] OpenExr 2.3 - slower write speeds for
>> Uncompressed and Zip1
>>
>>
>>
>>
>>
>> One of the big differences between 2.2 and 2.3 is that we moved from
>> pthread to std::thread, and made a number of corrections for thread safe=
ty.
>>
>>
>>
>> e.g.
>>
>>
>>
>>
>> https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1a2ec969a=
9dd12f2497
>>
>>
>>
>>
>> https://github.com/openexr/openexr/commit/bf0cb8cdce32fce36017107c9982e1=
e5db2fb3fa
>>
>>
>>
>> The old pthread/windows native implementation can be re-enabled by
>> setting the preprocessor define ILMBASE_FORCE_CXX03. I am wondering if
>> you might be able to benchmark against that version of the code as an
>> experiment to get more information?
>>
>>
>>
>>
>> ------------------------------
>>
>> *From:* Openexr-devel <openexr-devel-bounces+meshula=3D
>> [email protected]> on behalf of Tony Micilotta <
>> [email protected]>
>> *Sent:* Monday, April 1, 2019 8:27:29 AM
>> *To:* [email protected]
>> *Subject:* [Openexr-devel] OpenExr 2.3 - slower write speeds for
>> Uncompressed and Zip1
>>
>>
>>
>> Hi,
>>
>>
>>
>> At Foundry we=E2=80=99ve started testing the read performance of OpenExr=
 2.3 with
>> Boost 1.66 as we move Nuke towards conforming to VFX Reference Platform
>> 2019. Although the release notes don=E2=80=99t mention any changes to fi=
le writing,
>> we have charted (see graphic below) OpenExr 2.3 write performance agains=
t
>> OpenExr 2.2 as we noticed a slowdown in our playback cache generation wh=
ich
>> uses OpenExr.
>>
>>
>>
>> From Nuke, a checkerboard/colourwheel combination is generated and
>> animated over 100 frames in order to eliminate file reading from the
>> measurements. These 100 frames are written to disk using each compressio=
n
>> type, and the timings are averaged over 10 test runs. Certain compressio=
n
>> types show an improvement which is great, however we=E2=80=99re concerne=
d that
>> Uncompressed and Zip1 are 13% and 9% slower respectively:
>>
>>
>>
>> [image:
>> /var/folders/40/8tkm41ts6pl0g3qvshsrrnpc0001xc/T/com.microsoft.Outlook/C=
ontent.MSO/515C417.tmp]
>>
>>
>>
>> Have you benchmarked this on your side too, and have you noticed similar
>> metrics?
>>
>>
>>
>> Regards,
>>
>> Tony
>>
>>
>>
>>
>>
>>
>> *Tony Micilotta*
>>
>> Senior Technical Product Manager - Nuke Family
>>
>> [image:
>> https://lh6.googleusercontent.com/x8JxqXcMjULW_8dLygamrZxWcjpFchCVThRNxL=
rFSEsE_i1aMPBED6FYrUWu6lT54vMN4z1x3D59uPxzh1ughmlVxH5-6yflHx_SZlGAUZV3NA3Fa=
tIrHplrrBasCyGa3MhHz8Ti]
>>
>> *Tel*: +44 (0)20 7479 4350
>>
>> *Web: *www.foundry.com
>>
>>
>> The Foundry Visionmongers Ltd.  -  Registered in England and Wales No:
>> 4642027  -  Address: 5 Golden Square, London, W1F 9HT
>> <https://maps.google.com/?q=3D5+Golden+Square,+London,+W1F+9HT&entry=3Dg=
mail&source=3Dg>
>>  -  VAT No: 672742224
>>
>>
>>
> _______________________________________________
> Openexr-devel mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/openexr-devel
>

--00000000000092d0bb05872749f8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div dir=3D"auto">Reaching way back - I do recall performance differen=
ces between 4.1 and 4.8, though it was for reading and 4.8 was faster. The =
exact reason I can=E2=80=99t recall. This sounds different.</div></div><div=
 dir=3D"auto"><br></div><div dir=3D"auto">Which case in copyFromFrameBuffer=
() are you hitting? The code is actually pretty straightforward at it core =
- its memcpy or memcpy with byte order swizzing.</div><div dir=3D"auto"><br=
></div><div dir=3D"auto">Karl</div><div dir=3D"auto"><br></div><div><div cl=
ass=3D"gmail_quote"><div dir=3D"ltr">On Mon, Apr 22, 2019 at 10:20 AM Gyula=
 Gubacsi &lt;<a href=3D"mailto:[email protected]">gyula.gubacsi@fou=
ndry.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D=
"ltr"><div>Hi,</div><div><br></div><div>Following up on this, we tried the =
suggestion of using the ILMBASE_FORCE_CXX03 but did not make any difference=
 in our measurement. So I went on and investigated the issue closer. I&#39;=
ve eliminated a few differences before I got something that might be the ca=
use of the problem.</div><div><br></div><div>So, our OpenEXR build, 2.2.0 w=
as built with the standard compiler at the time, gcc 4.1.2 if I&#39;m right=
. I have compared this to the OpenEXR 2.3.0 which I built with GCC 4.8.5. I=
n order to eliminate the differences, I&#39;ve rebuilt OpenEXR 2.2.0/2.3.0 =
with gcc 4.8.5 (vfx17) and gcc 6.3.1 (vfx19). The results seem to indicate =
that OpenEXR 2.2.0 experiences the same slowdown as 2.3.0=C2=A0 with these =
compilers, as compared to the one built with gcc 4.1.2. When investigated w=
ith VTune, I found that the function that rises the most significantly in e=
xecution time, is Imf2_X::copyFromFrameBuffer(). This is true=C2=A0 for bot=
h 2.3.0 and 2.2.0. So it seems that the slowdown. We would normally expect =
speed ups=C2=A0 with newer compilers, but of course it&#39;s never a linear=
 path. There was=C2=A0 some slowdown also in the rleCompress function, but =
with generally less impact (at the moment I&#39;m focusing on RLE compressi=
on as in our experience this suffered the most significant slowdown, but no=
w I suspect it might as well be a relative portion of slowdown that made th=
is compression type slower). I also read on some threads that people experi=
enced significant gains on DWA performance when switching gcc 4.1.x to 4.8,=
 which confirms our finding as well.</div><div><br></div><div>Any experienc=
e with different compilers?=C2=A0 The copyFromFrameBuffer function seems to=
 be very complex and it might have been an overly optimistic optimisation b=
ack in 4.1.2 that might have been removed since.<br></div></div><br><div cl=
ass=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, 4 Apr 201=
9 at 13:22, Tony Micilotta &lt;<a href=3D"mailto:[email protected]=
" target=3D"_blank">[email protected]</a>&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-GB"><div clas=
s=3D"m_1302083766799476397gmail-m_-4685168538236640537WordSection1"><p clas=
s=3D"MsoNormal">Hi Peter and Nick,<u></u><u></u></p><p class=3D"MsoNormal">=
<u></u>=C2=A0<u></u></p><p class=3D"MsoNormal">Thank you for the suggestion=
s and performance findings. We rebuilt with <span class=3D"m_13020837667994=
76397gmail-m_-4685168538236640537xblob-code-inner">ILMBASE_FORCE_CXX03 defi=
ned, however the write speed changes remain unchanged . We=E2=80=99ll look =
at your suggestions too Peter and will also take a peak with vtune.<u></u><=
u></u></span></p><p class=3D"MsoNormal"><span class=3D"m_130208376679947639=
7gmail-m_-4685168538236640537xblob-code-inner"><u></u>=C2=A0<u></u></span><=
/p><p class=3D"MsoNormal"><span class=3D"m_1302083766799476397gmail-m_-4685=
168538236640537xblob-code-inner">Regards,<u></u><u></u></span></p><p class=
=3D"MsoNormal"><span class=3D"m_1302083766799476397gmail-m_-468516853823664=
0537xblob-code-inner">Tony<u></u><u></u></span></p><p class=3D"MsoNormal"><=
span class=3D"m_1302083766799476397gmail-m_-4685168538236640537xblob-code-i=
nner"> </span><u></u><u></u></p><p class=3D"MsoNormal"><u></u>=C2=A0<u></u>=
</p><div style=3D"border-color:rgb(181,196,223) currentcolor currentcolor;b=
order-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm =
0cm"><p class=3D"MsoNormal"><b><span style=3D"font-size:12pt;color:black">F=
rom: </span></b><span style=3D"font-size:12pt;color:black">Peter Hillman &l=
t;<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
.nz</a>&gt;<br><b>Date: </b>Wednesday, 3 April 2019 at 07:30<br><b>To: </b>=
Nick Porcino &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">m=
[email protected]</a>&gt;, Tony Micilotta &lt;<a href=3D"mailto:tony.micil=
[email protected]" target=3D"_blank">[email protected]</a>&gt;, &qu=
ot;<a href=3D"mailto:[email protected]" target=3D"_blank">openexr-de=
[email protected]</a>&quot; &lt;<a href=3D"mailto:[email protected]" ta=
rget=3D"_blank">[email protected]</a>&gt;<br><b>Subject: </b>Re: [Op=
enexr-devel] OpenExr 2.3 - slower write speeds for Uncompressed and Zip1<u>=
</u><u></u></span></p></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u=
></p></div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:=
black">I&#39;ve just been running tests myself along the same lines. <u></u=
><u></u></span></p></div><div><p class=3D"MsoNormal"><span style=3D"font-si=
ze:12pt;color:black">I tried comparing writing various schemes with EXR-2.2=
.1, EXR-2.3.0 and EXR-2.3.0 using an IlmBase build with ILMBASE_FORCE_CXX03=
 (passing --enable-stdcxx=3D03 to ./configure)<u></u><u></u></span></p></di=
v><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:black">Th=
is attempts to use the API in a similar way to the Nuke exrWriter example (=
my code attached)<u></u><u></u></span></p></div><div><p class=3D"MsoNormal"=
><span style=3D"font-size:12pt;color:black"><u></u>=C2=A0<u></u></span></p>=
</div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:black=
">Conclusions:<u></u><u></u></span></p></div><div><p class=3D"MsoNormal"><s=
pan style=3D"font-size:12pt;color:black"><u></u>=C2=A0<u></u></span></p></d=
iv><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:black">I=
 don&#39;t think ILMBASE_FORCE_CXX03 has a difference in my test.<u></u><u>=
</u></span></p></div><div><p class=3D"MsoNormal"><span style=3D"font-size:1=
2pt;color:black">I find no reliable speed difference between 2.2.1 and 2.3.=
0 where no threadpool is used (so running the attached test using <b>testEX=
R zips none 1 /tmp/test.exr</b>) or the number of threads is close to the n=
umber of CPU cores regardless of compression scheme (e.g. with 4 cores try =
<b>testEXR zips 4 20 /tmp/test.exr</b>) .<u></u><u></u></span></p></div><di=
v><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:black">I <i>di=
d</i> manage to make 2.3.0 go slower than 2.2.1, by running <b>testEXR zips=
 100 10 /tmp/test.exr</b> which means there are 100 threads allocated, but =
only a (random?) 10 of those have anything to do each time, since only 10 s=
canlines are written at once, and those 10 are fighting for (in my case) 4 =
cores. Both 2.2.1 and 2.3.0 run slower with excessive threadpools, but the =
effect is significantly more in 2.3.0.<u></u><u></u></span></p></div><div><=
p class=3D"MsoNormal"><span style=3D"font-size:12pt;color:black"><u></u>=C2=
=A0<u></u></span></p></div><div><p class=3D"MsoNormal"><span style=3D"font-=
size:12pt;color:black">I wonder if somehow Nuke&#39;s other threads are int=
erfering with EXRs threadpool operation in 2.3.0 in a way they aren&#39;t i=
n 2.2.1? It might be interesting to implement a test like the attached as a=
 self-contained method triggered from a button press in a Nuke node, so it =
runs within Nuke&#39;s existing framework but doesn&#39;t use any Nuke func=
tionality at all, and see if there&#39;s a difference between that and runn=
ing the function as a standalone binary outside of Nuke.<u></u><u></u></spa=
n></p></div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color=
:black"><u></u>=C2=A0<u></u></span></p></div><div><p class=3D"MsoNormal"><s=
pan style=3D"font-size:12pt;color:black">I&#39;m intrigued that, according =
to the graph, the compression schemes that write single scanlines at once h=
ave slowed down, and the ones that write many scanlines at once have sped u=
p. Schemes that write multiple scanlines per block have lower overhead thro=
ugh IlmThread. In my case I didn&#39;t see any significant speedups with 2.=
3.0 in any scheme.<u></u><u></u></span></p></div><div><p class=3D"MsoNormal=
"><span style=3D"font-size:12pt;color:black"><u></u>=C2=A0<u></u></span></p=
></div><div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;color=
:black">Peter<u></u><u></u></span></p></div><div><p class=3D"MsoNormal"><sp=
an style=3D"font-size:12pt;color:black"><u></u>=C2=A0<u></u></span></p></di=
v><div class=3D"MsoNormal" style=3D"text-align:center" align=3D"center"><hr=
 width=3D"98%" size=3D"2" align=3D"center"></div><div id=3D"m_1302083766799=
476397gmail-m_-4685168538236640537divRplyFwdMsg"><p class=3D"MsoNormal"><b>=
<span style=3D"color:black">From:</span></b><span style=3D"color:black"> Op=
enexr-devel &lt;openexr-devel-bounces+peterh=3D<a href=3D"mailto:wetafx.co.=
[email protected]" target=3D"_blank">[email protected]</a>&gt; on behalf =
of Nick Porcino &lt;<a href=3D"mailto:[email protected]" target=3D"_blank=
">[email protected]</a>&gt;<br><b>Sent:</b> Wednesday, 3 April 2019 5:05 =
PM<br><b>To:</b> Tony Micilotta; <a href=3D"mailto:[email protected]=
" target=3D"_blank">[email protected]</a><br><b>Subject:</b> Re: [Op=
enexr-devel] OpenExr 2.3 - slower write speeds for Uncompressed and Zip1</s=
pan> <u></u><u></u></p><div><p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>=
</div></div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><div><div><div><=
p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">One=
 of the big differences between 2.2 and 2.3 is that we moved from pthread t=
o std::thread, and made a number of corrections for thread safety.<u></u><u=
></u></p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmson=
ormal">=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-46=
85168538236640537xmsonormal">e.g.<u></u><u></u></p><p class=3D"m_1302083766=
799476397gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p=
 class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal"><a h=
ref=3D"https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1a2ec=
969a9dd12f2497" target=3D"_blank">https://github.com/openexr/openexr/commit=
/eea1e607177e339e05daa1a2ec969a9dd12f2497</a><u></u><u></u></p><p class=3D"=
m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><=
u></u></p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmso=
normal"><a href=3D"https://github.com/openexr/openexr/commit/bf0cb8cdce32fc=
e36017107c9982e1e5db2fb3fa" target=3D"_blank">https://github.com/openexr/op=
enexr/commit/bf0cb8cdce32fce36017107c9982e1e5db2fb3fa</a><u></u><u></u></p>=
<p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=
=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-468516853=
8236640537xmsonormal">The old pthread/windows native implementation can be =
re-enabled by setting the preprocessor define <span class=3D"m_130208376679=
9476397gmail-m_-4685168538236640537xblob-code-inner">ILMBASE_FORCE_CXX03. I=
 am wondering if you might be able to benchmark against that version of the=
 code as an experiment to get more information?</span><u></u><u></u></p><p =
class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=C2=
=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-468516853823=
6640537xmsonormal">=C2=A0<u></u><u></u></p></div><div class=3D"MsoNormal" s=
tyle=3D"text-align:center" align=3D"center"><hr width=3D"98%" size=3D"2" al=
ign=3D"center"></div><div id=3D"m_1302083766799476397gmail-m_-4685168538236=
640537x_divRplyFwdMsg"><p class=3D"MsoNormal"><b><span style=3D"color:black=
">From:</span></b><span style=3D"color:black"> Openexr-devel &lt;openexr-de=
vel-bounces+meshula=3D<a href=3D"mailto:[email protected]" target=3D"_=
blank">[email protected]</a>&gt; on behalf of Tony Micilotta &lt;<a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">tony.micilotta@f=
oundry.com</a>&gt;<br><b>Sent:</b> Monday, April 1, 2019 8:27:29 AM<br><b>T=
o:</b> <a href=3D"mailto:[email protected]" target=3D"_blank">openex=
[email protected]</a><br><b>Subject:</b> [Openexr-devel] OpenExr 2.3 - slo=
wer write speeds for Uncompressed and Zip1</span> <u></u><u></u></p><div><p=
 class=3D"MsoNormal">=C2=A0<u></u><u></u></p></div></div><div><div><p class=
=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">Hi,<u></u>=
<u></u></p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xms=
onormal">=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-=
4685168538236640537xmsonormal">At Foundry we=E2=80=99ve started testing the=
 read performance of OpenExr 2.3 with Boost 1.66 as we move Nuke towards co=
nforming to VFX Reference Platform 2019. Although the release notes don=E2=
=80=99t mention any changes to file writing, we have charted (see graphic b=
elow) OpenExr 2.3 write performance against OpenExr 2.2 as we noticed a slo=
wdown in our playback cache generation which uses OpenExr.<u></u><u></u></p=
><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=
=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-468516853=
8236640537xmsonormal">From Nuke, a checkerboard/colourwheel combination is =
generated and animated over 100 frames in order to eliminate file reading f=
rom the measurements. These 100 frames are written to disk using each compr=
ession type, and the timings are averaged over 10 test runs. Certain compre=
ssion types show an improvement which is great, however we=E2=80=99re conce=
rned that Uncompressed and Zip1 are 13% and 9% slower respectively:<u></u><=
u></u></p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmso=
normal">=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-4=
685168538236640537xmsonormal"><img src=3D"cid:16a2be062814cff311" alt=3D"/v=
ar/folders/40/8tkm41ts6pl0g3qvshsrrnpc0001xc/T/com.microsoft.Outlook/Conten=
t.MSO/515C417.tmp" border=3D"0" style=3D"width:600px;max-width:100%"><u></u=
><u></u></p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xm=
sonormal">=C2=A0<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_=
-4685168538236640537xmsonormal">Have you benchmarked this on your side too,=
 and have you noticed similar metrics?<u></u><u></u></p><p class=3D"m_13020=
83766799476397gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u><=
/p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal"=
>Regards,<u></u><u></u></p><p class=3D"m_1302083766799476397gmail-m_-468516=
8538236640537xmsonormal">Tony<u></u><u></u></p><p class=3D"m_13020837667994=
76397gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p cla=
ss=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=C2=A0<u=
></u><u></u></p><p style=3D"background:white none repeat scroll 0% 0%"><b><=
span style=3D"font-size:9pt;font-family:&quot;Helvetica Neue&quot;;color:rg=
b(136,136,136)"><br>Tony Micilotta</span></b><u></u><u></u></p><p style=3D"=
background:white none repeat scroll 0% 0%;font-variant-ligatures:normal;fon=
t-variant-caps:normal;text-align:start;text-decoration-style:initial;text-d=
ecoration-color:initial;word-spacing:0px"><span style=3D"font-size:9pt;font=
-family:&quot;Helvetica Neue&quot;;color:rgb(136,136,136)">Senior Technical=
 Product Manager - Nuke Family</span><u></u><u></u></p><p style=3D"backgrou=
nd:white none repeat scroll 0% 0%;font-variant-ligatures:normal;font-varian=
t-caps:normal;text-align:start;text-decoration-style:initial;text-decoratio=
n-color:initial;word-spacing:0px"><span style=3D"font-size:9.5pt;font-famil=
y:&quot;Helvetica Neue&quot;;color:rgb(136,136,136)"><img src=3D"cid:16a2be=
062825b16b22" alt=3D"https://lh6.googleusercontent.com/x8JxqXcMjULW_8dLygam=
rZxWcjpFchCVThRNxLrFSEsE_i1aMPBED6FYrUWu6lT54vMN4z1x3D59uPxzh1ughmlVxH5-6yf=
lHx_SZlGAUZV3NA3FatIrHplrrBasCyGa3MhHz8Ti" border=3D"0" style=3D"width:150p=
x;max-width:100%"></span><u></u><u></u></p><p style=3D"background:white non=
e repeat scroll 0% 0%;font-variant-ligatures:normal;font-variant-caps:norma=
l;text-align:start;text-decoration-style:initial;text-decoration-color:init=
ial;word-spacing:0px"><b><span style=3D"font-size:9pt;font-family:&quot;Hel=
vetica Neue&quot;;color:rgb(136,136,136)">Tel</span></b><span style=3D"font=
-size:9pt;font-family:&quot;Helvetica Neue&quot;;color:rgb(136,136,136)">: =
</span><span style=3D"font-size:9pt;font-family:&quot;Helvetica Neue&quot;;=
color:rgb(17,85,204)">+44 (0)20 7479 4350</span><u></u><u></u></p><p style=
=3D"background:white none repeat scroll 0% 0%;font-variant-ligatures:normal=
;font-variant-caps:normal;text-align:start;text-decoration-style:initial;te=
xt-decoration-color:initial;word-spacing:0px"><b><span style=3D"font-size:9=
pt;font-family:&quot;Helvetica Neue&quot;;color:rgb(136,136,136)">Web: </sp=
an></b><span style=3D"font-size:12pt;font-family:&quot;Arial&quot;,sans-ser=
if;color:rgb(34,34,34)"><a href=3D"https://www.foundry.com/" target=3D"_bla=
nk"><span style=3D"font-size:9pt;font-family:&quot;Helvetica Neue&quot;;col=
or:rgb(17,85,204)">www.foundry.com</span></a></span><u></u><u></u></p><p cl=
ass=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal"><span s=
tyle=3D"font-family:&quot;Arial&quot;,sans-serif;color:rgb(34,34,34)"><br><=
/span><span style=3D"font-size:8pt;font-family:&quot;Helvetica Neue&quot;;c=
olor:rgb(153,153,153);background:white none repeat scroll 0% 0%">The Foundr=
y Visionmongers Ltd. =C2=A0- =C2=A0Registered in England and Wales No: 4642=
027 =C2=A0- =C2=A0Address: <a href=3D"https://maps.google.com/?q=3D5+Golden=
+Square,+London,+W1F+9HT&amp;entry=3Dgmail&amp;source=3Dg">5 Golden Square,=
 London, W1F 9HT</a> =C2=A0- =C2=A0VAT No: 672742224</span><u></u><u></u></=
p><p class=3D"m_1302083766799476397gmail-m_-4685168538236640537xmsonormal">=
=C2=A0<u></u><u></u></p></div></div></div></div></div></div></div>
</blockquote></div>
_______________________________________________<br>
Openexr-devel mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Openexr-devel=
@nongnu.org</a><br>
<a href=3D"https://lists.nongnu.org/mailman/listinfo/openexr-devel" rel=3D"=
noreferrer" target=3D"_blank">https://lists.nongnu.org/mailman/listinfo/ope=
nexr-devel</a><br>
</blockquote></div></div>

--00000000000092d0bb05872749f8--
--00000000000092d0bc05872749f9
Content-Type: image/png; name="image001.png"
Content-Disposition: inline; filename="image001.png"
Content-Transfer-Encoding: base64
Content-ID: <16a2be062814cff311>
X-Attachment-Id: 16a2be062814cff311

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
ti1TpXXjcjJs5jb/Rlqd9Ynk7I6vjTUqF5e3RjSRtz87JCNnbZc5Qy6VtNQU+W3f1bmQv5rSXL7f
eUruHfWdvDOqqRQrkiRLV/4oVSqmSPqLm03ZVwZeYtZt+9g3MvvJS+TCtBLSuucqeWPopfLul0fk
f35zgew9fEbuf+6HfDuQgGVjXO/YsUPmzJkj6enpojNZ48aNk8qVK0v9+vWlXbt2NmqiKAIIIBAb
AvoNtCde8sbzheqmlZDRPep59vlCXu3RwIBlZXZH2/HYnbWkY6tKcjozW75Yf1ye+sc2Gd+rgVxz
aTkpkpwkmWezZfLbe8wlOC/M7vja2Pf2mtLlxqpm1urZ13fIsw/WlzZXVJBeEzaadviWd0Y2keqV
i8uWvael1gXFZfq7e+Xl93L/4sqnE66Qr747Lo9N2SxfTGoum/ecki4jv5P3nmkq8/59ULq3rya/
7rUqaLcTsGx8IjRU6dShfpOQBQEEEEgEAa89X0hD1vynGicCvWNttDu7M/Du2vKHay+Qf39z1IQL
XdpfnSr331LdBK2iRZJkUp+Gcuh4lrR/fI0nZncCQ+TyF1vIoWNnpcuIb+WvD9U392Ll/SalznTp
OCpWNEl2HTwjtz65Lpe3ztyN6H6h/OHJdbL70Bl595mmUiIlWc6dy5HVm0/IlY3KyvLvjpt/1WPT
7lPmUmHgQsBybAhTEQIIIBB/Aolw/0789VruFtmd3dHZmiLJIkczsuTHjCyZvGCPCVuBy2cTr5Cd
B87I/z79rSdmdwLH6bhHGkirxj9PhOj9UjkicvVDK3Nt/9/TG0mDGiXl2IlzUq1SiqzbekL+9MwG
f5mZAy6WWlWKy/X9v/G/9sz99WTDjpNSu2oJ+e3lFeTnO7VEftdvtSwc1VRuGbiWgBXvHybahwAC
CDglQMBySjJ69diZ3fn9ryrLkHvryPGT5+TLb4+bIKGzNtf2/uVS2B+urSyDutQx9zi99ekhT8zu
5DdO61UrIa8PuVS27zstdzz1ba4O+HJyc/l41VFz+fu9Mc2kQpmi0vqRX0KYXh78+oefpO/fNp3X
cfq39746LLddd4F8sOKIDJy+VRaNbiodnyBgRW+U884IIIBAjAkQsGKsw/LZXDuzOz3/UEP+dHOa
vLb0gPnmnc7a3NCiogyYtkU+/PpHU7veg7TrUKbcP/aXS2LRnt3Jb5zqzetVKhQzM1M683RFwzLy
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
--00000000000092d0bc05872749f9
Content-Type: image/png; name="image002.png"
Content-Disposition: inline; filename="image002.png"
Content-Transfer-Encoding: base64
Content-ID: <16a2be062825b16b22>
X-Attachment-Id: 16a2be062825b16b22

iVBORw0KGgoAAAANSUhEUgAAAJYAAAAZCAYAAADT59fvAAAACXBIWXMAAAsSAAALEgHS3X78AAAF
O0lEQVRo3u1b0ZHiOBB9QvsPGUAGQwb4g19qfRHgjWC8EawngvVEsEwE6y1+qRpPBhDBmgjWBODS
fVyz5+tpW7KRYeuKrvKPLctq6an7vUYoYwzudjff9uEaH1FKTwDMa7cKY6riPv3/X1PAKAIQ9XnZ
mCqwgCkGEAJ4EJqcAGQAEhvIlNIpA+bemCru+M7GmGpTe879zo2pEkufObsVG1PtW77ZZHv6Xuaw
KbusTwkgJ19L1s8GwKze1pgqtHx7BmDDbmfGVKnDWEYJMDJ9LmMMpAsYxcCo7NBXCowmLf3lrH3e
1LblnYQ9l/wOLH22the+absKYBRZvtlnfUrB31BoF3ecw7JtnerXaIC0twHwFcC4w2uPAHKKcre0
zZXHMAXwjebMp40BfKn3S9HxB2uXUFSS1jEEsBAidOkygNEAoFr3fP3hDwDXFEByg++uBwDXud96
uouIgtQBmDbQGD6etzqV6EPeX4ROXUAVNoDqDUBa5xNK6Tnxr7UAroSe3coeldKZMVXuoa/PxKfq
duaeCwEEewf+cmiZnxjAR+FeRlGrVEonlFHO9lEpHTK+l7CMc+rBw9/l8MQlhwr5uOiRw4MGLhbc
iGPVuc/EA8cKWsYXNXCjiWWcucXvzMaFhXH+9pfWxFyKCS+pkJTLlN1+su0+igqSsoxwWxs8JVJa
+Sxwo0t9l1JbYJnfur/8/YNNLQ/JsbhsPboOhuT6C08LNwDTSUiJwcDgSgEc2e1gaEepvPMk+JsK
paFeQJc4VkB5uFU9sdpTYNs1Fks4mJTSgSee46wIaYNMmUqcuyqhnpaRKvYFrLAhM/B7CfHiB6bO
6/Zcr9NdCqyFQCy55QAKFsL58047SCl96lii8G0l7c5XIUUMKSb2QjrsQ0cmNP5Hgeyjhey/Njw7
XkIHRkPMVE+U73Fjo539fOWUWHRsv1BKG34B+MXUnjV7NPj7OwXaInW1Xc6q7TKotsvZVYDVcyHm
+DMsEXjPkIXTIet2Lw61J8nfH200pNouw2q7LAD8pIj3s9ou82q7DNpS4ZtDKisE4jtmIMk7AHF2
4zRY38UlqdzXK6nEoTbUk4uAIn8Lxi33LaBKhXR7plCv1Xb5Sa92GwlYeQ95mbPCXNyRwPPvnTwQ
98UF4MqV0s9sAh8HAkAkbGybeuULP2PAOPYpEdiMIpJtHtJqu8x8pUL+K/2UpKtr2lxb+iu67PKG
37+6chkpRfimDDHe1/9sJx72xlRB/RKU4NRB2fvYBJKNAURegEV5/CiQ3sQysWHDRCYWlTmmdNWm
di4SB0RcowFBFTak16zH/Eu1wHgAXjhz5Y0+ybu0mF+U0oVSOqo7qZQOldIZgO8Ct3oWzmdJk51K
4CIw83B97KNULarJiT8ppQN2hfSDs+T70wUHIBMhcqS4jU28nSA1psoEXnImvt/wz/EQWzcH6QAf
EUze95j6TGvRaN4gAi5JCwlFrj7i4muHtodLeBHVAl8YrVgrpROPp3VdC8WF13IDgaLvDj+gveqc
QC72jfFvUXfcU3LfLCU6+t5lE/CfpjYex+kSAU8ANt7rWASuvwQHbdK49acTehagvZIsgSry4JN0
SM6HnVx87xK1hMVf+Crw6tUuF7jcO0qkV7vyA6mltwvUU1NanJFaiRqk/5G4U+oaqmny58StYshn
6UEgSC0li65+RwLXK3sKhIIESeYAKD7OvUNUCYSxt83F3lVB69UuouJozDLEkUCVAYC61t+/6HDf
pEaKffUbCIT7blewWqW91Kvdf8Cp7v8rvNsQ9jcdsVe3hljoOQAAAABJRU5ErkJgggA=
--00000000000092d0bc05872749f9--


--===============0226401540401592372==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Openexr-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/openexr-devel

--===============0226401540401592372==--