<div dir="ltr"><div dir="ltr"><div>Also interesting to me is mixed precision arithmetic - which Julia makes easy.</div><div>We are going to see more and more codes which will choose lower precision to save energy, not just for running Deep Learning modesl on GPUs.</div><div><br></div><div>I share a code snippet not written by me. I think it is a brilliant idea.</div><div>Here a researcher in ocean modelling is able to change the types of numbers his model uses. Run with lower precision and see what changes.</div><div>I guess this is easy in C/C++ also, but the concept is fantastic.</div><div><br></div><div><table class="gmail-highlight gmail-tab-size gmail-js-file-line-container" style="text-align:left;color:rgb(36,41,46);text-transform:none;text-indent:0px;letter-spacing:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal;border-collapse:collapse;box-sizing:border-box;border-spacing:0px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC1" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box">#</span> NUMBER FORMAT OPTIONS</span></td>
</tr>
<tr style="box-sizing:border-box">
<td class="gmail-blob-num gmail-js-line-number" id="gmail-L2" style="padding:0px 10px;width:1%;text-align:right;color:rgba(27,31,35,0.3);line-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:nowrap;min-width:50px;box-sizing:border-box"></td>
<td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC2" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-k" style="color:rgb(215,58,73);box-sizing:border-box">const</span> Numtype <span class="gmail-pl-k" style="color:rgb(215,58,73);box-sizing:border-box">=</span> Float32</td>
</tr>
<tr style="box-sizing:border-box">
<td class="gmail-blob-num gmail-js-line-number" id="gmail-L3" style="padding:0px 10px;width:1%;text-align:right;color:rgba(27,31,35,0.3);line-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:nowrap;min-width:50px;box-sizing:border-box"></td>
<td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC3" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box">#</span>const Numtype = Posit{16,2}</span></td>
</tr>
<tr style="box-sizing:border-box">
<td class="gmail-blob-num gmail-js-line-number" id="gmail-L4" style="padding:0px 10px;width:1%;text-align:right;color:rgba(27,31,35,0.3);line-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:nowrap;min-width:50px;box-sizing:border-box"></td>
<td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC4" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box">#</span>const Numtype = Main.FiniteFloats.Finite16</span></td>
</tr>
<tr style="box-sizing:border-box">
<td class="gmail-blob-num gmail-js-line-number" id="gmail-L5" style="padding:0px 10px;width:1%;text-align:right;color:rgba(27,31,35,0.3);line-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:nowrap;min-width:50px;box-sizing:border-box"></td>
<td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC5" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box">#</span>const Numtype = BigFloat</span></td>
</tr>
<tr style="box-sizing:border-box">
<td class="gmail-blob-num gmail-js-line-number" id="gmail-L6" style="padding:0px 10px;width:1%;text-align:right;color:rgba(27,31,35,0.3);line-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:nowrap;min-width:50px;box-sizing:border-box"></td>
<td class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" id="gmail-LC6" style="padding:0px 10px;color:rgb(36,41,46);line-height:20px;overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box"><span class="gmail-pl-c" style="color:rgb(106,115,125);box-sizing:border-box">#</span>setprecision(7)</span></td></tr></tbody></table><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><div><br></div><div>Using Julias tyoe system you can change the type of the numbers.</div><div>Here the calculation is run as NumType - and you can make NumType to be 32 bit floats or arbitrarily large floats</div><div>I see Float64 is not listed - that should be there.</div><div><br></div><div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div class="gmail_attr" dir="ltr">On Sun, 10 Mar 2019 at 10:57, John Hearns <<a href="mailto:hearnsj@googlemail.com">hearnsj@googlemail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"><div dir="ltr"><div>Jonathan, damn good question.</div><div>There is a lot of debate at the moment on how 'traditional' HPC can co-exist with 'big data' style HPC.</div><div><br></div><div>Regarding Julia, I am a big fan of it and it bring a task-level paradigm to HPC work.</div><div>To be honest though, traditional Fortran codes will be with us forever. No-one is going to refactor say a weather forecasting model in a national centre.</div><div>Also Python has the mindset at the moment. I have seen people in my company enthusiastically taking up Python.</div><div>Not because of a measured choice after scanning dozens of learned papers and Reddit reviews etc.</div><div>If that was the case then they might opt for Go or some niche language.</div><div>No, the choice is made because their colleagues already use Python and pass on start up codes, and there is a huge Python community.</div><div><br></div><div>Same with traditional HPC codes really - we all know that batch scripts are passed on through the generations like Holy Books,</div><div>and most scientists dont have a clue what these scratches on clay tablets actually DO.</div><div>Leading people to continue to run batch jobs which are hard wired for 12 cores on a 20 core machine etc. etc.</div><div><br></div><div>(*) this is worthy of debate. In Formula 1 whenever we updated the version of our CFD code we re-ran a known simulation and made sure we still had correlation.</div><div>It is inevitable that old versions of codes will sop being supported</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div class="gmail_attr" dir="ltr">On Sun, 10 Mar 2019 at 09:29, Jonathan Aquilina <<a href="mailto:jaquilina@eagleeyet.net" target="_blank">jaquilina@eagleeyet.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">Hi All,<br>
<br>
Basically I have sat down with my colleague and we have opted to go down the route of Julia with JuliaDB for this project. But here is an interesting thought that I have been pondering if Julia is an up and coming fast language to work with for large amounts of data how will that affect HPC and the way it is currently used and HPC systems created?<br>
<br>
Regards,<br>
Jonathan<br>
<br>
-----Original Message-----<br>
From: Beowulf <<a href="mailto:beowulf-bounces@beowulf.org" target="_blank">beowulf-bounces@beowulf.org</a>> On Behalf Of Michael Di Domenico<br>
Sent: 04 March 2019 17:39<br>
Cc: Beowulf Mailing List <<a href="mailto:beowulf@beowulf.org" target="_blank">beowulf@beowulf.org</a>><br>
Subject: Re: [Beowulf] Large amounts of data to store and process<br>
<br>
On Mon, Mar 4, 2019 at 8:18 AM Jonathan Aquilina <<a href="mailto:jaquilina@eagleeyet.net" target="_blank">jaquilina@eagleeyet.net</a>> wrote:<br>
><br>
> As previously mentioned we don’t really need to have anything indexed so I am thinking flat files are the way to go my only concern is the performance of large flat files.<br>
<br>
potentially, there are many factors in the work flow that ultimately influence the decision as others have pointed out. my flat file example is only one, where we just repeatable blow through the files.<br>
<br>
> Isnt that what HDFS is for to deal with large flat files.<br>
<br>
large is relative. 256GB file isn't "large" anymore. i've pushed TB files through hadoop and run the terabyte sort benchmark, and yes it can be done in minutes (time-scale), but you need an astounding amount of hardware to do it (the last benchmark paper i saw, it was something<br>
1000 nodes). you can accomplish the same feat using less and less complicated hardware/software<br>
<br>
and if your dev's are willing to adapt to the hadoop ecosystem, you sunk right off the dock.<br>
<br>
to get a more targeted answer from the numerous smart people on the list, you'd need to open up the app and workflow to us. there's just too many variables _______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank" rel="noreferrer">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank" rel="noreferrer">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
</blockquote></div>
</blockquote></div>