
This year, Google re-launched their Summer of Code program for students. Since I’m now eligible for it, I submitted my application for the Mono Project. I proposed to code an « Implementation of the .NET Parallel extensions for the Mono Project ». Following is the content of my detailed description :
Project Proposal
I would like to work on a implementation of the .NET Parallel extensions (also called PLinq or, simply, Parallel FX) for the Mono Project. The target of this work would be to provide an API compatible with the one of the current release of the Microsoft’s library (CTP of December 2007, though a new version might be out by summer) and at the same time provide API enhancements (without breakage) if it proves useful.
Initial implementation plans
First of all, I would begin by stubbing the whole public API, understanding the general usage of the library at the same time. Then I would document myself more precisely on dynamic work-stealing scheduling techniques to be used in the implementation. The core code in place, I would work toward implementing both the Parallel class methods (like For or ForEach) and the PLinq layer. It’s also during this period that improving the existing API would take place. Of course this work won’t break the the initial compatibility interface. Extensions methods, for example, could be used in a separate, Mono-specific, assembly for that purpose. The rest of the time would be devoted to unit testing, benchmarking and optimisations.
Personal background
Since I worked on Mono.Xna for some times, I know well the problems of licensing issues faced by .NET library reimplementations (and the risks of using tools like Reflector). In addition, I’m very interested by parallel computing and I have already read many papers on subjects like thread synchronisation, lock-free and wait free collections, fibers…
As for my academic background, I currently study computer science at UTBM (http://www.utbm.fr), a French engineering school (master level). I’m also a long time Mono user and supporter (I have been using Mono and C# continuously for 3 years). About coding experience, and as I previously mentioned, I have participated in Mono.Xna (Storage, Input and some Audio parts of the library). I’m also the maintainer of D-Bus Explorer (http://www.ndesk.org/DBusExplorer), a tool for debugging/visualizing D-Bus APIs, and Circ (http://netherilshade.free.fr/circ), an IRC client. In addition I have contributed to other C# open source projects like Monodevelop or Tao.
The application deadline is Monday (though there will likely be a time extension) and selected proposals will be announced on April, 14th. So stay tuned
.
(Btw, the logo is really sexy)













Again, good luck for this
[...] I will thus work for Mono on an implementation of the Parallel FX and PLinq during this summer (see precedent post for the detailed [...]
[...] Now for the usual presentation : my name is Jérémie Laval, I’m a french student participating in this year edition of Google Summer of Code for the Mono Project. The detail of my submission can be found in an older blog post. [...]