Workshops, Tutorials and Panels Submissions
Accepted tutorials
Tutorial 1 May 16th 14h - Room 1
- Mohamed Ba khouya, Université de Technologie de Belfort-Montbéliard Partitioned Global Address Space Programming Model More info
PGAS programming languages provide ease-of-use through a global shared address space while emphasizing performance by providing locality awareness and a partition of the address space. Many new Partitioned Global Address Space (PGAS) programming languages have recently emerged and are becoming ubiquitously available on nearly all modern parallel architectures. Examples of PGAS languages include the Unified Parallel C (UPC), Co-array Fortran, and Titanium languages. In this tutorial, we will focus on the UPC programming language which is based on C and extended with global pointers and data distribution declarations for shared data. In this language, a number of threads can work independently in a Simple Program Multiple Data (SPMD) model. Threads communicate through the shared memory and can access shared data while a private object may be accessed only by its own thread. The PGAS memory model, used in UPC, supports three different kinds of pointers: private pointers pointing to the shared address space, pointers living in shared space that also point to shared data, and private pointers pointing to data in the thread’s own private space. Using these features, programmers need to only specify the data to be distributed across threads and reference them through special global pointers. The aim of this tutorial is to show the features provided by PGAS programming model in comparison with the other programming models such as the Message passing and data parallel models. The focus will be on UPC as PGAS-based language by introducing their control structures and by showing its features using examples of programs.
Tutorial 3 May 16th 16h - Room 1
- Ridha Khedri, McMaster University, Canada Specification and Analysis of Software Product Families using Product Families Algebra More info
In general, software development models relate to the development of single software systems from the requirements stage to the maintenance one. This classical method of developing software is described by Parnas in 1976 as sequential completion. There, a particular system is developed completely to the delivery stage; only after that similar systems are developed by keeping large parts of the working system and changing relatively small parts of it. In 1976, Parnas introduced the notion of program family and proposed a design process for the concurrent development of the members of a program family. Since then, the notion of product family has gained a lot of attention and has found its way into the software development process in industry. Indeed, on the one hand, software developers that are pressured by the increase in the speed of time-to market and the necessity of launching new products do not build a single product but a family of similar products that share at least one feature and have well identified variability. Their goal is to target many market segments or domains. On the other hand, in embedded system development, software depends on hardware and developers need to change software specifications frequently because of hardware specification changes. Hence, developers end up with many variations of the intended system that need to be managed. Prioritizing development tasks and planning them become very challenging.
Tutorial 2 May 16th 14h - Room 2
- Antonio Nebro, University of Malaga An introduction to multi-objective optimization using metaheuristics
Many real-world optimization problems are composed of two or more contradictory functions that must be optimized at the same time. As in single-objective optimization, these problems frequently have features making them difficult to solve (NP-hard complexity, multi-modality, deceptiveness, etc.) so using stochastic techniques, such as metaheuristics, use to be mandatory in practice. However, while in the single-objective domain the optimum of the problems is a unique solution, in multi-objective optimization the optimum is a set of solutions, which introduces further difficulties in the search process.The aim of this tutorial is to give the participants an introduction to the main issues involving the optimization of multi-objective problems with metaheuristics. Fundamental concepts will be covered, including the description of classic and modern algorithms, performance criteria, benchmarking, and experimentation methodology. Besides theoretical issues, the tutorial will contain a practical component, where the jMetal framework (http://jmetal.sourceforge.net) will be used to illustrate many of the covered points.Topics to be covered include:* Multi-objective optimization fundamentals* Introduction to metaheuristics* Issues to consider in multi-objective metaheuristics* Analysis of algorithms* Performance evaluation* Open research lines
Tutorial 4 May 16th 16h - Room 2
- B. Dorronsoro, University of Luxembourg, Cellular Evolutionary Algorithms
Cellular Evolutionary Algorithms (cEAs) are a kind of EA in which the population is structured by defining neighborhoods on it. Structuring the population this way, the diversity of solutions in the population is kept for longer with respect to other EAs. This high diversity will allow cEAs to scape from local optima in which other structured and non-structured EAs get stuck, therefore providing better results.This tutorial provides a general overview on cEAs, presenting their working principles, and explaining their main features. The performance of cEAs will be compared versus other both structured and non-structured EAs. Finally, several different kinds of EAs with cellular population will be presented.
