- The second Asia-Pacific Programming Languages and Compilers Workshop (APPLC):This workshop aims to provide a forum for researchers and practitioners in Asia and Pacific region, as well as other global regions, to exchange innovative ideas and research experiences in programming language design, implementation and compiler techniques.
- ODES-10: 10th workshop on Optimizations for DSP and Embedded Systems : Optimizations are crucial to meet the performance, power and cost requirements that DSP and embedded systems have. The aim of the ODES workshop is to give the opportunity to researchers and practitioners working on this, to share their findings and get feedback. We think interacting with the community is crucial to do relevant research, and therefore ODES tries to maximize the interaction by carefully selecting the program committee members that review the submissions and at the workshop itself, reserving enough time for discussion.
- COSMIC:international workshop on Code OptimiSation for MultI and many Cores: Many-core architectures are quickly becoming the norm in computing devices and consumer electronics. But at present there is no consensus on how software can make best use of it. A key problem is how to discover the parallelism potentially available and then convert it into a form that can be exploited. Once we have a parallel implementation, its performance largely depends on how it is mapped to the available hardware. Solutions to these two problems form the core topic of the workshop. This workshop aims at examining different solutions to these problems.
- OpenCL for embedded heterogeneous architectures:The purpose of this tutorial is to provide an introduction to OpenCL framework with extensions – Light-Weight Computing Language(LCL) Framework. The multiprocessor architecture is gaining popularity. Much research shows the promise of the multiprocessor architecture for high performance and saving energy. But, how to utilize the multiprocessor architecture considering performance and energy is still a challenging problem. Recently, OpenCL has been proposed to address this issue. OpenCL is an open standard for parallel programming that makes building parallel programs easy. Even though OpenCL provides portability to the parallel programs written in it, there still remain portability issues in terms of performance and energy. Light-weight Computing Language framework, called LCL framework is the OpenCL framework with extensions for mobile heterogeneous computing platforms. The LCL framework is based on the OpenCL language but is specialized to meet the unique needs of mobile heterogeneous computing systems. The framework is based on GPU Ocelot.
- Code Generation Techniques for Graphics Processing Units:Books on parallel programming theory often talk about such weird beasts like the PRAM model, a hypothetical hardware that would provide the programmer with a number of processors that is proportional to the input size of the problem at hand. Modern general purpose computers afford only a few processing units; four is currently a reasonable number. This limitation makes the development of highly parallel applications quite difficult to the average computer user. However, the low cost and the increasing programmability of graphics processing units, popularly know as GPUs, is contributing to overcome this difficulty. Presently, the application developer can have access, for a few dollars, to a hardware boosting hundreds of processing elements. This brave new world that is now open to many programmers brings, alongside the incredible possibilities, also difficulties and challenges. Perhaps, for the first time since the popularization of computers, it makes sense to open the compiler books on the final chapters, which talk about very unusual concepts, such as polyhedral loops, iteration space and Fourier-Motzkin transformations, only to name a few islands in this enchanted ocean. This material consists of a three-days course, that covers, in a very condensed way, some code generation and optimization techniques that a compiler would use to produce efficient code for graphics processing units. Through these techniques, the compiler writer tries to free the application developer from the intricacies and subtleties of GPU programming, giving him more freedom to focus on algorithms instead of micro-optimizations. We will discuss a little bit of what are GPUs, which applications should target them, how the compiler sees a GPU program and how the compiler can transform this program so that it will take more from this very powerful hardware.
- MCLinker and LLVM :The tutorial targets both researchers and students who are interested in using LLVM and MCLinker. This tutorial provides a detailed look at LLVM and MCLinker, esp., how to use them and how they work together.
- Pin: The tutorial targets researchers, students, and educators alike, and provides a detailed look at Pin, both how to use Pin and how Pin works. Participants will obtain a good undersanding of the Pin API.
- Optimizing with OpenCL on Intel Xeon Phi: The tutorial deals with highly efficient programming of state-of-the-art Many-Core architectures using OpenCL, focusing on the recently announced Intel® Xeon Phi coprocessor which combines many CPU cores onto a single chip.