Re: OpenExr 2.3 - slower write speeds for Uncompressed and Zip1
Gyula Gubacsi <[email protected]> Wed, 17 Apr 2019 16:29:59 +0100
| Newsgroups | gmane.comp.video.openexr.devel |
|---|---|
| Message-ID | <CAD+5PA3G1qYfNWLZgxhztvt0Cqd=sXuS8HM-qAqO-NDV-GyPig@mail.gmail.com> |
--===============3438336556359986673== Content-Type: multipart/related; boundary="000000000000bdf6dd0586bb8fe5" --000000000000bdf6dd0586bb8fe5 Content-Type: multipart/alternative; boundary="000000000000bdf6dc0586bb8fe4" --000000000000bdf6dc0586bb8fe4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, 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'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 with 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 newer compilers, but of course it's never a linear path. There was some slowdown 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 DWA performance when switching gcc 4.1.x to 4.8, which confirms our finding as well. Any experience with different compilers? The copyFromFrameBuffer function 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 I= LMBASE_FORCE_CXX03 > defined, 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. > > > > 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 *testEXR > 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 onl= y > 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 threadpools= , > 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 scanline= s > 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 safet= y. > > > > e.g. > > > > > https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1a2ec969a9= dd12f2497 > > > > > https://github.com/openexr/openexr/commit/bf0cb8cdce32fce36017107c9982e1e= 5db2fb3fa > > > > The old pthread/windows native implementation can be re-enabled by settin= g > 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 fil= e writing, > we have charted (see graphic below) OpenExr 2.3 write performance against > OpenExr 2.2 as we noticed a slowdown in our playback cache generation whi= ch > 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 compression > type, and the timings are averaged over 10 test runs. Certain compression > types show an improvement which is great, however we=E2=80=99re concerned= that > Uncompressed and Zip1 are 13% and 9% slower respectively: > > > > [image: > /var/folders/40/8tkm41ts6pl0g3qvshsrrnpc0001xc/T/com.microsoft.Outlook/Co= ntent.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_8dLygamrZxWcjpFchCVThRNxLr= FSEsE_i1aMPBED6FYrUWu6lT54vMN4z1x3D59uPxzh1ughmlVxH5-6yflHx_SZlGAUZV3NA3Fat= IrHplrrBasCyGa3MhHz8Ti] > > *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 - VAT No: 6727422= 24 > > > --000000000000bdf6dc0586bb8fe4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <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 clo= ser. I've eliminated a few differences before I got something that migh= t be the cause of the problem.</div><div><br></div><div>So, our OpenEXR bui= ld, 2.2.0 was 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 G= CC 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 t= o 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 inv= estigated with VTune, I found that the function that rises the most signifi= cantly in execution time, is Imf2_X::copyFromFrameBuffer(). This is true=C2= =A0 for both 2.3.0 and 2.2.0. So it seems that the slowdown. We would norma= lly expect speed ups=C2=A0 with newer compilers, but of course it's nev= er a linear path. There was=C2=A0 some slowdown also in the rleCompress fun= ction, but with generally less impact (at the moment I'm focusing on RL= E compression as in our experience this suffered the most significant slowd= own, but now I suspect it might as well be a relative portion of slowdown t= hat made this compression type slower). I also read on some threads that pe= ople experienced 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>An= y experience with different compilers?=C2=A0 The copyFromFrameBuffer functi= on seems to be very complex and it might have been an overly optimistic opt= imisation back in 4.1.2 that might have been removed since.<br></div></div>= <br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu= , 4 Apr 2019 at 13:22, Tony Micilotta <<a href=3D"mailto:tony.micilotta@= foundry.com">[email protected]</a>> wrote:<br></div><blockquote= class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so= lid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-GB"><div class=3D"gm= ail-m_-4685168538236640537WordSection1"><p class=3D"MsoNormal">Hi Peter and= Nick,<u></u><u></u></p><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><p c= lass=3D"MsoNormal">Thank you for the suggestions and performance findings. = We rebuilt with <span class=3D"gmail-m_-4685168538236640537xblob-code-inner= ">ILMBASE_FORCE_CXX03 defined, however the write speed changes remain uncha= nged . 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 cla= ss=3D"gmail-m_-4685168538236640537xblob-code-inner"><u></u>=C2=A0<u></u></s= pan></p><p class=3D"MsoNormal"><span class=3D"gmail-m_-4685168538236640537x= blob-code-inner">Regards,<u></u><u></u></span></p><p class=3D"MsoNormal"><s= pan class=3D"gmail-m_-4685168538236640537xblob-code-inner">Tony<u></u><u></= u></span></p><p class=3D"MsoNormal"><span class=3D"gmail-m_-468516853823664= 0537xblob-code-inner"> </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) currentcolo= r currentcolor;border-style:solid none none;border-width:1pt medium medium;= padding:3pt 0cm 0cm"><p class=3D"MsoNormal"><b><span style=3D"font-size:12p= t;color:black">From: </span></b><span style=3D"font-size:12pt;color:black">= Peter Hillman <<a href=3D"mailto:[email protected]" target=3D"_blank">= [email protected]</a>><br><b>Date: </b>Wednesday, 3 April 2019 at 07:3= 0<br><b>To: </b>Nick Porcino <<a href=3D"mailto:[email protected]" tar= get=3D"_blank">[email protected]</a>>, Tony Micilotta <<a href=3D"m= ailto:[email protected]" target=3D"_blank">tony.micilotta@foundry.= com</a>>, "<a href=3D"mailto:[email protected]" target=3D"_b= lank">[email protected]</a>" <<a href=3D"mailto:openexr-deve= [email protected]" target=3D"_blank">[email protected]</a>><br><b>Subj= ect: </b>Re: [Openexr-devel] OpenExr 2.3 - slower write speeds for Uncompre= ssed 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've just been running tests myself along the sa= me lines. <u></u><u></u></span></p></div><div><p class=3D"MsoNormal"><span = style=3D"font-size:12pt;color:black">I tried comparing writing various sche= mes with EXR-2.2.1, EXR-2.3.0 and EXR-2.3.0 using an IlmBase build with ILM= BASE_FORCE_CXX03 (passing --enable-stdcxx=3D03 to ./configure)<u></u><u></u= ></span></p></div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt= ;color:black">This attempts to use the API in a similar way to the Nuke exr= Writer example (my code attached)<u></u><u></u></span></p></div><div><p cla= ss=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"><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:12= pt;color:black">I don't think ILMBASE_FORCE_CXX03 has a difference in m= y test.<u></u><u></u></span></p></div><div><p class=3D"MsoNormal"><span sty= le=3D"font-size:12pt;color:black">I find no reliable speed difference betwe= en 2.2.1 and 2.3.0 where no threadpool is used (so running the attached tes= t using <b>testEXR zips none 1 /tmp/test.exr</b>) or the number of threads = is close to the number 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></s= pan></p></div><div><p class=3D"MsoNormal"><span style=3D"font-size:12pt;col= or:black">I <i>did</i> manage to make 2.3.0 go slower than 2.2.1, by runnin= g <b>testEXR zips 100 10 /tmp/test.exr</b> which means there are 100 thread= s allocated, but only a (random?) 10 of those have anything to do each time= , since only 10 scanlines are written at once, and those 10 are fighting fo= r (in my case) 4 cores. Both 2.2.1 and 2.3.0 run slower with excessive thre= adpools, 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"><sp= an style=3D"font-size:12pt;color:black">I wonder if somehow Nuke's othe= r 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 betw= een that and running the function as a standalone binary outside of Nuke.<u= ></u><u></u></span></p></div><div><p class=3D"MsoNormal"><span style=3D"fon= t-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'm intrigued= that, according to the graph, the compression schemes that write single sc= anlines at once have slowed down, and the ones that write many scanlines at= once have sped up. Schemes that write multiple scanlines per block have lo= wer overhead through IlmThread. In my case I didn't see any significant= speedups with 2.3.0 in any scheme.<u></u><u></u></span></p></div><div><p c= lass=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"fon= t-size:12pt;color:black">Peter<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 class=3D"MsoNormal" style=3D"text-align:center" al= ign=3D"center"><hr width=3D"98%" size=3D"2" align=3D"center"></div><div id= =3D"gmail-m_-4685168538236640537divRplyFwdMsg"><p class=3D"MsoNormal"><b><s= pan style=3D"color:black">From:</span></b><span style=3D"color:black"> Open= exr-devel <openexr-devel-bounces+peterh=3D<a href=3D"mailto:wetafx.co.nz= @nongnu.org" target=3D"_blank">[email protected]</a>> on behalf of= Nick Porcino <<a href=3D"mailto:[email protected]" target=3D"_blank">= [email protected]</a>><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: [Open= exr-devel] OpenExr 2.3 - slower write speeds for Uncompressed and Zip1</spa= n> <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"gmail-m_-4685168538236640537xmsonormal">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 safety.<u></u><u></u></p><p class=3D"gm= ail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p class=3D"g= mail-m_-4685168538236640537xmsonormal">e.g.<u></u><u></u></p><p class=3D"gm= ail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p class=3D"g= mail-m_-4685168538236640537xmsonormal"><a href=3D"https://github.com/openex= r/openexr/commit/eea1e607177e339e05daa1a2ec969a9dd12f2497" target=3D"_blank= ">https://github.com/openexr/openexr/commit/eea1e607177e339e05daa1a2ec969a9= dd12f2497</a><u></u><u></u></p><p class=3D"gmail-m_-4685168538236640537xmso= normal">=C2=A0<u></u><u></u></p><p class=3D"gmail-m_-4685168538236640537xms= onormal"><a href=3D"https://github.com/openexr/openexr/commit/bf0cb8cdce32f= ce36017107c9982e1e5db2fb3fa" target=3D"_blank">https://github.com/openexr/o= penexr/commit/bf0cb8cdce32fce36017107c9982e1e5db2fb3fa</a><u></u><u></u></p= ><p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></= p><p class=3D"gmail-m_-4685168538236640537xmsonormal">The old pthread/windo= ws native implementation can be re-enabled by setting the preprocessor defi= ne <span class=3D"gmail-m_-4685168538236640537xblob-code-inner">ILMBASE_FOR= CE_CXX03. I am wondering if you might be able to benchmark against that ver= sion of the code as an experiment to get more information?</span><u></u><u>= </u></p><p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u= ></u></p><p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><= u></u></p></div><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"= gmail-m_-4685168538236640537x_divRplyFwdMsg"><p class=3D"MsoNormal"><b><spa= n style=3D"color:black">From:</span></b><span style=3D"color:black"> Openex= r-devel <openexr-devel-bounces+meshula=3D<a href=3D"mailto:hotmail.com@n= ongnu.org" target=3D"_blank">[email protected]</a>> on behalf of To= ny Micilotta <<a href=3D"mailto:[email protected]" target=3D"_b= lank">[email protected]</a>><br><b>Sent:</b> Monday, April 1, 2= 019 8:27:29 AM<br><b>To:</b> <a href=3D"mailto:[email protected]" ta= rget=3D"_blank">[email protected]</a><br><b>Subject:</b> [Openexr-de= vel] OpenExr 2.3 - slower 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"gmail-m_-4685168538236640537xmsonormal">Hi,<u></u= ><u></u></p><p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></= u><u></u></p><p class=3D"gmail-m_-4685168538236640537xmsonormal">At Foundry= we=E2=80=99ve started testing the read performance of OpenExr 2.3 with Boo= st 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 file writin= g, 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 whi= ch uses OpenExr.<u></u><u></u></p><p class=3D"gmail-m_-4685168538236640537x= msonormal">=C2=A0<u></u><u></u></p><p class=3D"gmail-m_-4685168538236640537= xmsonormal">From Nuke, a checkerboard/colourwheel combination is generated = and animated over 100 frames in order to eliminate file reading from the me= asurements. These 100 frames are written to disk using each compression typ= e, and the timings are averaged over 10 test runs. Certain compression type= s show an improvement which is great, however we=E2=80=99re concerned that = Uncompressed and Zip1 are 13% and 9% slower respectively:<u></u><u></u></p>= <p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p= ><p class=3D"gmail-m_-4685168538236640537xmsonormal"><img style=3D"width: 6= .2291in; height: 3.8541in;" id=3D"gmail-m_-4685168538236640537x_Picture_x00= 20_1" src=3D"cid:16a2be062814cff311" alt=3D"/var/folders/40/8tkm41ts6pl0g3q= vshsrrnpc0001xc/T/com.microsoft.Outlook/Content.MSO/515C417.tmp" width=3D"5= 98" height=3D"370" border=3D"0"><u></u><u></u></p><p class=3D"gmail-m_-4685= 168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p class=3D"gmail-m_-468= 5168538236640537xmsonormal">Have you benchmarked this on your side too, and= have you noticed similar metrics?<u></u><u></u></p><p class=3D"gmail-m_-46= 85168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p class=3D"gmail-m_-4= 685168538236640537xmsonormal">Regards,<u></u><u></u></p><p class=3D"gmail-m= _-4685168538236640537xmsonormal">Tony<u></u><u></u></p><p class=3D"gmail-m_= -4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p class=3D"gmail-m= _-4685168538236640537xmsonormal">=C2=A0<u></u><u></u></p><p style=3D"backgr= ound:white none repeat scroll 0% 0%"><b><span style=3D"font-size:9pt;font-f= amily:"Helvetica Neue";color:rgb(136,136,136)"><br>Tony Micilotta= </span></b><u></u><u></u></p><p style=3D"background:white none repeat scrol= l 0% 0%;font-variant-ligatures:normal;font-variant-caps:normal;text-align:s= tart;text-decoration-style:initial;text-decoration-color:initial;word-spaci= ng:0px"><span style=3D"font-size:9pt;font-family:"Helvetica Neue"= ;color:rgb(136,136,136)">Senior Technical Product Manager - Nuke Family</sp= an><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;tex= t-decoration-style:initial;text-decoration-color:initial;word-spacing:0px">= <span style=3D"font-size:9.5pt;font-family:"Helvetica Neue";color= :rgb(136,136,136)"><img style=3D"width: 1.5625in; height: 0.2604in;" id=3D"= gmail-m_-4685168538236640537x_Picture_x0020_3" src=3D"cid:16a2be062825b16b2= 2" alt=3D"https://lh6.googleusercontent.com/x8JxqXcMjULW_8dLygamrZxWcjpFchC= VThRNxLrFSEsE_i1aMPBED6FYrUWu6lT54vMN4z1x3D59uPxzh1ughmlVxH5-6yflHx_SZlGAUZ= V3NA3FatIrHplrrBasCyGa3MhHz8Ti" width=3D"150" height=3D"25" border=3D"0"></= 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;t= ext-decoration-style:initial;text-decoration-color:initial;word-spacing:0px= "><b><span style=3D"font-size:9pt;font-family:"Helvetica Neue";co= lor:rgb(136,136,136)">Tel</span></b><span style=3D"font-size:9pt;font-famil= y:"Helvetica Neue";color:rgb(136,136,136)">: </span><span style= =3D"font-size:9pt;font-family:"Helvetica Neue";color:rgb(17,85,20= 4)">+44 (0)20 7479 4350</span><u></u><u></u></p><p style=3D"background:whit= e none repeat scroll 0% 0%;font-variant-ligatures:normal;font-variant-caps:= normal;text-align:start;text-decoration-style:initial;text-decoration-color= :initial;word-spacing:0px"><b><span style=3D"font-size:9pt;font-family:&quo= t;Helvetica Neue";color:rgb(136,136,136)">Web: </span></b><span style= =3D"font-size:12pt;font-family:"Arial",sans-serif;color:rgb(34,34= ,34)"><a href=3D"https://www.foundry.com/" target=3D"_blank"><span style=3D= "font-size:9pt;font-family:"Helvetica Neue";color:rgb(17,85,204)"= >www.foundry.com</span></a></span><u></u><u></u></p><p class=3D"gmail-m_-46= 85168538236640537xmsonormal"><span style=3D"font-family:"Arial",s= ans-serif;color:rgb(34,34,34)"><br></span><span style=3D"font-size:8pt;font= -family:"Helvetica Neue";color:rgb(153,153,153);background:white = none repeat scroll 0% 0%">The Foundry Visionmongers Ltd. =C2=A0- =C2=A0Regi= stered in England and Wales No: 4642027 =C2=A0- =C2=A0Address: 5 Golden Squ= are, London, W1F 9HT =C2=A0- =C2=A0VAT No: 672742224</span><u></u><u></u></= p><p class=3D"gmail-m_-4685168538236640537xmsonormal">=C2=A0<u></u><u></u><= /p></div></div></div></div></div></div></div> </blockquote></div> --000000000000bdf6dc0586bb8fe4-- --000000000000bdf6dd0586bb8fe5 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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 --000000000000bdf6dd0586bb8fe5 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= --000000000000bdf6dd0586bb8fe5-- --===============3438336556359986673== 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 --===============3438336556359986673==--