It doesn't make a whole lot of sense to talk about the energy efficiencyof a programming language.�� For example, I've seen the run time of aC benchmark go from 50 seconds to 1 microsecond when the optimisationlevel was changed.�� It doesn't even make much sense to talk about theenergy efficiency of the code generated by a specific compiler withspecific options: the underlying hardware counts too.���� A colleague ofmine, looking at text compression algorithms for an information retrievalengine, found that the fastest algorithm depended on just which x86-64chip, even what motherboard, was in use.�� It's obviously going to bethe same for energy efficiency.So let's specify a particular physical machine, a particular compiler,and a particular set of compiler options.�� NOW does it make sense totalk about energy efficiency?�� Nope.�� It's going to depend on theproblem as well.�� And the thing is that people tend to do differentthings in different programming languages, and different communitiesattract different support.�� There is no portable Smalltalk equivalentof NumPy, able to automatically take advantage of GPUs, for example.You can get some real surprises.For example, just now while writing this message, I fired uppowerstat(8).�� I had the browser open and power consumption wasabout 12.8 W.�� I then launched Squeak and ran some benchmarks.Power consumption went DOWN to 11.4 W.That is, Squeak was "costing" me -1.4 W.If you understand the kind of things modern CPUs get up to, thatis not as surprising as it seems.�� All it demonstrates is thatgetting MEANINGFUL answers is hard enough; getting GENERALISBLEanswers is going to be, well, if anyone succeeded, I think theywould have earned at least a Masters.On Tue, 13 Oct 2020 at 23:38, Jonathan van Alteren <jvalteren@objectguild.com> wrote:Hi St��phane,
Thanks for your feedback. I agree that the usefulness of these results is limited. However, if we (Object Guild) want to make a case for energy efficiency, it can help if the language itself can be shown to be efficient as well.��
For now, I think the efficiency will need to come from a good object design.
Kind regards,
Jonathan van Alteren
Founding Member | Object Guild B.V.
Sustainable Software for Purpose-Driven Organizations
On 11 Oct 2020, 16:49 +0200, St��phane Ducasse <stephane.ducasse@inria.fr>, wrote:
The problem is that what do you measure.��When you move computation from the CPU to a GPU for example does it consume less or more.��I think that such analyses are totally stupid.��Is a fast execution consume less? I have serious doubts about it.Now if we measure how fast we drain a battery because of polling vs event based then this is different.��S.��
On 1 Oct 2020, at 13:47, Jonathan van Alteren <jvalteren@objectguild.com> wrote:
Hi all,
I am interested in energy efficiency metrics for Pharo (version >=8). Just now, I came across this research and related GitHub project:
- https://sites.google.com/view/energy-efficiency-languages
- https://github.com/greensoftwarelab/Energy-Languages
Unfortunately, the paper mentions that Smalltalk was excluded from the results because the (VW) compiler was proprietary :-S However, the GitHub repository does contain Smalltalk code and results, but I haven't been able to evaluate those.
[1] Does anyone here have more information on this topic?
The benchmarks seem to be low-level algorithms. Although that is useful, I think that a better argument for Pharo/Smalltalk efficiency is that a good OO design (e.g. created using responsibility-driven design with behaviorally complete objects) will be a better fit, can be much simpler and will thus be more efficient during development, as well as easier to maintain and evolve.
[2] Has anyone done any research in this area that can quantify this aspect?
Kind regards,
Jonathan van Alteren
Founding Member | Object Guild B.V.
Sustainable Software for Purpose-Driven Organizations
jvalteren@objectguild.com
--------------------------------------------St��phane Ducasse03 59 35 87 52Assistant: Aurore Dalle��FAX 03 59 57 78 50TEL 03 59 35 86 16S. Ducasse - Inria40, avenue Halley,��Parc Scientifique de la Haute Borne, B��t.A, Park PlazaVilleneuve d'Ascq 59650France