User loginNavigation |
Parallel/DistributedIs Transactional Programming Actually Easier?Is Transactional Programming Actually Easier?, WDDD '09, Christopher J. Rossbach, Owen S. Hofmann, and Emmett Witchel.
I've recently discovered the Workshop on Duplicating, Deconstructing, and Debunking (WDDD) and have found a handful of neat papers, and this one seemed especially relevant to LtU. [Edit: Apparently, there is a PPoPP'10 version of this paper with 237 undergraduate students.] Also, previously on LtU: Transactional Memory versus Locks - A Comparative Case Study Despite the fact Tommy McGuire's post mentions Dr. Victor Pankratius's talk was at UT-Austin and the authors of this WDDD'09 paper represent UT-Austin, these are two independent case studies with different programming assignments. The difference in assignments is interesting because it may indicate some statistical noise associated with problem domain complexity (as perceived by the test subjects) and could account for differences between the two studies. Everyone always likes to talk about usability in programming languages without trying to do it. Some claim it can't even be done, despite the fact Horning and Gannon did work on the subject 3+ decades ago, assessing how one can Language Design to Enhance Program Reliability. This gives a glimpse both on (a) why it is hard (b) how you can still try to do usability testing, rather than determine the truthiness of a language design decision. By Z-Bo at 2010-09-07 18:13 | Parallel/Distributed | Software Engineering | Teaching & Learning | 33 comments | other blogs | 30543 reads
Joe Duffy: A (brief) retrospective on transactional memoryA (brief) retrospective on transactional memory, by Joe Duffy, January 3rd, 2010. Although this is a blog post, don't expect to read it all on your lunch break... The STM.NET incubator project was canceled May 11, 2010, after beginning public life July 27, 2009 at DevLabs. In this blog post, written 4 months prior to its cancellation, Joe Duffy discusses the practical engineering challenges around implementing Software Transactional Memory in .NET. Note: He starts off with a disclaimer that he was not engaged in the STM.NET project past its initial working group phase. In short, Joe argues, "Throughout, it became abundantly clear that TM, much like generics, was a systemic and platform-wide technology shift. It didn’t require type theory, but the road ahead sure wasn’t going to be easy." The whole blog post deals with how many implementation challenges platform-wide support for STM would be in .NET, including what options were considered. He does not mention Maurice Herlihy's SXM library approach, but refers to Tim Harris's work several times. There was plenty here that surprised me, especially when you compare Concurrent Haskell's STM implementation to STM.NET design decisions and interesting debates the team had. In Concurrent Haskell, issues Joe raises, like making Console.WriteLine transactional, are delegated to the type system by the very nature of the TVar monad, preventing programmers from writing such wishywashy code. To be honest, this is why I didn't understand what Joe meant by "it didn't require type theory" gambit, since some of the design concerns are mediated in Concurrent Haskell via type theory. On the other hand, based on the pragmatics Joe discusses, and the platform-wide integration with the CLR they were shooting for, reminds me of The Transactional Memory / Garbage Collection Analogy. Joe also wrote a briefer follow-up post, More thoughts on transactional memory, where he talks more about Barbara Liskov's Argus. By Z-Bo at 2010-09-07 17:05 | Critiques | Implementation | Parallel/Distributed | Software Engineering | 7 comments | other blogs | 12188 reads
Intel Concurrent Collections for Haskell
In short CnC purports to be a "a graph-based data-flow-esque deterministic parallel programming model". An open-source Haskell edition of the software was recently released on Hackage. A series of blog posts describe the implementation: #1, #2, #3, #4, #5 (the last post links to a draft paper). Personally, I would have preferred a more concise and down to earth description on the whole thing. If you have experiences to share, please do. By Ehud Lamm at 2010-06-24 05:07 | Functional | Parallel/Distributed | 7 comments | other blogs | 13188 reads
The Resurgence of ParallelismPeter J. Denning and Jack B. Dennis, The Resurgence of Parallelism, Communications of the ACM, Vol. 53 No. 6, Pages 30-32, 10.1145/1743546.1743560
A brief but timely reminder that we should avoid reinventing the wheel. Denning and Dennis give a nice capsule summary of the history of parallel computing research, and highlight some of the key ideas that came out of earlier research on parallel computing. This isn't a technically deep article. But it gives a quick overview of the field, and tries to identify some of the things that actually are research challenges rather than problems for which the solutions have seemingly been forgotten. By Allan McInnes at 2010-05-28 23:45 | History | Parallel/Distributed | 10 comments | other blogs | 16309 reads
Brians functional brainA rather fun and instructive series of posts about implementing a cellular automaton in idiomatic Clojure, and making it run fast (and in parallel). Be sure to read the second part, and the errata. By Ehud Lamm at 2010-04-16 02:20 | Clojure | Fun | Parallel/Distributed | 3 comments | other blogs | 10330 reads
The AI Systems of Left 4 DeadThere's no PL content per se in this presentation, but a PL weenie will surely think of a DSL for almost every slide, so I hope posting this is warranted. Tim Sweeney has written previously on the programming challenges raised by game development (The Next Mainstream Programming Languages: A Game Developer's Perspective), and I think this presentation is another showcase of the huge problems that need solving in game development. Finally, I wonder why anyone would use a language that doesn't allow quick and simple syntax extension for driving a game engine? Seriously, the possibilities for ad-hoc DSLs seem endless. By Manuel J. Simoni at 2009-12-22 13:48 | DSL | Parallel/Distributed | 13 comments | other blogs | 19186 reads
Developer Guided Code SplittingGoogle Web Toolkit, which compiles Java to JavaScript for running code in the browser, now includes Code Splitting, for reducing application download time:
By Manuel J. Simoni at 2009-12-09 11:27 | Javascript | Parallel/Distributed | 25 comments | other blogs | 17078 reads
Tim Bray on Clojure and ErlangA short comparison (plus some links) of Erlang and Clojure solutions to the simple problem of running a counter in a separate thread. By Ehud Lamm at 2009-10-29 04:12 | Clojure | Parallel/Distributed | 10 comments | other blogs | 17826 reads
Parallel Performance Tuning for Haskell
Parallel Performance Tuning for Haskell. Don Jones Jr., Simon Marlow, and Satnam Singh.
Parallel Haskell programming has entered the mainstream with support now included in GHC for multiple parallel programming models, along with multicore execution support in the runtime. However, tuning programs for parallelism is still something of a black art. Without much in the way of feedback provided by the runtime system, it is a matter of trial and error combined with experience to achieve good parallel speedups. This paper describes an early prototype of a parallel profiling system for multicore programming with GHC. The system comprises three parts: fast event tracing in the runtime, a Haskell library for reading the resulting trace files, and a number of tools built on this library for presenting the information to the programmer. We focus on one tool in particular, a graphical timeline browser called ThreadScope. The paper illustrates the use of ThreadScope through a number of case studies, and describes some useful methodologies for parallelizing Haskell programs.
By Ehud Lamm at 2009-09-03 22:03 | Functional | Parallel/Distributed | 5 comments | other blogs | 12319 reads
A Java Fork/Join FrameworkDoug Lea: A Java Fork/Join Framework, Proceedings of the ACM 2000 conference on Java Grande.
This work is about to be incorporated into Java 7 as jsr166y:
By Manuel J. Simoni at 2009-07-20 21:06 | DSL | Parallel/Distributed | 1 comment | other blogs | 110147 reads
|
Browse archives
Active forum topics |
Recent comments
38 weeks 6 days ago
39 weeks 2 hours ago
39 weeks 2 hours ago
1 year 9 weeks ago
1 year 13 weeks ago
1 year 14 weeks ago
1 year 14 weeks ago
1 year 17 weeks ago
1 year 22 weeks ago
1 year 22 weeks ago