<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 6, 2015 at 1:15 AM, Francois BERENGER <span dir="ltr"><<a href="mailto:francois.berenger.fun@gmail.com" target="_blank">francois.berenger.fun@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>Dear list,<br><br></div>While programming an open source distributed system, I discovered<br></div>it could be interesting for the system to use a well established algorithm<br></div>that can do these two things at the same time (for performance reasons).<br></div></div></div></div></div></div></div></div></div></blockquote><div><br></div><div>With multi core processors piping the output of a compressor</div><div>in to an encryption tool (unix style) would get two cores active. </div><div>This would solve much of the performance issues.   </div><div>Attempting to write a single secure pile of code to do it all would </div><div>be difficult to get correct.  </div><div><br></div><div>On modern windows systems there is commonly enough RAM for buffering</div><div>the output of one stage writing to a temp  file. If so this buffering has little impact </div><div>even on a single core machine.  IPC via local shared memory pipes or via physically </div><div>secure network links could also prove valuable tricks to improve performance while keeping</div><div>the individual code bases almost untouched. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>I was thinking about something along those lines:<br><br></div></div>compression(clear_text) = (compression_dictionary, compressed_text)</div></div></div></div></div></div></blockquote><div> </div><div>Compression dictionaries for some specific content will take you back</div><div>to the old time dictionaries <a href="http://en.wikipedia.org/wiki/Commercial_code_%28communications%29">http://en.wikipedia.org/wiki/Commercial_code_%28communications%29</a></div><div>Some of these dictionaries were guarded as company secrets i.e. a code book.</div><div>Computing a file by file dictionary based compression could be partitioned </div><div>for parallel computation and might have enough speedup to have value.</div><div><br></div><div>Some compilers have flags that disclose optimization wins and losses.</div><div>Some of these hints can be used to improve the code base in ways</div><div>that the compiler can optimize things.</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">  T o m    M i t c h e l l</div></div>
</div></div>