7,593 reputation
11835
bio website
location
age
visits member for 4 years, 4 months
seen 1 hour ago

Apr
17
comment Why was the Itanium processor difficult to write a compiler for?
@rwong, I made a TLDR of what I consider my main points. BTW, for me variable latency -- between models, data dependent for some instructions in some model, memory access is obviously a major category here -- is one aspect of the difficulty of parallelism extraction. CPU hardware has the advantage of dynamic scheduling, and I don't think there is an example of statically scheduled processor which is competitive on pure performance for single thread with OOO. I don't think even the Mill team make that claim (their merit factor include power).
Apr
17
revised Why was the Itanium processor difficult to write a compiler for?
added 194 characters in body
Apr
17
revised Why was the Itanium processor difficult to write a compiler for?
added 323 characters in body
Apr
17
answered Why was the Itanium processor difficult to write a compiler for?
Apr
15
comment Philosophy behind Undefined Behavior
It's a drift in POV. People became less aware of the machine on which their program runs, they became more concerned with portability so they avoided depending on undefined, unspecified and implementation defined behavior. There was pressure on optimizers to get the best results on benchmark, and that means making use of every leniency left by the spec of the languages. There is also the fact that Internet -- Usenet at a time, SE nowadays -- language lawyers also tend to give a biased view of the underlying rationale and behavior of compiler writers.
Apr
14
comment What is the recommended way to separate current development from maintenance development in version control software?
Thinks of branches making a tree. They may come out the trunk or another branch. Shallow means that the number of branching step between the branch and the trunk is small, deep means that the number of branching step is important. What small and important is is mostly relative, but I've seen schemes for which each new releases was a step further than the previous one from the trunk. If you are using a flat namespace, that's not so bad. If the namespace is hierarchical (clearcase, CVS, RCS, Perforce can be used in such a way as well), you get longer and longer names.
Mar
3
answered Domain analysis - why OFF points are inside of the domain when the border is open
Feb
25
comment Feasibility of idea to reduce email spam
1/ There are usually intermediaries between senders and recipients. 2/ bot nets are already used by spammers due to all the blacklisting done targetting detected spammers.
Feb
19
comment Would adding more digits be a way to scale a order generation service?
"a single lock on that database" is probably the definition of "not scalable" for this exercice.
Feb
13
comment Why is the “period of a (pseudo)random number generator” important?
Could you give more context about what you have found? I wonder if you have not stumbled on a discussion of one PRNG algorithm (linear congruence) and try to extrapolate one of its aspects to all PRNG. (That algorithm has indeed one parameter which gives the period and fixing it to a prime number is usually useful as the resulting sequence has generally better properties not related to the period).
Feb
12
comment How do latency and bandwidth form tradeoff?
Oops, how have I missed Karl's comment which is essentially equivalent to mine? @Tim, a simple view of a a pipeline is that you divide the works to be done in stages, and you have several instructions executed at the same time, one in each different stage, when they are done, they go to the next stage. You try to divide the work so that each stage needs the same time, but if you don't succeed, there are stages which will be doing nothing while the other one complete.
Feb
12
comment How do latency and bandwidth form tradeoff?
There is another source of overhead: the cycle time of a pipeline is the one of the slowest stage. While designers try to equalize the stages, that is not always possible and thus some stages have some unused slack.
Feb
2
comment Getting results with a mediocre team
What to do is more than anything an answer to the root cause of the poor performance of the team. One person may be intrinsically a poor performer. For a whole team, I'd first look to structural issues preventing the team to perform well.
Feb
1
comment Why would many duck-typed dynamic programming languages use a class-based approach instead of prototype-based OOP?
@amon, AFAIK, the term "object-oriented programming" was first used with the meaning we know in the context of SmallTalk. It is possible to find precursors in both statically (Simula) and dynamically (Lisp) world.
Jan
4
revised In plain English, what is an object model?
added 458 characters in body
Jan
4
answered In plain English, what is an object model?
Dec
24
awarded  Yearling
Dec
24
awarded  Nice Answer
Dec
23
comment How does word size affect the amount of virtual address space available?
Yes. You have to think about the ISA as the interface between software and hardware. And as most interface, its goal is to expose functionality and hide implementation. And buses (there may be several, of different width) are part of the implementation.
Dec
23
comment How does word size affect the amount of virtual address space available?
@LukeP, that doesn't change much. Word size is a property of the ISA (Instruction Set Architecture). Bus sizes is a property of the implementation of the ISA (also called micro-architecture). A bus may be wider or smaller than a word, that's not important for the programmer. The same ISA may be implemented several times, with different bus size.