OpenCL support for Kedama [Re: [squeak-dev] Google Summer Of Code 2010 news!!!]

Josh Gargus josh at schwa.ca
Wed Mar 10 05:18:39 UTC 2010


OK, here's a modified proposal with the sections clearly labeled.

Cheers,
Josh



Title: 
OpenCL for Kedama

Mentors: 
Josh Gargus and Yoshiki Ohshima

Level:
Moderate to Difficult


Overview:
Kedama is an extension of the Etoys tile-scripting environment to support exploration of the emergent properties of decentralized systems, such as traffic jams or ant colonies, by simulating them with massive numbers of end-user scriptable objects.  As part of Etoys, Kedama has a large installed base of users; in particular, it is installed on each XO computer produced by the One Laptop Per Child project (http://laptop.org).  OpenCL is a low-level, industry-standard framework for performing general-purpose computation on the GPU.


Technical Details:
The goal of the project is to take advantage of the enormous power of modern GPUs to enable end-users to construct larger and more elaborate simulations.  The successful applicant will use the existing Squeak OpenCL bindings to implement the current Kedama primitives, and to implement a GPU-friendly memory model (although Kedama's end-user model is massively parallel, the current implementation takes some reasonable shortcuts in it's CPU implementation).  Once these goals have been achieved, performance will be profiled to identify the hotspots most amenable to optimization (we have an idea where these will be, but you never know until you measure).  Based on this data and the amount of time remaining, suitable optimizations will be chosen and implemented.

The precise details of the project are open-ended, and there is no shortage of technical challenges for a sophisticated applicant to solve.  However, since the intent is to make the result immediately available to the existing Kedama/Etoys community, it is better to set conservative goals to ensure a production-quality result.  For similar reasons, it is essential to minimize changes to Kedama's end-user semantics, so that existing Kedama programs continue to run. The applicant's proposal should reflect this, although they are encouraged to propose a plan with optional, more ambitious goals that will be attempted if time permits.


Benefits to Student:
The student will improve their skills in two main areas: high-performance computing and end-user design.  They will implement cutting-edge GPGPU techniques in Squeak, and learn how to efficiently harness the power of the GPU from a highly-dynamic language (i.e. how the Squeak/OpenCL binding is implemented).  Secondly, the student will gain insight into a real-world design problem: the tension between end-user accessibility and maximum performance for a sizable community of users.  


Benefits to Community:
Two separate communities will benefit from this project: Squeak and Kedama/Etoys.  The educational goals of Kedama/Etoys will be served by enabling users to undertake even more ambitious simulations.  Squeak will gain an application that provides an example of using massively-parallel hardware from a highly dynamic language.  Given Squeak's popularity in higher education, and the interest already shown in Squeak's young OpenCL bindings, this project will be sure to draw the interest of many talented students in the years to come.





On Mar 8, 2010, at 10:55 PM, Josh Gargus wrote:

> Here is the project description that Yoshiki and I arrived at:
> 
> Kedama is an extension of the Etoys tile-scripting environment to support exploration of the emergent properties of decentralized systems, such as traffic jams or ant colonies, by simulating them with massive numbers of end-user scriptable objects.  As part of Etoys, Kedama has a large installed base of users; in particular, it is installed on each XO computer produced by the One Laptop Per Child project (http://laptop.org).  OpenCL is a low-level, industry-standard framework for performing general-purpose computation on the GPU.
> 
> The goal of the project is to take advantage of the enormous power of modern GPUs to enable end-users to construct larger and more elaborate simulations.  The successful applicant will use the existing Squeak OpenCL bindings to implement the current Kedama primitives, and to implement a GPU-friendly memory model (although Kedama's end-user model is massively parallel, the current implementation takes some reasonable shortcuts in it's CPU implementation).  Once these goals have been achieved, performance will be profiled to identify the hotspots most amenable to optimization (we have an idea where these will be, but you never know until you measure).  Based on this data and the amount of time remaining, suitable optimizations will be chosen and implemented.
> 
> The precise details of the project are open-ended, and there is no shortage of technical challenges for a sophisticated applicant to solve.  However, since the intent is to make the result immediately available to the existing Kedama/Etoys community, it is better to set conservative goals to ensure a production-quality result.  For similar reasons, it is essential to minimize changes to Kedama's end-user semantics, so that existing Kedama programs continue to run. The applicant's proposal should reflect this, although they are encouraged to propose a plan with optional, more ambitious goals that will be attempted if time permits.
> 
> In addition to learning cutting-edge GPGPU techniques, the student will gain insight into the tension between end-user accessibility and maximum performance for a real community of users.  Two separate communities will benefit from this project: Squeak and Kedama/Etoys.  The educational goals of Kedama/Etoys will be served by enabling users to undertake even more ambitious simulations.  Squeak will gain an application that provides an example of using massively-parallel hardware from a highly dynamic language.  Given Squeak's popularity in higher education, and the interest already shown in Squeak's young OpenCL bindings, this project will be sure to draw the interest of many talented students in the years to come.
> 
> 
> Thank you Mariano, Janko, and ESUG for helping Squeak to benefit from GSoC!
> 
> Cheers,
> Josh
> 
> 
> 
> On Mar 7, 2010, at 11:33 PM, Josh Gargus wrote:
> 
>> Yoshiki and I are willing to mentor a project to add OpenCL support to Kedama.  We're currently hammering out our project description; hopefully we'll have something tomorrow.
>> 
>> Thanks,
>> Josh
>> 
>> 
>> On Mar 6, 2010, at 4:04 AM, Mariano Martinez Peck wrote:
>> 
>>> Hi smalltalkers. I have been asked to be the admin of GSoC 2010. The backup or second admin is Janko Mivšek. As you may know, Squeak has participated in GSoC 2007, 2008 but failed (not accepted) in 2009. We are not sure if we will succeed this year but we will try to do as much as possible. 
>>> 
>>> We think that one of the most important reasons why we failed in 2009 is that Google was looking for bigger communities that Squeak. This is why this year we all go under the ESUG umbrella. We present ESUG as the mentor organization and we cover ALL open-source Smalltalk dialects, not only Squeak. Pharo, Smalltalk/X, GNU Smalltalk, Cuis..they are all invited to participate. Also cross platform projects like Seaside, AidaWeb, Magma, etc are welcome.
>>> 
>>> <forThoseWhoDoesntKnowWhatGSoCIs>
>>> It is a Google program that support (money) students to work on different open-source projects. Google doesn't talk or manage directly to the students but trough "Mentoring Organisations". Those organizations have to apply to GSoC. They have to give a lot of information, included a list of ideas/projects. Each project has a description and a mentor. Then the students apply for each project. If the organization gets selected by Google they will tell you how many "slots" they give. Suppose they give 5 but we have 20 projects....then we vote and the most voted projects win. The student has to do the project and the mentor has to help and guide him. The mentor receives 500 USD and the student 4500USD.
>>> For more information read: http://code.google.com/soc/
>>> </forThoseWhoDoesntKnowWhatGSoCIs>
>>> 
>>> The most important thing is the deadlines we have. We started late so we are very near to the first deadline which is 12/03/2010 (less than one week). For that deadline we need to submit all the information of the mentor organization (answering several questions) and give the list of ideas/projects and the mentors of that. 
>>> 
>>> We have created a webpage (Thanks Janko!!) where we will put all the information. We will make this page public soon (we still need to review a couple of things).
>>> But for the moment we would REALLY appreciate if tell us your ideas. To do this, just answer to this email. Then we will collect the information and put in the website. For each idea you need:  a short title and a paragraph (for the moment) explaining the idea.
>>> After, we need that the people that are willing to be mentors start to apply as mentors...please, consider yourself being mentor. Sometimes it is not that difficult. I mean, don't be shy as sometimes being helpful, being aware of the dates, answering emails, etc is more important than the Smalltalk knoweldege. We can have a lot of ideas, but we need also mentors for that. We even would need a "substitute" for each mentor...
>>> 
>>> Just as an example you can see the ideas of the previous years:
>>> 2007: http://wiki.squeak.org/squeak/5936
>>> 2008: http://wiki.squeak.org/squeak/6031
>>> 2009: http://wiki.squeak.org/squeak/6120
>>> 
>>> That's all for the moment. 
>>> 
>>> Cheers
>>> 
>>> Mariano
>>> 
>>> 
>> 
>> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100309/1b439347/attachment.htm


More information about the Squeak-dev mailing list