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