Thursday, December 14, 2017

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

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: