Master Studies Program: Advanced Computing in Embedded Systems

Short Description

This MSc program offers training and research opportunities in the fields of parallel and distributed computing, embedded computing and embedded system design, pertaining to important recent trends in the electronics industry, such as the increasing importance of cloud and mobile technologies. As such, the program addresses engineers in the Electronics and Telecommunications area, as well as those in the Computer Sciences, who wish to expand their knowledge and perform research in the subjects of computer architecture and embedded systems.

Motivation

The electronics and software industries are continually adapting to new market requirements and the inevitable end to Moore and Dennard scaling. Searches for alternative scaling methods have led to the increased adoption of multi-processor and heterogeneous computing systems, both in the industry and the research community. Energy efficiency has become the main focus of new designs, in both the embedded application space an the high performance computing space.

This context motivates this proposal to create an academic program which acts as a launch-pad into the electronics industry and doctoral programs, in the fields of computer engineering and embedded systems. We believe that the efficient computing solutions of the future can only be envisioned by professionals trained in all of the different flavors of computer engineering and embedded systems, both hardware and software, which are able to recognize opportunities and pitfalls in the architecture and implementation of a computing system.

Objectives

The program objectives are the following:

  • Increase the quality of human resources in the field of computer engineering

  • Stimulate computer engineering research at the University Politehnica of Bucharest

  • Support the collaboration between the university and the electronics industry

  • Support the collaboration between the Electronics and Telecommunication and Computer Science faculties

  • Support the inter-departmental collaboration within faculties

Towards the realization of these objectives, the program will provide students with technical training in relevant fields of study, but also contact with real-world research problems and an opportunity to approach such problems in an organized, scientific way, under the supervision of qualified researchers. The proposed MSc program will integrate knowledge and feedback from industry and research institutions. Currently committed partners in the program are the Romanian branches of Ixia, Freescale, and Intel.

The following sections provide an initial plan of action with regard to the curriculum and its scheduling.

Program Description

In order to reflect the recent trends in the electronics industry, offer cutting-edge knowledge to students and support research programs, we propose the implementation of the Advanced Computing and Embedded Systems Master’s Program, devoted to the following fields of study and research:

  • Parallel Computing

  • Distributed Computing

  • Energy-Aware Computing

  • Embedded Computing

  • Embedded System Design

We propose the following courses for each semester, covering three semesters, and supporting a research project which runs in parallel to the curricula and culminates in a final 4th semester dedicated full-time to the completion of each student’s research project.

1st Semester Curriculum

Microcontrollers and Embedded Systems (MES) – The goal of this course is to walk through the most typical aspects of designing an embedded system. While the general theoretical aspects will be covered as well in an introduction part of the course, focus will be in providing real life insights on how things actually work. Focus will be put on steps used for development of an embedded system, choosing of the best operating systems, development tools and solutions for the problems to be fixed.

Operating Systems (OS) – students will learn important operating-system related issues such as multi-processing, resource allocation, task scheduling, device drivers and security, pertaining both to traditional systems, and embedded systems.

Parallel Computing (PC) – the course covers topics related to the utilization of GPUs for high performance computing as well as graphics in desktop and embedded systems. The course will introduce host-accelerator systems such as GPUs, and covers aspects of parallel programming languages (CUDA, OpenCL) and techniques, program profiling, and program optimization for extracting maximum performance from a GPU system.

Digital System Design Project 1 (DSD1) – this project focuses on application of existing knowledge in programming and digital circuit design for the initial architecture definition and implementation of a digital system with practical application.

Research Project 1 (RP1) – students will learn about scientific methodology and will start to work towards their dissertation by performing state-of-the-art exploration. Students will choose a scientific topic of their interest, in an area they target as their dissertation topic, and will write a report summarising the known and open issues in the respective area, citing sources. This serves to focus later research effort for dissertation preparation on high-impact issues which have not been solved in the past.

2nd Semester Curriculum

Performance Analysis and Optimization (PAO) – this course introduces multicore and many-core computer architectures in detail, covers important aspects of their performance such as caching and IO, and teaches methodologies for the performance evaluation of systems and the performance optimization of applications on given hardware platforms.

Software Testing and Design Patterns (STDP) – this course covers well established programming practices, such as modularity, extensibility, reusability, testability and testing techniques, such as unit and security testing. The course will also cover modern software design methodologies (test-driven, agile).

Reconfigurable Computing (RC) – this course will discuss techniques for implementing complex applications in FPGA fabric, implementing FPGA offloading engines for compute-intensive tasks, design of FPGA-based embedded systems-on-chip and integration of processor systems with offloading engines in embedded systems.

Digital System Design Project 2 (DSD2) – this project builds on the experience gathered in the first semester, as students will tackle increased-complexity systems, involving processors, volatile memory, peripherals and other real-world design topics relevant tot systems on chip.

Research Project 2 (RP2) – students will learn about scientific publishing, including writing papers, presenting their results graphically, submitting papers for review and revising their work, and performing oral presentations. As a discussion and learning vehicle, students will write up the reports generated in RP1 as review papers and submit them for publication in appropriate journals.

3rd Semester Curriculum

Distributed Computing (DC) – this course introduces aspects of distributed computing, utilizing the most popular frameworks for program distribution: MPI, MapReduce and others. Students will learn how to write and debug a distributed program, aspects of program scalability, distributed computing performance profiling, and performance optimization taking into account both the computing performance of cluster nodes and the performance of the inter-node interconnections.

Compilers for HW Designers (CHWD) – The goal of this course is to present the compiler technology from the hardware designer perspective, emphasizing the design decisions that can help to create an efficient optimized compiler. As practical activity (laboratory) – follow the compiler transformations and optimizations steps that can enable or highlight different hardware mechanisms that can bring performance improvement of the hardware-software co-system.

Wireless Sensor Networks and the Internet of Things (WSNIT) – the course introduces aspects of designing an application based on wireless sensor networks, covering architectural aspects, communication, energy harvesting and saving, distributed processing of information, and hardware.

Research Project 3 (RP3) – having learned about state of the art exploration and paper writing, students will learn hot to approach a research task: design experiments, gather experimental data, analyze data, and present the results in a research paper.

4th Semester Curriculum

Integrating Research Project (IRP) – students will finalize their research projects and work towards the development of their dissertation.

Curriculum Scheduling

The curriculum work is divided in the following way:

  • 16h/week for courses (Semesters 1 to 3) or individual research work (Semester 4)

  • Each course will cover at most 5h/week, of which at most 2h/week are dedicated to teaching, and the remaining hours are dedicated to practical applications on the subject matter.