Transactional Programming EE 4984/5984 Sandeep Hans ECE Department Virginia Tech
Who is the instructor? Sandeep Hans PhD (Technion, Israel, 2015) Joined Virginia Tech, Fall 2015 Works in SSRG group as Post Doctoral Research Associate Major focus on theoretical foundations of Transactional Memory
Course Schedule Mondays, Wednesdays, 12:30 – 1:45pm 261 Durham Hall Some guest lectures Dr. Roberto Palmieri (Res Asst Prof, SSRG) Dr. Sebastiano Peluso (Res Asst Prof, SSRG)
Contacts and GTA Instructor sandeep.hans@vt.edu, 540-449-5663 Office: 454 Durham Office hours: Wednesdays: 3:45-5pm
Course Objectives Understanding principles and practice of Transactional Memory programming How to ensure that a TM is correct? Consistency conditions How to get good performance? Progress guarantees
Course structure Principles first Practice later
Prerequisites Graduate standing Undergraduate OS or Embedded Systems course Knowledge of basic concurrent programming in Java, or in C/C++ (augmented with a threads package such as PThreads), or in C# (Can also be achieved otherwise)
Textbooks and papers Tim Harris, James Larus, Ravi Rajwar, Transactional Memory, 2nd Edition, Morgan and Claypool Publishers, 2010 Recommended: Rachid Guerraoui, Paolo Romano. Transactional Memory. Foundations, Algorithms, Tools, and Applications, Springer, 2015 Rachid Guerraoui and Michal Kapalka. Principles of Transactional Memory, Morgan & Claypool, 2010 Maurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming, Revised Reprint, Morgan Kaufmann, 1st edition, 2012 Papers from literature (Canvas)
Assignments (Theory and Programming) Grading (tentative) Type of graded work Number Total % of final grade Assignments (Theory and Programming) 5 50% (10% each) Quiz 1 10% Programming Project (Max group size: 2) 20% Final Exam The course is planned to have 5 assignments, where each consists of question(s) and programming work. Each of these assignments counts as 10% of the final grade. One take-home quiz is planned to be distributed to students, and it counts as 10% of the final grade. A programming project is required, and it weights 20% of the final grade. The final exam contributes to 20% of the final grade. - Project: Substantial implementation related to, or complimentary to course topics – A prospective topic list is TBA in Canvas – Propose your own (e.g., related to your thesis research)
Website Course Website Canvas (canvas.vt.edu) Syllabus, lecture slide, homeworks, projects, etc. Bring lecture slides to class Discussion forum for discussions Lectures, projects, etc. Announcements The course is planned to have 5 assignments, where each consists of question(s) and programming work. Each of these assignments counts as 10% of the final grade. One take-home quiz is planned to be distributed to students, and it counts as 10% of the final grade. A programming project is required, and it weights 20% of the final grade. The final exam contributes to 20% of the final grade. - Project: Substantial implementation related to, or complimentary to course topics – A prospective topic list is TBA in Canvas – Propose your own (e.g., related to your thesis research)
Miscellaneous Honor code policy Special needs, feedback, suggestions? VT’s honor code is expected in all phases of course All work is expected to be the original work of individual student Special needs, feedback, suggestions? Talk to instructor See syllabus in Scholar The course is planned to have 5 assignments, where each consists of question(s) and programming work. Each of these assignments counts as 10% of the final grade. One take-home quiz is planned to be distributed to students, and it counts as 10% of the final grade. A programming project is required, and it weights 20% of the final grade. The final exam contributes to 20% of the final grade. - Project: Substantial implementation related to, or complimentary to course topics – A prospective topic list is TBA in Canvas – Propose your own (e.g., related to your thesis research)