Breadth-first search
“Practice writing every day”. Sure, why not; though I think now-and-then is more achievable. I certainly need to practice.
I don’t think I will get chance to see my supervisor before heading back to the UK on Tuesday night, but was pleasantly surprised to see his name crop up in the minutes of the recent Barrelfish workshop in Cambridge. I hadn’t realised he was so involved, thinking he was more interested because of the Haskell connection. That he’s doing both is great.
As far as the work goes, I’m waiting on my new laptop to build Barrelfish, but have started looking into GHC, the main Haskell compiler / interpreter distribution. There have been a few projects on parallelism, concurrency and asynchrony for GHC; for now I have names and pages, but haven’t looked into them extensively (will involve paper reading, code assessment, and deciding whether their infrastructure fits with what I’m trying to achieve).
Communicating Haskell Processes (CHP) is a CSP inspired concurrency library. It’s likely synchronous to some extent (as is CSP), but given that Barrelfish operates in a synchronous environment that’s ok. It still seems to tick the no-shared-state box, concentrating on encapsulated processes and communication. Barriers rather than message-passing though. More reading needed.
Glasgow Distributed Haskell (GdH) don’t know much about this yet, high-level seems to resemble combining OpenMP with MPI. From what I’ve read elsewhere I don’t think Haskell’s parallelism is inherently so different from OpenMP, aside from “sparks” being very lightweight relative to omp’s threads?
And here’s the important one: Notes on Porting GHC to Barrelfish - it’s apparently out-of-date, but people on the mailing list suggested it as a good way to start, and that I might be able to get in touch with the author. Will try this out first, and see how it goes. If GHC won’t build all of the spinoff projects become somewhat moot.
There’s also the various concurrency and parallelism libraries to think about too; Haskell has Software Transactional Memory, actor model, and a few other bits and pieces, for which Simon Marlow’s papers are the go-to reference.
Book wise, currently poking through something on operating systems, something recent on optimising multicore processors (to get a better grasp of why Barrelfish’s message passing strategy for caches is worthwhile), and a survey book on transactional memories since the original project proposal at ETH is getting STM working. Will be bringing a lot from home too, including a new Murakami, unless I finish it before coming back. A little fiction here and there soothes the soul. I also think it’s good for the writing. One should strive to be less like Kuhn, and more like Hemingway, if one wishes to be understood. Perhaps that can curtail the seemingly inevitable shift towards academic style that will be brought on by all these academic papers and books.
Back to the thesis though: many questions remain, but it’s a start.
p.s.
Somehow totally forgot to weave this in: PhD applications! So far my first one has gone out to Universidad Politécnica de Madrid for a program researching practical applications of CSP, and soon my EMJD-DC application will be sent - I’m currently agonising over the motivation & covering letter, what order to put the 3 elected topics in, and hoping I don’t need to trim things further.