- I have looked at TStringList and TList of FreePascal - 1 Update
- Here is my next project that is coming.. - 1 Update
- My Parallel archiver version 4.63 is here - 1 Update
- My Parallel archiver version 4.62 is here - 1 Update
- Transactional memory pros and cons from ACM Queue - 1 Update
- About Intel TSX - 1 Update
- Read again, i correct - 1 Update
- Modern Object Pascal - 1 Update
- We have also to think like a manager.. - 1 Update
Intelli2 <intelli2@mama.com>: Dec 13 03:34PM -0500 Hello, I have looked at TStringList and TList of FreePascal, and they are using a Delta on the Grow() method of TStringList and TList, like this: if FCapacity > 64 then Delta := FCapacity div 4 So since the Delta is scaling, so copying of the dynamic array when resizing is needed is efficient, so TList and TStringList of Delphi and FreePascal are also efficient, so no need for Hashed Array Tree. Thank you, Amine Moulay Ramdane. |
Intelli2 <intelli2@mama.com>: Dec 13 02:52PM -0500 Hello, Here is my next project that is coming.. I am implementing a Tlist and TIntList and TStringList for Delphi and FreePascal that are more scalable, i mean that i am implementing them using a Hashed Array Tree as described by Edward Sitarski (Dr. Dobb's Journal, September 1996, 107-110), this will permit them to be more scalable, and also i am implementing them using my parallel sort algorithm that is much more scalable on multicores and NUMA systems. Thank you, Amine Moulay Ramdane. |
Intelli2 <intelli2@mama.com>: Dec 13 02:15PM -0500 Hello, My Parallel archiver version 4.63 is here, AnalyzeArchive() and FixArchive() are working correctly now. And here is the correct definitions of the AnalyzeArchive() methods: function AnalyzeArchive(filename:UTF8String):TypeError;overload; - Analyze the format of Archive file, the returned TypeError is ctCorrupt if the format of the file is corrupt or ctUnknown if the format of the file is unknown. function AnalyzeArchive(Stream:TStream):TypeError;overload; - Analyze the format of the Archive Stream, the returned TypeError is ctCorrupt if the format of the stream is corrupt or ctUnknown if the format of the stream is unknown. If AnalyzeArchive() returns ctCorrupt, you have to fix the archive with FixArchive() that will fix the format of the archive, and you have to test the integrity of the archive and delete the corrupted files if any. I think Parallel archiver is much more stable and fast now. And since i am satisfied with version 4.63 , because it is much more stable and fast, i will write soon more documentation about it, and i will design and implement a command line program with like a GUI(using my Winmenus and my StringTree) that will permit you to view and to delete and to extract the files or directories etc. of the archive of Parallel archiver. So be happy with my new Parallel archiver version 4.63 and with my other projects and stay tuned ! You can download my Parallel archiver version 4.63 from: https://sites.google.com/site/aminer68/parallel-archiver Thank you, Amine Moulay Ramdane. |
Intelli2 <intelli2@mama.com>: Dec 13 11:07AM -0500 Hello, My Parallel archiver version 4.62 is here, AnalyzeArchive() and FixArchive() are working correctly now. I think Parallel archiver is much more stable and fast now. You can download my Parallel archiver version 4.62 from: https://sites.google.com/site/aminer68/parallel-archiver 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 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 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 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. |
Intelli2 <intelli2@mama.com>: Dec 07 05:16PM -0500 Hello... We have also to think like a manager.. I am here to make Embarcadero technologies better, i am thinking also to the investors in Embarcadero technologies, so we have to think also money, and we have to think big, because this is how we will make Embarcadero technologies better, i have two choices, first one is to sell my scalable algorithms and such and there implementations to Embarcadero technologies, and second one is to sell them to Microsoft, Microsoft loves to think big and thus to make money, so we have not to think cheap, and thus we have to think big, this is why i am here to help the managers of Embarcadero technologies to think better, so we have to be smart to be able to think better, so how can we make Embarcadero technologies better ? we have to better its name and to attract consumers , this is what love managers of Embarcadero technologies and what loves investors in Embarcadero technologies, and to better its name and to attract consumers what can we do ? i will give my ideas: if you look at Embarcadero technologies , they are not thinking big because they are still using Pthreads that is not good, and there Threadpool is not fully scalable and there FIFO queues are not fully scalable in NUMA systems and multicore systems etc. etc., so Embarcadero technologies is not thinking big, because the main problem is that it's not thinking better scalability, this is why i am here to sell my inventions that are my scalable algorithms and there implementations, Embarcadero technlogies has to buy my inventions that are my scalable algorithms and such and there implementations to make Delphi and C++Builder much more scalable on NUMA systems and multicores, this is the future Sir and Madam ! this is how we have to think big, and this is how we will make a better name and we will attract much more consumers, this is why i am writing here and this is why i will talk to Embarcadero technologies soon, the future also is to make Embarcadero products like Delphi and C++Builder more and more scalable on NUMA systems and multicores. A new fully scalable algorithm is coming, i have just invented it right now. It is two fully scalable Threapools, my other Threadpools were not fully scalable, my new scalable algorihms will be very powerful, they will use a distributed technic that will make my Threadpools fully scalable (like my scalable FIFO queues that i have invented and implemented in front of your eyes), and they will use also scalable counting networks that are fully scalable. So stay tuned , it will take me one day to implement this new fully scalable algorithm that i have just invented ! Also, I am thinking to include many of my projects in Embarcadero Delphi and C++ products , they can be included in a directory called Utils(that means utilities) inside Embarcadero Delphi and C++ products What i want to include in Embarcadero Delphi and C++ products is my inventions like my scalable Parallel Varfiler and my scalable RWLocks and my scalable MLock and my scalable AMLock and my scalable FIFO queues and my SemaMonitor and my C++ Synchronization Objects Library and my Parallel Compression Library etc. I am an experienced programmer specialized in Parallel programming and synchronization algorithms, it is why i have invented many scalable synchronization algorithms.and such, i am not an expert on coding, this is why i will let Embarcadero enhance the coding style of my projects and verify and text them more. Thank you, Amine Mouly 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