t005-energy-efficient-programming.txt - adamsgaard.dk - my academic webpage | |
git clone git://src.adamsgaard.dk/adamsgaard.dk | |
Log | |
Files | |
Refs | |
README | |
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-… | |
68 [4] gopher://adamsgaard.dk/9/video/brcon2020-energy-efficient-programmin… | |
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 |