|
Dynamite and sledgehammers work wonders.
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
Might need a few throw pillows after though
TTFN - Kent
|
|
|
|
|
I’m quite interested in your work on improving algorithm performance using techniques related to computer architecture. However, I think that this may only be of interest to academia. Do you think that there are jobs opportunities related with this profile, which is very specialized? Yes. Next question.
|
|
|
|
|
No. You are not smarter than the compiler.
|
|
|
|
|
Yes I am, and so are you. Compilers aren't magic, and inherently more limited in what they can do than humans.
|
|
|
|
|
Let's see... in this room I have two Intel PCs, a MicroVAX, two AlphaServers, and an Itanium -- do I want to write Assembly and/or hand compile for each of them? No, I am not that smart.
|
|
|
|
|
Smart isn't the problem, you could do it. It would take too much effort and time.
|
|
|
|
|
I disagree. Even the simplest compiler is a form of expert system that contains decades of expertise of persons who are unquestionably smarter than I.
Add to that, that I am really not interested.
Having said that, I have created interpreters for one or two simple languages.
For instance: CommScript[^]
But a full-on compiler for a general purpose language? Particularly a modern one? No. I can't do it.
|
|
|
|
|
It doesn't even matter, that entire angle is a straw man. Nowhere do the rules say that you have to take over every single task of the compiler, there are no rules.
You can even use the compiler that you're outsmarting, or even an other one. That's not against the rules because there are no rules.
A compiler also can't try things, in the sense of actually running some code on the actual data and seeing what works out best.
You will win every time, and it is impossible to lose.
|
|
|
|
|
You can have the best compiler in the world. It just won't be faster with idea that is inherently slow. You don't believe? Compile bubble sort and quick sort. Tell me if that genius of a compiler improved a performance of a bad idea on its own.
|
|
|
|
|
Hahahahahahahahaha. No. Been there, done that - the same algorithm on the same set of images got from 30 ms to 12 ms of running time only by manually optimizing memory access. Is it important? Well, I have about 80ms to apply other 30 algorithms to that images so yes, it is
* CALL APOGEE, SAY AARDWOLF
* GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
* Never pay more than 20 bucks for a computer game.
* I'm a puny punmaker.
|
|
|
|
|
Duncan Edwards Jones wrote: You are not smarter than the compiler.
I am not able to turn source code into machine instructions like the compiler, but it knows nothing about my requirements and constraints and can't pick the correct algorithm for me.
|
|
|
|
|
Precisely - you tell it what you want (and your constraints), and let it work out how best to do it.
Like you do with SQL, or network routing or so many other aspects.
A business software product can expect to have a lifetime of a decade - you don't know that your performance tweaks will still be applicable in 10 years time.
This is why we have so much JavaScript (and indeed java) around - raw performance has become (in most cases) a hardware and OS level concern.
|
|
|
|
|
Duncan Edwards Jones wrote: you tell it what you want (and your constraints), and let it work out how best to do it
Yeah - it doesn't work that way I can't tell my compiler - "I need a function to find a cluster of similar documents under 1 s on such hardware - would you make one for me please?"
|
|
|
|
|
Not as much as correctness and not at the cost of maintainability.
|
|
|
|
|
In software for PC, Apps and similar (which is the biggest part of the pie currently) I fully agree with you.
But in software for rapid response electronics... performance is still a very important aspect.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
And big data wallahs demand miracles.
One place I was at was asked to process over a million DB records per second -- it was sort-of hidden/buried in the requirements, and not noticed until one of our devs sat down and calculated what the reasonable-sounding requirements really meant.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
PIEBALDconsult wrote: Not as much as correctness and not at the cost of maintainability.
True. But I have speeded up scientific code by a factor of 2-10 by recoding inner loops in assembly language. In at least one case, it made the difference between using slower (cheaper) and faster (more expensive) hardware for a system. In all cases, it made larger analyses feasible.
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
Correctness, sure. Cost of maintainability? Perhaps for a typical in-house enterprise app. If you sell software to customers they couldn't care less about your maintainability, but will switch to competitors if your performance is worse; your savings in "maintainability" will cost them in hardware and electric power.
|
|
|
|
|
Also, if highly optimized parts can be incapsulated and well documented maintenability is reasonably kept. Computing intensive operations require performance, as real time operations do. I'm lucky: I have to provide real time responses following computing intensive operations.
* CALL APOGEE, SAY AARDWOLF
* GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
* Never pay more than 20 bucks for a computer game.
* I'm a puny punmaker.
|
|
|
|
|
Speed of computing is the reason computers exist in the first place. So, I'll go with "yes".
|
|
|
|
|
Thanks to the discovery of a new material, a cooking pan could generate enough electricity to charge a cellphone in just a few hours. The team found that a combination of the chemical elements calcium, cobalt and terbium can create an efficient, inexpensive and bio-friendly material that can generate electricity through a thermoelectric process involving heat and cold air. I love the smell of frying cellphone in the morning
I'm a little worried they insist it's 'non-toxic'.
|
|
|
|
|
Sounds like metalurgists; not engineers.
|
|
|
|
|
So if you and your missus wear matching rings, you're a thermocouple?
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
The Pwn2Own 2017 hacking contest, which celebrated its 10th anniversary, concluded after three days in which security teams hacked away at browsers and operating systems. Microsoft’s Edge seems to have been hit the hardest, while Chrome remained unhackable during the contest. On the bright side, hackers don't go after unused products
|
|
|
|