Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program

Similar documents
Course Development of Programming for General-Purpose Multicore Processors

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Multi-core Curriculum Development at Georgia Tech: Experience and Future Steps

Computer Science 4302 Operating Systems. Student Learning Outcomes

Bachelor Degree in Informatics Engineering Master courses

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Multi-core Programming System Overview

Center of Academic Excellence Cyber Operations Program 2013 Application

Maximize Performance and Scalability of RADIOSS* Structural Analysis Software on Intel Xeon Processor E7 v2 Family-Based Platforms

Multicore Parallel Computing with OpenMP

Department of Computer Science

Operating Systems 4 th Class

Computer Science. General Education Students must complete the requirements shown in the General Education Requirements section of this catalog.

High Performance Computing. Course Notes HPC Fundamentals

BLM 413E - Parallel Programming Lecture 3

Far-western University Central Office, Mahendranagar Operating System

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Scalability evaluation of barrier algorithms for OpenMP

Multi-Threading Performance on Commodity Multi-Core Processors

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

MAQAO Performance Analysis and Optimization Tool

Part I Courses Syllabus

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Weighted Total Mark. Weighted Exam Mark

Chapter 6, The Operating System Machine Level

Contents. Chapter 1. Introduction

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

Enabling Technologies for Distributed and Cloud Computing

Lecture 1 Introduction to Parallel Programming

Introduction to Cloud Computing

Chapter 1: Introduction. What is an Operating System?

Gildart Haase School of Computer Sciences and Engineering

SEMS: The SIP Express Media Server. FRAFOS GmbH

An Introduction to Parallel Computing/ Programming

Going Linux on Massive Multicore

Certifications and Standards in Academia. Dr. Jane LeClair, Chief Operating Officer National Cybersecurity Institute

COS 140: Foundations of Computer Science

EECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun

Multi-core and Linux* Kernel

Design and Implementation of the Heterogeneous Multikernel Operating System

Symmetric Multiprocessing

Software and the Concurrency Revolution

Why Threads Are A Bad Idea (for most purposes)

UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE

COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa

Master's Degree Program in Computer Science

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

Operating System Components and Services

How To Get A Computer Science Degree

Master of Science in Computer Science

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN

LS-DYNA Scalability on Cray Supercomputers. Tin-Ting Zhu, Cray Inc. Jason Wang, Livermore Software Technology Corp.

LS DYNA Performance Benchmarks and Profiling. January 2009

Masters of Science Degree Programs in Computer Science Brochure

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

CS5310 Algorithms 3 credit hours 2 hours lecture and 2 hours recitation every week

Principles of Operating Systems CS 446/646

Core Curriculum to the Course:

How To Understand And Understand An Operating System In C Programming

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Information Systems. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences.

A Flexible Cluster Infrastructure for Systems Research and Software Development

Computer Science Curriculum Revision

MOSIX: High performance Linux farm

Kashif Iqbal - PhD Kashif.iqbal@ichec.ie

IBM Software Group. Lotus Domino 6.5 Server Enablement

Study Plan Masters of Science in Computer Engineering and Networks (Thesis Track)

A Case Study - Scaling Legacy Code on Next Generation Platforms

Debugging with TotalView

OPERATING SYSTEM SERVICES

A Comparison of Distributed Systems: ChorusOS and Amoeba

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Rackspace Cloud Databases and Container-based Virtualization

Parallel Algorithm Engineering

Operating Systems: Basic Concepts and History

How To Understand The Concept Of A Distributed System

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

A bachelor of science degree in electrical engineering with a cumulative undergraduate GPA of at least 3.0 on a 4.0 scale

M.Tech. Software Systems

Operating System Structures

Performance And Scalability In Oracle9i And SQL Server 2000

Stream Processing on GPUs Using Distributed Multimedia Middleware

Faculty of Telecommunications and Space Technology

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Parallelization of video compressing with FFmpeg and OpenMP in supercomputing environment

Transcription:

Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program ITESO University Guadalajara, Jalisco México 1

Instituto Tecnológico y de Estudios Superiores de Occidente Jesuit University in Guadalajara Population Students: 8766 43.93 % Women 56.07 % Men From that population 74 Students in Networks and Communication engineering 250 Students in Computer Systems engineering 58 Students in major of Information Technology 146 Students in Electronic engineering 45 Students in Applied Informatics master degree 90 Students in Electronic Design master degree 7 Students in Integrated Circuits Design specialty Professors: 312 staff + 990 course teachers Researchers (Staff): 77 SNI Researchers (Staff): 22 1 Campus in the Institute system: ITESO Intel GDC

Parallel Programming in ITESO Bachelors Curriculum BA Information Technology Management Core B.S. Networks and Telecommunications Engineering Core B.S. Computer Systems Engineering Core 1st Year 2nd Year 3rd Year 4th Year Structured Programming Algorithms & Data Structures Object Oriented Programming Operating Platforms Multimedia Systems Distributed Systems Advanced Algorithms & Data Structures Computation Languages Computer Architecture Operating Systems Embedded Systems Basic Programming Skills and Algorithms and Data Structure Managment No Parallel Programming Low content of Parallel Programming Content High content of Parallel Programmi ng Content CS: Electives Parallel Programming Applied 3

Operating Platforms Outline CPU Architecture Assembly Language Multicore Architecture Hyper Threading and Multicore OS Processes Threads Multicore Software Impact Tasks & Threads (Win Threads) Threads Synchronization Data Races and Deadlocks Using tolls for performance & correctness Memory Management I/O Management Total 128 hrs Knowledge* 24 hrs Apply* 24 hrs 40 hrs/128 hrs = 37.5% *We are referring Bloom Taxonomy of action verbs http://www.clemson.edu/assessment/assessmentpractices/referencema terials/documents/blooms%20taxonomy%20action%20verbs.pdf 4

Outline 5 Computer System Structure Operating System Structure System Processes Threads ULT & KLT Pthreads & cloning processes Operating Systems Threading for improving performance on Multicore Architectures create their own ULT Library CPU Scheduling Scheduling for SMP/Multicore Architectures Synchronization & Concurrency Race Conditions, Deadlocks IPC Mechanisms Memory Management I/O Management File Systems Total 128 hrs Apply* 24 hrs Knowledge* 8 hrs Apply* 32 hrs 64 hrs/128 = 50% *We are referring Bloom Taxonomy of action verbs http://www.clemson.edu/assessment/assessmentpractices/reference materials/documents/blooms%20taxonomy%20action%20verbs.pdf

Distributed Systems Recently changed to: Parallel Programming & Distributed Systems Outline Parallel Programming Concepts Tools for Parallel Programming Compilers, Parallel Studio Windows Threads Parallel Programming Models & Design OpenMP MPI (Clusters Programming) Distributed Systems Introduction Sockets Programming TCP/UDP Client/Server & P2P Applications Distributed Systems Synchronization Algorithms Atomic Transactions RPCs RMIs Corba Web Services Total 128 hrs Apply* 64 hrs 64 hrs/128 = 50% *We are referring Bloom Taxonomy of action verbs http://www.clemson.edu/assessment/assessmentpractices/refer encematerials/documents/blooms%20taxonomy%20action%20ve rbs.pdf 6

Learning Outcomes (1/2) Operating Platforms Operating Systems Distributed Systems Bachelor Programs Describe HT & MC like logical & physical CPUs BA IT Understand the benefit of MC in multiprogramming environments Understand the benefit of MC in multiprogramming environments Measure the difference of HT & MC Measure the difference of HT & MC BA IT Describe how threads are implemented in an OS OS Scheduling for SMP & Multicore Problem decomposition in tasks Problem decomposition in tasks BA IT User Level Threads & Kernel Level Threads BA IT Bcs BA Information Technology Management Core B.S. Networks and Telecommunications Engineering Core B.S. Computer Systems Engineering Core Knowledge* Apply* *We are referring Bloom Taxonomy of action verbs http://www.clemson.edu/assessment/assessmentpractices/reference materials/documents/blooms%20taxonomy%20action%20verbs.pdf 7

Learning Outcomes (2/2) Operating Platforms Operating Systems Distributed Systems Bachelor Programs Threading with OS Threads (Clone) Threading with OS Threads (Windows) Threading with Posix Library (Pthreads) Threading with OS Threads (Windows) Race conditions and Deadlocks Race conditions and Deadlocks Race conditions and Deadlocks BA IT Using tools for performance and correctness How IPCs are implemented Use of IPCs for process & threads synchronization Using tools for performance and correctness Parallel Applications in Shared Memory vs. Non Shared memory BA IT Bcs BA Information Technology Management Core B.S. Networks and Telecommunications Engineering Core B.S. Computer Systems Engineering Core Knowledge* Apply* *We are referring Bloom Taxonomy of action verbs http://www.clemson.edu/assessment/assessmentpractices/reference materials/documents/blooms%20taxonomy%20action%20verbs.pdf 8

Notes developed included in our courses (In Spanish) (1/2) Introduction When and Where Parallel Programming Basic Parallel Programming Concepts Win Threads/Race Conditions/Synchronization/Deadlocks Using Parallel Studio To Analyze Applications 9

Notes developed included in our courses (In Spanish) (2/2) Designing a Parallel Application Tasks Decomposition/Tasks Scheduling/Performance Evaluation Implicit Threads OpenMP Intel Threading Building Blocks (Actually in Development) 10

Intel Challenge Multicore programming contest called ITESO-Intel Challenge. Intel as a sponsor of the competition Since Autumn 2006, Intel Challenge has been realized 6 times at ITESO Within ACM programming contest In the challenge, participants has to optimize a CPU intensive program to run in Multicore architecture. The contest aims to disseminate: What Multicore means Why parallel programming to achieve maximum performance Software industry challenges How to thread an application Using tools for correctness and maximize performance Open to undergraduate students of all universities in Guadalajara and Mexico. Las edition also included a new version of this contest aimed at high school student with Two-folded intention: Introduce high school students to Multicore programming Develop an interest to become IT professionals. 11

Faculty Training ITESO has collaborated with Intel Education in Faculty Training for to participate teaching Multi-Core programming to universities in México and Latin America. Created the Spanish version of the Multi-core Programming for Academia Module Since 2007 course has been replicated 10 times to professors of more than 50 universities http://software.intel.com/en-us/articles/iac-recognition 12

Professional Applications Projects ITESO has defined a program called Professional Application Projects (PAP) Students involved in a real-world industrial project Over a period ranging from eight to twelve months. Two consecutive school terms in order to obtain their degree. Since 2009, there have been PAPs related to Multicore Programming Involving collaboration of industrial partners Participated in the development of a traffic simulator Particularly optimizing code to perform calculations using Multicore architectures. 13