Closed mhagdorn closed 3 weeks ago
Adapting to technological changes is part of lifelong learning for RSEs. For example in 2000, the Pentium IV processor hit the "CPU power wall": since power consumption scales with the square of the frequency, designing a new chip with a higher clock frequency meant designing a more complex cooling system that was unsuitable for most consumers. The more sustainable alternative was to design multi-core processors that ran at half or a third of the clock frequency. This required software engineers to redesign their software using MPI and/or OpenMP, and thus learn a completely new programming model. See for example slides 12-15 in Tim Mattson A “Hands-on” Introduction to OpenMP, 2013 Intel Corporation.
Nowadays, designing computationally demanding applications requires specialist knowledge of computer architecture to avoid common pitfalls, such as CPUs whose clock frequency is dynamically throttled when the workload is high (to reduce power consumption and thus power dissipation, at the expense of a slower application), high latency in shared memory read/write operations (data structures like C++ std::vector
aren't yet aware of first-touch policy), slow operations on data structures that are not aligned for architecture-specific vectorized data types (SIMD), etc.
For more on Green HPC, see e.g. Scott Hemmert, “Green HPC: From Nice to Necessity”, Computing in Science & Engineering, Nov.-Dec. 2010, pp. 8-10, vol. 12, doi:10.1109/MCSE.2010.134.
add sentence to to "task and responsibilities"
we did have already a bit on green computing in the tasks and responsibilities section. I added reference to how you might go about computing energy usage of computations from GREENER project
the latest Code for Thought episode contains a very interesting interview on the GREENER principles. This looks like an excellent starting point for exploring environmentally sustainable research computing. Added sentence and link to paper.