perhaps it is too late to suggest things for GSOC -- but stephen tetley on a different thread pointed at aaron turon's work, which there's a very interesting new concurrency framework he calls "reagents" which seems to give the best of all worlds : it is declarative and compositional like STM, but gives performance akin to hand-coded lock-free data structures. he seems to have straddled the duality of isolation vs message-passing nicely, and can subsume things like actors and the join calculus.
http://www.ccs.neu.edu/home/turon/reagents.pdf he has a BSD licensed library in scala at https://github.com/aturon/ChemistrySet if someone doesn't want to pick this up for GSOC i might have a hand at implementing it myself. b On Mar 29, 2012, at 6:46 AM, Tim Harris (RESEARCH) wrote: > Hi, > > Somewhat related to this... > > Next month we have a paper coming up at EuroSys about a middle-ground between > using STM and programming directly with CAS: > > http://research.microsoft.com/en-us/um/people/tharris/papers/2012-eurosys.pdf > > This was done in the context of shared memory data structures in C/C++, > rather than Haskell. > > It might be interesting to see how the results carry over to Haskell, e.g. > adding short forms of specialized transactions that interact correctly with > normal STM-Haskell transactions. > > In the paper we have some examples of using short specialized transactions > for the fast paths in data structures, while keeping the full STM available > as a fall-back for expressing the cases that cannot be implemented using > short transactions. > > --Tim > > > > > -----Original Message----- > From: haskell-cafe-boun...@haskell.org > [mailto:haskell-cafe-boun...@haskell.org] On Behalf Of Heinrich Apfelmus > Sent: 29 March 2012 13:30 > To: haskell-cafe@haskell.org > Subject: Re: [Haskell-cafe] Google Summer of Code - Lock-free data structures > > Florian Hartwig wrote: >> Heinrich Apfelmus wrote: >> >> So while the two are related, CAS is a machine primitive that works >> for a single operation and on a single word while STM is a software >> abstraction that isolates sequences of operations on multiple memory >> locations from each other. >> >>> Is it possible to implement every data structure based on CAS in >>> terms of STM? What are the drawbacks? The other way round? >> >> I think so. Atomically reading and writing a single memory location >> (which CAS does) is just a very simple transaction. But using a CAS >> instruction should be more efficient, since STM has to maintain a >> transaction log and commit transactions, which creates some overhead. > > Ah, I see. In that case, it may be worthwhile to implement the CAS > instruction in terms of STM as well and measure the performance difference > this makes for the final data structure. After all, STM is a lot more > compositional than CAS, so I'd like to know whether the loss of > expressiveness is worth the gain in performance. > > > Best regards, > Heinrich Apfelmus > > -- > http://apfelmus.nfshost.com > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe