Saturday, December 9, 2017

Digest for comp.programming.threads@googlegroups.com - 7 updates in 7 topics

Intelli2 <intelli2@mama.com>: Dec 08 04:53PM -0500

Hello...
 
 
I know about Bill Gates, and how he thinks..
 
Here is my way to be a winner..
 
You have to think like a manager that thinks big money and you have thus
to integrate new interesting inventions into your products, like
integrating scalable algorithms and such and there implementations into
your Embarcadero or Microsoft products, that better your name and that
brings much more customers and that brings investors, thus that brings
big money, this is my way of thinking, and i think that Bill Gates has
followed my way of thinking and is in accordance with my way of thinking.
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 04:50PM -0500

Hello...
 
 
I know about Bill Gates, and how he thinks..
 
Here is my way to be a winner..
 
You have to think like a manager that thinks big money and you have thus
to integrate new interesting inventions into your products, like
integrating scalable algorithms and such and there implementations into
your Embarcadero or Microsoft products, that better your name and that
brings much more custumers and that brings investors, thus that brings
big money, this is my way of thinking, and i think that Bill Gates has
followed my way of thinking and is in accordance with my way of thinking.
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 02:08PM -0500

Hello,
 
 
Here is my extended post about HTM and TM..
 
Transactional memory pros and cons from ACM Queue:
 
"We observed that the TM programming model itself, whether implemented
in hardware or software, introduces complexities that limit the expected
productivity gains, thus reducing the current incentive for migration to
transactional programming and the justification at present for anything
more than a small amount of hardware support."
 
Read more here:
 
https://insidehpc.com/2008/12/transactional-memory-pro-and-con/
 
And since also HTM (hardware transactional memory) and TM can not
replace locks when doing IO and for highly contended critical sections ,
this is why my inventions that are my scalable algorithms such as my C++
Synchronization Objects Library and my others scalable algorithms that i
am thinking to sell to Embarcadero technologies or Microsoft are still
very useful.
 
Here is also something interesting to read about hardware transactional
memory that is Intel TSX:
 
TSX does not gaurantee forward progress, so there must always be a
fallback non-TSX pathway. (complex transactions might always abort even
without any contention because they overflow the speculation buffer.
Even transactions that could run in theory might livelock forever if you
don't have the right pauses to allow forward progress, so the fallback
path is needed then too).
 
TSX works by keeping a speculative set of registers and processor state.
It tracks all reads done in the speculation block, and enqueues all
writes to be delayed until the transaction ends. The memory tracking of
the transaction is currently done using the L1 cache and the standard
cache line protocols. This means contention is only detected at cache
line granularity, so you have the standard "false sharing" issue.
 
If your transaction reads a cache line, then any write to that cache
line by another core causes the transaction to abort. (reads by other
cores do not cause an abort).
 
If your transaction writes a cache line, then any read or write by
another core causes the transaction to abort.
 
If your transaction aborts, then any cache lines written are evicted
from L1. If any of the cache lines involved in the transaction are
evicted during the transaction (eg. if you touch too much memory, or
another core locks that line), the transaction is aborted.
 
TSX seems to allow quite a large working set (up to size of L1 ?).
Obviously the more memory you touch the more likely to abort due to
contention.
 
Obviously you will get aborts from anything "funny" that's not just
plain code and memory access. Context switches, IO, kernel calls, etc.
will abort transactions.
 
At the moment, TSX is quite slow, even if there's no contention and you
don't do anything in the block. There's a lot of overhead. Using TSX
naively may slow down even threaded code. Getting significant
performance gains from it is non-trivial.
Read more here:
 
http://cbloomrants.blogspot.ca/2014/11/11-12-14-intel-tsx-notes.html
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 01:50PM -0500

Hello,
 
 
Here is something interesting to read about hardware transactional
memory that is Intel TSX:
 
TSX does not gaurantee forward progress, so there must always be a
fallback non-TSX pathway. (complex transactions might always abort even
without any contention because they overflow the speculation buffer.
Even transactions that could run in theory might livelock forever if you
don't have the right pauses to allow forward progress, so the fallback
path is needed then too).
 
TSX works by keeping a speculative set of registers and processor state.
It tracks all reads done in the speculation block, and enqueues all
writes to be delayed until the transaction ends. The memory tracking of
the transaction is currently done using the L1 cache and the standard
cache line protocols. This means contention is only detected at cache
line granularity, so you have the standard "false sharing" issue.
 
If your transaction reads a cache line, then any write to that cache
line by another core causes the transaction to abort. (reads by other
cores do not cause an abort).
 
If your transaction writes a cache line, then any read or write by
another core causes the transaction to abort.
 
If your transaction aborts, then any cache lines written are evicted
from L1. If any of the cache lines involved in the transaction are
evicted during the transaction (eg. if you touch too much memory, or
another core locks that line), the transaction is aborted.
 
TSX seems to allow quite a large working set (up to size of L1 ?).
Obviously the more memory you touch the more likely to abort due to
contention.
 
Obviously you will get aborts from anything "funny" that's not just
plain code and memory access. Context switches, IO, kernel calls, etc.
will abort transactions.
 
At the moment, TSX is quite slow, even if there's no contention and you
don't do anything in the block. There's a lot of overhead. Using TSX
naively may slow down even threaded code. Getting significant
performance gains from it is non-trivial.
 
 
Read more here:
 
http://cbloomrants.blogspot.ca/2014/11/11-12-14-intel-tsx-notes.html
 
 
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 01:10PM -0500

Hello..
 
 
Here is something interesting to read:
 
Concurrent Hopscotch Hash Map
 
http://cs.tau.ac.il/~multi/2015a/chhm.htm
 
 
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 12:43PM -0500

Hello..
 
 
Transactional memory pros and cons from ACM Queue:
 
"We observed that the TM programming model itself, whether implemented
in hardware or software, introduces complexities that limit the expected
productivity gains, thus reducing the current incentive for migration to
transactional programming and the justification at present for anything
more than a small amount of hardware support."
 
Read more here:
 
https://insidehpc.com/2008/12/transactional-memory-pro-and-con/
 
 
This is why my inventions that are my scalable algorithms such as
my C++ Synchronization Objects Library etc. that i am thinking to sell
to Embarcadero technologies or Microsoft are still very useful.
 
 
 
Thank you,
Amine Moulay Ramdane.
Intelli2 <intelli2@mama.com>: Dec 08 12:10PM -0500

Hello,
 
Man-wai Chang wrote:
 
>Is Pascal just a toy that exists only in the realm of college
>programming?
 
>Any comments would be welcomed!
 
 
Pascal has evolved in a much more professional and capable language
called Modern Object Pascal that is supported by Delphi and FreePascal:
 
Look at Delphi (and it can be used from C++Builder):
 
https://www.embarcadero.com/products/delphi
 
 
And look at FreePascal and Lazarus that are compatible with Delphi 7
actually:
 
https://www.freepascal.org/
 
and
 
http://www.lazarus-ide.org/
 
 
 
I am working with Delphi and FreePascal, and i am also working with C++
compilers.
 
 
 
Thank you,
Amine Moulay Ramdane.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com.

No comments: