t005-energy-efficient-programming.html - adamsgaard.dk - my academic webpage
 (HTM) git clone git://src.adamsgaard.dk/adamsgaard.dk
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       t005-energy-efficient-programming.html (4119B)
       ---
            1 <p>I presented my thougts on scientific software development during
            2 <a href="gopher://bitreich.org/1/con/2020">brcon 2020</a>.  Full
            3 abstract:</p>
            4 
            5 <blockquote>Numerical models are used extensively for simulating
            6 complex physical systems including fluid flows, astronomical events,
            7 weather, and climate.  Many researchers struggle to bring their
            8 model developments from single-computer, interpreted languages to
            9 parallel high-performance computing (HPC) systems.  There are
           10 initiatives to make interpreted languages such as MATLAB, Python,
           11 and Julia feasible for HPC programming.  In this talk I argue that
           12 the computational overhead is far costlier than any potential
           13 development time saved.  Instead, doing model development in C and
           14 unix tools from the start minimizes porting headaches between
           15 platforms, reduces energy use on all systems, and ensures reproducibility
           16 of results.</blockquote>
           17 
           18 <p>You can check out the slides and audio here:</p>
           19 
           20 <ul>
           21 <li><a href="https://adamsgaard.dk/pub/energy-efficient-programming.md">slides (markdown)</a></li>
           22 <li><a href="https://adamsgaard.dk/pub/brcon2020-energy-efficient-programming-in-science-talk.ogg">audio (ogg)</a></li>
           23 </ul>
           24 
           25 <p>Alternatively, you can watch slides+audio in this video:</p>
           26 <center>
           27         <video poster="video/brcon2020-energy-efficient-programming-in-science-talk.jpg"
           28                 controls preload="none" class="mediaframe">
           29                 <source src="video/brcon2020-energy-efficient-programming-in-science-talk.webm" type="video/webm">
           30                 <source src="video/brcon2020-energy-efficient-programming-in-science-talk.ogv" type="video/ogg">
           31                 <source src="video/brcon2020-energy-efficient-programming-in-science-talk.mp4" type="video/mp4">
           32                 <a href="video/brcon2020-energy-efficient-programming-in-science-talk.mp4">Link</a>
           33         </video>
           34 </center>
           35 
           36 <p>
           37 The full conference
           38 schedule and presentation recordings are available <a
           39 href="gopher://bitreich.org/1/con/2020">here</a>.
           40 
           41 <p>Brcon is the annual meeting of <a
           42 href="gopher://bitreich.org">bitreich</a>, an initiative to promote
           43 minimal and perfect programming and system design practice.  In a
           44 nutshell, the philosophy favors simple and well-designed solutions
           45 (e.g. C, POSIX, Unix) over convoluted and hyped software-development
           46 tools (cloud deployment, docker, systemd, autotools, and so on).
           47 The bitreich information site uses the WWW-precursor protocol <a
           48 href="https://en.wikipedia.org/wiki/Gopher_(protocol)">gopher</a>,
           49 demonstrating that information transfer can occur without the ugly
           50 mess of the modern web that is html, javascript, cookies, and
           51 trackers.  The conference was held virtually, but the minimal and
           52 open standards used for conference participation is a perfect example
           53 of the bitreich philosophy.</p>
           54 
           55 <p>The presentations were displayed by <a
           56 href="gopher://bitreich.org/1/scm/catpoint">catpoint(1)</a> which
           57 takes text files and shows the content as slides in the terminal.
           58 The audio stream was publically broadcast via <a
           59 href="https://icecast.org">icecast</a>.  Each presenter would stream
           60 their mic to the icecast server, for example via <a
           61 href="https://ffmpeg.org/">ffmpeg(1)</a>:</p>
           62 
           63 <pre><code>ffmpeg -loglevel debug -f sndio -ac 2 -ar 44100 -i snd/0 \
           64     -codec libmp3lame -f mp3 \
           65     icecast://source:${pass}@bitreich.org:3232/live
           66 </code></pre>
           67 
           68 <p>The listeners would point a network audio client to this URL and
           69 hear the speaker in real time.  For the slides, the viewers connected
           70 via ssh(1) to a public guest account, automatically attached to a
           71 multiplexed terminal session controlled by the presenter, and watched
           72 the presentation in their own terminal with minimal bandwith
           73 requirements.  Questions were communicated via irc.</p>
           74 
           75 <p>The source code for my presentation is available <a
           76 href="https://src.adamsgaard.dk/brcon2020_adc/log.html">here</a>.
           77 The <a href="gopher://bitreich.org/1/scm/pointtools">pointtools</a>
           78 utility md2point(1) is useful for generating catpoint presentations,
           79 as it reads presentations in markdown format, does some light
           80 styling, and outputs catpoint-compatible text files.</p>
           81 
           82 <p>It doesn't get more minimal, efficient, and perfect than that!</p>