- Read again, i correct - 1 Update
- I know about Bill Gates, and how he thinks.. - 1 Update
- Here is my extended post about HTM and TM.. - 1 Update
- About Intel TSX - 1 Update
- Concurrent Hopscotch Hash Map - 1 Update
- Transactional memory pros and cons from ACM Queue - 1 Update
- Modern Object Pascal - 1 Update
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:
Post a Comment