005-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