News for hackers. Stuff that matters.
Re:Intel releases the last Itanium chip, the 9700 by chrisseaton on Saturday May 13, 2017 @06:40PM (#14333371)
The techniques you are talking about are for proving that there is parallelism. The beauty of a JIT is that you can speculate that there is parallelism, go ahead, and then sort out the mess later and recompile to sequential if there wasn't.

https://en.wikipedia.org/wiki/Speculative_multithreading

You can use hardware functionality such as TSX to support this.

Re:Intel releases the last Itanium chip, the 9700 by thesz on Monday May 15, 2017 @05:01AM (#14340153)
You can't speculate about parallelism when dealing with shared resource.

It is unbelievable you even suggested it.

TSX won't save you.

Re:Intel releases the last Itanium chip, the 9700 by chrisseaton on Monday May 15, 2017 @06:13PM (#14345622)
> You can't speculate about parallelism when dealing with shared resource

Why do you think that? What do you think the optimistic software transactional memory algorithms are doing if not speculating on parallel access to shared memory?

Re:Intel releases the last Itanium chip, the 9700 by thesz on Monday May 15, 2017 @06:47PM (#14345863)
Because you have O(n) for size of transaction and this O will quickly rise to overflow any buffers you have in hardware, for one.

Because Microsoft tried to add STM to the .Net and get 4x slower code after extensive effort: http://www.mail-archive.com/[email protected]/msg7973...

Should I continue from these two arguments?

Re:Intel releases the last Itanium chip, the 9700 by chrisseaton on Monday May 15, 2017 @07:19PM (#14346070)
You've just said that you 'can't speculate about parallelism when dealing with shared resource', and then gave me an example of a system that did exactly that. Clearly, it is possible to do speculative parallelism of shared resources. We may not yet know how to make it efficient, but it is possible.
Re:Intel releases the last Itanium chip, the 9700 by thesz on Tuesday May 16, 2017 @06:10AM (#14348509)
From what I gather, STM in .Net heavily relies on the static program analysis.

You may see it as a proof of your point, but I see it as a counterexample - a team of smart people was not able make speculative parallelism efficient even with static analysis. JIT will be even less efficient as it has to keep and account for tracing information and for speculation logs. These two interact in interesting way, I guess.