From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Dominik Dingel <dominik.dingel@gmail.com>
Cc: perfbook@vger.kernel.org, Dominik Dingel <dingel@linux.vnet.ibm.com>
Subject: Re: [PATCH 0/2] CodeSample: rwdeq
Date: Sun, 16 Aug 2015 23:22:19 -0700 [thread overview]
Message-ID: <20150817062219.GA2380@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150813164300.GB3895@linux.vnet.ibm.com>
On Thu, Aug 13, 2015 at 09:43:01AM -0700, Paul E. McKenney wrote:
> On Wed, Aug 12, 2015 at 09:55:22AM +0200, Dominik Dingel wrote:
> > From: Dominik Dingel <dingel@linux.vnet.ibm.com>
> >
> > Hi all,
> >
> > here is a somehow naive implementation of a reader/writer lock based approch
> > for the parallel deq problem.
> >
> > The next step would be to use it as an introduction example in the text, as due
> > its way of implementation (taking always a read lock, working always with an
> > atomic counter) it is a less efficient way of doing things, compared with the
> > tandem approch. Then the benefits of partitioning might be even more obvious.
> >
> > Thanks
> > Dominik
>
> Queued, thank you, Dominik!
>
> A quick unscientific run leads me to believe that this is slightly faster
> than the hashed implementation (not bad!), but about twice as slow as
> the tandem version. Of course, considerable variation is to be expected
> based on workload.
And, as discussed earlier, here the commit adding a Quick Quiz referring
to your algorithm. Thoughts?
Thanx, Paul
------------------------------------------------------------------------
Add Quick Quiz for Dominik Dingel's solution
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
diff --git a/SMPdesign/partexercises.tex b/SMPdesign/partexercises.tex
index a44c285ce134..5d46e70028aa 100644
--- a/SMPdesign/partexercises.tex
+++ b/SMPdesign/partexercises.tex
@@ -683,6 +683,15 @@ Michael~\cite{DBLP:conf/europar/Michael03}.\footnote{
Instead, the common compare-and-swap (e.g., x86 cmpxchg)
suffices.}
+\QuickQuiz{}
+ Why are there not one but two solutions to the double-ended queue
+ problem?
+\QuickQuizAnswer{
+ There are actually at least three.
+ The third, by Dominik Dingel, makes interesting use of
+ reader-writer locking, and may be found in \co{lockrwdeq.c}.
+} \QuickQuizEnd
+
In fact, as noted by Dice et al.~\cite{DavidDice:2010:SCA:HTM:deque},
an unsynchronized single-threaded double-ended queue significantly
outperforms any of the parallel implementations they studied.
diff --git a/qqz.tex b/qqz.tex
index 57cdc43f63d1..cfd0356854b7 100644
--- a/qqz.tex
+++ b/qqz.tex
@@ -2561,6 +2561,14 @@ ret = ~ret & tmp;
it is worthwhile) is left as an exercise for the reader.
\QuickQ{}
+ Why are there not one but two solutions to the double-ended queue
+ problem?
+\QuickA{}
+ There are actually at least three.
+ The third, by Dominik Dingel, makes interesting use of
+ reader-writer locking, and may be found in \co{lockrwdeq.c}.
+
+\QuickQ{}
The tandem double-ended queue runs about twice as fast as
the hashed double-ended queue, even when I increase the
size of the hash table to an insanely large number.
next prev parent reply other threads:[~2015-08-17 6:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-12 7:55 [PATCH 0/2] CodeSample: rwdeq Dominik Dingel
2015-08-12 7:55 ` [PATCH 1/2] CodeSamples: Fix compiler warnings Dominik Dingel
2015-08-12 7:55 ` [PATCH 2/2] CodeSamples: add read/write solution to the deq example Dominik Dingel
2015-08-13 16:43 ` [PATCH 0/2] CodeSample: rwdeq Paul E. McKenney
2015-08-17 6:22 ` Paul E. McKenney [this message]
2015-08-19 19:06 ` Dominik Dingel
2015-08-19 21:22 ` Paul E. McKenney
2015-08-20 17:36 ` Dominik Dingel
2015-08-21 16:21 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150817062219.GA2380@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=dingel@linux.vnet.ibm.com \
--cc=dominik.dingel@gmail.com \
--cc=perfbook@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.