Advanced Multiprocessor Programming

Similar documents
Advanced Multiprocessor Programming

Introduction. Mario Di Francesco. January 12, Course T Spring 2015 Seminar on Internetworking

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

Joint Study Application Japan - Outgoing

Education: Integrating Parallel and Distributed Computing in Computer Science Curricula

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

Microcontroller VU

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Computer Science 141: Computing Hardware Course Information Fall 2012

Data Structures and Algorithms

Ecole Polytechnique Fédérale de Lausanne EPFL School of Computer and Communication Sciences IC. School of Computer and Communication Sciences

CS Course Missive

Syllabus for CHEM 4660 Introduction to Computational Chemistry Spring 2010

Orientation Programme

Humboldt-Universität zu Berlin

Information System Design and Development (Advanced Higher) Unit. level 7 (12 SCQF credit points)

TURKU LAW SCHOOL TURKU LAW SCHOOL (TLS) STUDYING IN THE FACULTY OF LAW TLS coordinator Riikka Matikainen. January

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

BSM 2801, Sport Marketing Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes. Credits.

Shank, Matthew D. (2009). Sports marketing: A strategic perspective (4th ed.). Upper Saddle River, NJ: Pearson/Prentice Hall.

CS177 Python Programming

STUDY ABROAD INFORMATION MEETING

ENME 605 Advanced Control Systems, Fall 2015 Department of Mechanical Engineering

Applying Learn Team Coaching to an Introductory Programming Course

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

University clearing advice/contact details for most common destinations for BHASVIC students

ENG 111 Achievement Requirements Fall Semester 2007 MWF 10:30-11: OLSC

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

Math Pathways Task Force Recommendations February Background

Coding II: Server side web development, databases and analytics ACAD 276 (4 Units)

TU-E2090 Research Assignment in Operations Management and Services

Curriculum for the doctoral (PhD) programme in Natural Sciences/Social and Economic Sciences/Engineering Sciences at TU Wien

CS 101 Computer Science I Fall Instructor Muller. Syllabus

Fall Semester All deadlines are at 12:00 midnight unless otherwise stated.

Computer Organization I (Tietokoneen toiminta)

Cross Language Information Retrieval

LEARNING AGREEMENT FOR STUDIES

Level 6. Higher Education Funding Council for England (HEFCE) Fee for 2017/18 is 9,250*

Spring 2015 Online Testing. Program Information and Registration and Technology Survey (RTS) Training Session

Penn State University - University Park MATH 140 Instructor Syllabus, Calculus with Analytic Geometry I Fall 2010

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

Computer Architecture CSC

Project Management for Rapid e-learning Development Jennifer De Vries Blue Streak Learning

EPI BIO 446 DESIGN, CONDUCT, and ANALYSIS of CLINICAL TRIALS 1.0 Credit SPRING QUARTER 2014

Laboratorio di Intelligenza Artificiale e Robotica

CS 100: Principles of Computing

Required Text: Oltmanns, T. & Emery, R. (2014). Abnormal Psychology (8th Edition) ISBN-13: ISBN-10:

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

International Business Principles (MKT 3400)

Course Syllabus Chem 482: Chemistry Seminar

General Microbiology (BIOL ) Course Syllabus

Master in International Economics and Public Policy. Christoph Wirp MIEPP Program Manager

An Introduction to Simio for Beginners

FIN 571 International Business Finance

1. Welcome and introduction from the Director of Undergraduate Studies

Agent-Based Software Engineering

Foothill College Summer 2016

TEACHING AND EXAMINATION REGULATIONS (TER) (see Article 7.13 of the Higher Education and Research Act) MASTER S PROGRAMME EMBEDDED SYSTEMS

Syllabus CHEM 2230L (Organic Chemistry I Laboratory) Fall Semester 2017, 1 semester hour (revised August 24, 2017)

Learning Methods for Fuzzy Systems

Course outline. Code: ICT310 Title: Systems Analysis and Design

Training Programme for Doctoral Thesis Supervisors in University of Turku

MBA 5652, Research Methods Course Syllabus. Course Description. Course Material(s) Course Learning Outcomes. Credits.

English (native), German (fair/good, I am one year away from speaking at the classroom level), French (written).

FONDAMENTI DI INFORMATICA

Texas A&M University-Central Texas CISK Comprehensive Networking C_SK Computer Networks Monday/Wednesday 5.

ACCOUNTING FOR MANAGERS BU-5190-OL Syllabus

Computer Science 1015F ~ 2016 ~ Notes to Students

Courses in English. Application Development Technology. Artificial Intelligence. 2017/18 Spring Semester. Database access

Computer Science (CS)

LINCOLN CHRISTIAN UNIVERSITY 2018 Spring Graduate & Seminary Class Schedule

Protocols for building an Organic Chemical Ontology

Form no. (12) Course Specification

LEARNING AGREEMENT FOR STUDIES

(Sub)Gradient Descent

T Seminar on Internetworking

Introduce yourself. Change the name out and put your information here.

IPHY 3410 Section 1 - Introduction to Human Anatomy Lecture Syllabus (Spring, 2017)

Ruggiero, V. R. (2015). The art of thinking: A guide to critical and creative thought (11th ed.). New York, NY: Longman.

Welcome Master Students!

CONCEPT MAPS AS A DEVICE FOR LEARNING DATABASE CONCEPTS

Today s Presentation

Firms and Markets Saturdays Summer I 2014

Course INTRODUCTION TO DEGREE PROGRAM EXPECTATIONS: WHAT FACULTY NEED TO KNOW NOW

SYLLABUS: RURAL SOCIOLOGY 1500 INTRODUCTION TO RURAL SOCIOLOGY SPRING 2017

Software Development: Programming Paradigms (SCQF level 8)

BHA 4053, Financial Management in Health Care Organizations Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes.

IAT 888: Metacreation Machines endowed with creative behavior. Philippe Pasquier Office 565 (floor 14)

Improving Fairness in Memory Scheduling

B. How to write a research paper

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

Smiley Face Feedback Form

Ericsson Wallet Platform (EWP) 3.0 Training Programs. Catalog of Course Descriptions

Welcome to, new Master students! Dag Langmyhr head of studies

Syllabus Foundations of Finance Summer 2014 FINC-UB

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Using dialogue context to improve parsing performance in dialogue systems

Developing a TT-MCTAG for German with an RCG-based Parser

GACE Computer Science Assessment Test at a Glance

Patterns for Supervising Thesis Projects

Transcription:

Advanced Multiprocessor Programming Vorbesprechung Jesper Larsson Träff, Sascha Hunold traff@par. Research Group Parallel Computing Faculty of Informatics, Institute of Information Systems Vienna University of Technology (TU Wien)

The takeaway Lecture: Monday, 10:00 (s.t!)-12:00, Gusshausstrasse 25-29, EI 6 Eckert Exercises: Two batches, Thursdays, 10:00-12:00, EI 6 Eckert Project presentation: One Thursday, 10:00-12:00, EI 6 Eckert Project hand-in: 26.6. No extension. Machine accounts 27.3 Exam: 30.6-4.7, in Favoritenstrasse 16. Sign up in TISS Course HP (+TISS+TUWEL): http://www.par.tuwien.ac.at/teaching/2017s/184.726.html

The facts and the problems Modern multi-core processors (2, 4,, 80 cores + multi/hyperthreading) do not really correspond to standard theoretical models (PRAM) are very, very difficult to program efficiently: performance and correctness This course: Advanced programming techniques in theory and practice for modern multi-core processors (but not GPUs): How to implement traditional constructs like locks and barriers efficiently How to program without locks and barriers: data structures and algorithms What work-stealing is and how to use it

Formalities VU (Lecture-Exercises-Project) 4.5 ECTS (=112.5 hours of work) Breakdown: Lecture 1.5 ECTS Exercises 1.0 ECTS Programming Project: 2.0 ECTS Participation MANDATORY, credit given based on Participation, Blackboard Exercises, Programming Project, and Exam

Detailed break-down Planning, intro ( Vorbesprechung ): 2h Lectures: 15 x 2h = 30h Preparation: 15 x 2.5h = 22.5h Project/Exercises: 50h Exam, including preparation: 8h Total: 112.5h = 4.5 ECTS

Lecture: Monday, 10.00 (s.t!) - 12.00, EI 6 Gusshausstrasse 25-29 Thursday, 10.00 12.00, also EI 6: by need, for exercises and discussion Sprechstunde (Jesper Larsson Träff, Sascha Hunold): by appointment Email: traff@par., hunold@par.

Sign-up required (deadline 31.3, TISS) Sign-out if you don t follow the lecture (mid-april) Theory exercises should be done individually (discussions encouraged ) Project in groups of 2 (sign-up required) Get machine account via TUWEL: 27.3 (will be enabled this week)

Topics, Goals Basic understanding of principles and practice of thread-based shared-memory multiprocessor programming Principles/theory: Synchronization and coordination mechanisms Scope and limitations Correctness: safety and liveness Practice: Implementation of basic synchronization mechanisms Fundamental (lock- and wait-free) data structures Memory models C++ threads, CilkPlus, Supporting higher-level shared memory programming models: Task parallel models by work-stealing (Transactional memory)

Literature/Material Book: Maurice Herlihy (Brown), Nir Shavit (Tel Aviv): The Art of Multiprocessor Programming. Morgan Kaufmann Publishers, 2008, revised 1 st edition, 2012 Lecture slides, additional papers Recommended: buy it! Course material: http://www.par.tuwien.ac.at/teaching/2017s/184.726.html

Michel Raynal: Concurrent programming: Algorithms, Principles, and Foundations. Springer, 2013 Gadi Taubenfeld: Synchronization Algorithms and Concurrent Programming. Pearson/Prentice Hall 2006

Synthesis lectures on computer architecture. Morgan&Claypool Michael L. Scott: Shared-Memory Synchronization, 2013 Daniel J. Sorin, Mark. D. Hill, David A. Wood: A Primer on Memory Consistency and Cache Coherence, 2011

Parallel computing background (also wikipedia.org)

Approx. Coverage Chapters 1-5 (6), Chapters 7, 9, 10, 11, (12?), 13-16, (17?) Work-stealing and memory models from other sources Prerequisites: Introduction to Parallel Computing Algorithms and data structures C/C++ (or Java) programming Possible follow-up: Parallel Algorithms (PRAM, Scheduling) HPC Distributed Algorithms (Ulrich Schmid)

Exercises/Project Theoretical exercises from book, hand-in and discussion/presentation on blackboard Two slots Small programming project: Implementation and benchmarking (comparison) of lock-free data structure(s) and other material from the lectures Implementation in C++ threads or C with threads, possibly with CilkPlus (or PHEET) Latex template will be available. Follow instructions on how/what to hand in

Exercises: 2 batches, hand-in and blackboard (March&May) 30.3 (Thursday) 4.5 (Thursday) Project is done in groups of 2 Project: 8.5 (Monday): Project topic presentation (by me) 8.6 (Thursday): Project status presentation (by you: each group gives a 10-15 minute overview of what it is doing) 26.6: Project hand-in (fixed deadline, no extension) EXAM: Early July (30.6-4.7) or August

System Possible to start developing on own PC/laptop (no lab access) Benchmarking/testing: Saturn shared-memory node at TUWien: 4xAMD magny cours 12-core Opteron 6168 processors 128GByte main memory, 1.9GHz, total number of cores 48 Possibly also: mars.par.tuwien.ac.at Name: saturn.par.tuwien.ac.at More later (get account via TUWEL till 27.3)

Grading/participation Attending lectures and exercises (MANDATORY) Active participation Solving the exercises, presentation on the blackboard (theoretical exercises, hand-in of practical programming exercise) Group examination for project part NOTE: You only learn by doing exercises and project by yourself. Copying will result in grade 6 Discussion with other groups encouraged, but hand in your own solution Don t forget: EVALUATE THE COURSE by end of semester (TISS)

Project hand-in: Short description of problem, your solution Some argument for correctness, testing procedure The required tests/benchmark comparisons (plots, tables) Both correctness and performance are important! Grade weighting: ¼ for exercises, ½ for project, ¼ for exam Solving in group: Active collaboration, 2*100%, NOT 2*50% Both members get same grade (unless blatantly different) Both members must understand all aspects of solutions

Exam Oral, per group, based on project, but can cover whole lecture Ca. ¾ hour Group members get same grade (unless blatantly clear that work was not joint)

Plan 6.3: Vorbesprechung 13.3: Intro, Mutual exclusion problem and solutions, impossibility 20.3: Constructions with registers 27.3: Relative power of synchronization operations, correctness 30.3: Exercises (I) NB: Thursday 3.4: Relative power of synchronization operations, universality 24.4: Practical lock implementations 4.5: Exercises (II) NB: Thursday 8.5.: Data structures (I): List-based sets + Projects 15.5.: Data structures (II): Queues, Stacks 22.5: Data structures (III): Skiplist 29.5: Data structures (IV): Hash tables 12.6.: Memory consistency models 29.6.: Work-stealing theory 26.6: TBA 30.6-4.7: EXAMS Easter: 10.&17.4. Whitsun: 5.6. May 1st

Follow-up Project (12.0 ECTS) Seminar in, WS17, (Seminar vorbesprechung 23.3.17) Parallel Algorithms (WS17: VU, 3.0 ECTS) High Performance Computing (: VU, 4.5 ECTS) Master s Thesis (30.0 ECTS) Talks in the group everybody is welcome, see http://www.par.tuwien.ac.at/talks-guests.html