Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #9955
| Newsgroups | comp.programming |
|---|---|
| Date | 2019-06-26 10:12 -0700 |
| References | <qerq99$6lj$3@dont-email.me> |
| Message-ID | <60b41aee-a8f2-4fb0-a6ea-799550fcd461@googlegroups.com> (permalink) |
| Subject | Re: My scalable Adder is here.. |
| From | Horizon68 <cdalten@gmail.com> |
On Monday, June 24, 2019 at 5:35:55 PM UTC-7, Horizon68 wrote: > Hello.. > > > My scalable Adder is here.. > > As you have noticed i have just posted previously my modified versions > of DelphiConcurrent and FreepascalConcurrent to deal with deadlocks in > parallel programs. > > But i have just read the following about how to avoid race conditions > in Parallel programming in most cases.. > > Here it is: > > https://vitaliburkov.wordpress.com/2011/10/28/parallel-programming-with-delphi-part-ii-resolving-race-conditions/ > > This is why i have invented my following powerful scalable Adder to help > you do the same as the above, please take a look at its source code to > understand more, here it is: > > https://vitaliburkov.wordpress.com/2011/10/28/parallel-programming-with-delphi-part-ii-resolving-race-conditions/ > > Other than that, about composability of lock-based systems now: > > Design your systems to be composable. Among the more galling claims of > the detractors of lock-based systems is the notion that they are somehow > uncomposable: “Locks and condition variables do not support modular > programming,” reads one typically brazen claim, “building large programs > by gluing together smaller programs[:] locks make this impossible.”9 The > claim, of course, is incorrect. For evidence one need only point at the > composition of lock-based systems such as databases and operating > systems into larger systems that remain entirely unaware of lower-level > locking. > > There are two ways to make lock-based systems completely composable, and > each has its own place. First (and most obviously), one can make locking > entirely internal to the subsystem. For example, in concurrent operating > systems, control never returns to user level with in-kernel locks held; > the locks used to implement the system itself are entirely behind the > system call interface that constitutes the interface to the system. More > generally, this model can work whenever a crisp interface exists between > software components: as long as control flow is never returned to the > caller with locks held, the subsystem will remain composable. > > Second (and perhaps counterintuitively), one can achieve concurrency and > composability by having no locks whatsoever. In this case, there must be > no global subsystem state—subsystem state must be captured in > per-instance state, and it must be up to consumers of the subsystem to > assure that they do not access their instance in parallel. By leaving > locking up to the client of the subsystem, the subsystem itself can be > used concurrently by different subsystems and in different contexts. A > concrete example of this is the AVL tree implementation used extensively > in the Solaris kernel. As with any balanced binary tree, the > implementation is sufficiently complex to merit componentization, but by > not having any global state, the implementation may be used concurrently > by disjoint subsystems—the only constraint is that manipulation of a > single AVL tree instance must be serialized. > > Read more here: > > https://queue.acm.org/detail.cfm?id=1454462 > > And about Message Passing Process Communication Model and Shared Memory > Process Communication Model: > > An advantage of shared memory model is that memory communication is > faster as compared to the message passing model on the same machine. > > However, shared memory model may create problems such as synchronization > and memory protection that need to be addressed. > > Message passing’s major flaw is the inversion of control–it is a moral > equivalent of gotos in un-structured programming (it’s about time > somebody said that message passing is considered harmful). > > Also some research shows that the total effort to write an MPI > application is significantly higher than that required to write a > shared-memory version of it. > Also, ask me about my scalable dildo that I ram up my might every time I see a photo of Dan Cross is fishnet stockings.
Back to comp.programming | Previous | Next — Previous in thread | Find similar | Unroll thread
My scalable Adder is here.. Horizon68 <horizon@horizon.com> - 2019-06-24 17:35 -0700 Re: My scalable Adder is here.. Horizon68 <cdalten@gmail.com> - 2019-06-26 10:12 -0700
csiph-web