Posted by
Stéphane Ducasse on
Oct 13, 2020; 8:58pm
URL: https://forum.world.st/Energy-efficiency-of-Pharo-Smalltalk-tp5122777p5123446.html
On 13 Oct 2020, at 21:33, Jonathan van Alteren <
[hidden email]> wrote:
Hi Stéphane,
I dug around a little bit regarding this subject and found that people are working to create software that is aware of its energy consumption. There is a Dutch university research group actively involved with this and related topics here:
http://s2group.cs.vu.nl/mission/.
Well if you accept that your web browser is going slower may be you will consume less energy.
Or may be your speedy web browser consumes less.
I skimmed over it and it is wishful thinking.
How can I engineer a system (besides using good algorithms instead of sloppy one) to consume less energy, if
we do not know what means energy aware:
At then this is what?
- Number of instructions executed, the least the better?
- What about missed caches?
- What about missed instruction pipelining?
For example on your mac when you unplug the cable you have a different card setup because the videos
card can consume more. So we can degrade certain operation.
But how to measure this seriously.
Is this something that could be of interest to Inria or the Pharo project?
It depends how money is put on the table. :)
What do you mean exactly with your last comment? I think that when distinctions in a domain are successfully made explicit at design time, this will improve performance at runtime and thus should also improve energy efficiency. How does that relate to your comment about message passing/branching/polymorphism?
To me I’m sorry but I do not buy without serious measurement that
" distinctions in a domain are successfully made explicit at design time, this will improve performance at runtime “
Let us play the scientific here for a moment: do you have data? did you measure it? what are you biais in your measurement/experiment.
Now to reply to your question in OORP we promote that
case statement were bad that we it is better to use message passing.
Except that in some domains in some specific circumstances have case statement is faster.
Similarly they are domains where GC is a problem.
Kind regards,
Jonathan van Alteren
Founding Member | Object Guild B.V.
Sustainable Software for Purpose-Driven Organizations
[hidden email]
On 13 Oct 2020, 16:49 +0200, Stéphane Ducasse <
[hidden email]>, 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.
I do not know what is energy efficient nor how it is measurable.
Now our objectives is that pharo does not burn the batteries when doing nothing and we start to have that with the headless and idle vm.
For now, I think the efficiency will need to come from a good object design.
this would presume that message passing is faster than branching.
And I remember that we had argument with hardware people about our reengineering pattern
on condition to polymorphism
Kind regards,
Jonathan van Alteren
Founding Member | Object Guild B.V.
Sustainable Software for Purpose-Driven Organizations
--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Aurore Dalle
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France