Advanced Compiler Design ( ) Fall Semester Project Proposal. Out: Oct 4, 2017 Due: Oct 11, 2017 (Revisions: Oct 18, 2017)

Size: px
Start display at page:

Download "Advanced Compiler Design ( ) Fall Semester Project Proposal. Out: Oct 4, 2017 Due: Oct 11, 2017 (Revisions: Oct 18, 2017)"

Transcription

1 Advanced Compiler Design ( ) Fall Semester 2017 Project Proposal Out: Oct 4, 2017 Due: Oct 11, 2017 (Revisions: Oct 18, 2017) The goal of the project is to implement, test, and evaluate an advanced compiler optimization, program analysis or language feature. 1 General Concerns You may choose to implement an optimization technique or program analysis from the literature or a known feature from another similar programming language. However, to obtain the highest possible grade, you have to incorporate and experiment with your own ideas. Alternatively, you can come up with some ideas that (to your and to our knowledge) have not been implemented before. For example, this could be a specific combination of optimization techniques or a language feature that comes from a different domain or is new altogether. You are required to do an evaluation of your implementation. For optimizations, your evaluation will naturally be about performance. For language features, this is not necessarily the case. For example, if you implement interfaces, you may (and probably should) evaluate the performance of interface calls, but you may also evaluate the usability aspect, e.g., by comparing your design to other languages. 1

2 2 Schedule & Deliverables During the course of the project, you are required to provide various deliverables and presentations to show your progress. Project Proposal - Due: October 11, The project proposal is an outline of what you plan to achieve by the end of the semester. It has two forms: a written proposal with an extent of one to three pages and a three to five minute oral presentation Describe the objective of the project, the basic approach, your own ideas, and how you plan to evaluate your implementation. In addition, specify which parts you plan to complete for the milestone (see below). Please stick to these limits (number of pages, length of presentation). You will present your project proposal in class on the 11th of October, Submit a first version of the written proposal until 08:00 am on the same day (i.e., before the presentations) using your team s svn directory. Put the document into a file called projectplan.pdf and the slides (if you want to use any) into a file projectplan slides.pdf (.pptx is also ok). After the presentations, the assistants may give you feedback and ask you to adapt your proposal. After you receive the feedback you will have a couple of days to revise your proposal and submit a final version by October 18, The final version will be graded (and contribute towards your final grade, see the web page for details). You can meet the assistants on the 6th or 9th of October, 2017 to clarify any doubts that you may have and ask questions before the project proposal date. Please contact the assistants if you want to have a meeting. Milestone Presentation - Due: November 8, Four weeks after you have submitted your project proposal, you will present your first results. If you implement an optimization, an analysis, or a feature from the literature, the core parts of your implementation should be there. This allows you to spend the last six weeks for completing the implementation, experimenting with your own ideas and evaluating your project. The presentation will be oral and should take three to five minutes. Final Presentation - Tentative: December 20, At the end of the semester, you will give a final presentation of five to eight minutes, which will focus on the work of the last six weeks. You will present the results of the evaluation, the impact of your own ideas, and your conclusions. Project Report and Code - Tentative: January 5, After the final presentation, you will have time to finish your project by submitting a written report and the source code of your implementation. The report should be phrased as a scientific essay and should include some details about your implementation and evaluation. 2

3 The report must not exceed six pages of the template that will be provided on the course website. Your implementation should be correct and thoroughly tested. Unit tests, test programs, and any testing or evaluation infrastructure are part of the submission. Furthermore, we expect that the code will be well-structured and documented. 3 Project Examples This section presents some examples of possible projects. You are welcome to choose a project which is not in this list, either from the literature or based on your own ideas. Note that the listed examples are incomplete ideas, i.e., they will not give you the full grade for this course. They must be extended and combined with your own ideas. The complete ideas will be proposed and presented by you with the project proposal. Method Calls Optimization [JavaLi] Method resolution optimizations in the context of object oriented systems have been of interest to various research groups. The main idea behind these optimizations is to avoid the indirection necessary for resolving the method to be invoked for an object. Inline caching Method inlining Procedure cloning/specialization Note that you may have to perform some analysis (e.g., profiling, class hierarchy analysis) to apply these techniques. Literature. 1. Cooper et al., A Methodlogy for Procedure Cloning, Computer Languages, Volume 19, Arnold et al., A Comparative Study of Static and Profile-Based Heuristics for Inlining, DYNAMO 00 Function Memoization [JavaLi, Cetus] Memoization is the technique that aims at reducing execution time by saving the results of repeated computations with the same input. In this project, you will explore compiler level strategies to inject code in a program to perform memoization. For example, you can think of strategies to save the results of a function or the intermediate values produced in a basic block. 3

4 Literature. 1. Suresh et al., Compile-Time Function Memoization, CC Suresh et al., Intercepting functions for memoization, TACO Ding et al., A Compiler Scheme for Reusing Intermediate Computation Results, CGO Pugh et al., Incremental Computation via Function Caching, POPL 89 Object Layout and Allocation [JavaLi, Cetus] In this project, you investigate the interaction between the CPU architecture and the memory layout of objects. You will explore different strategies for representing objects in memory that differ from a simple linear layout of the fields. For example, you can think of strategies to fuse or split objects based on their access patterns or based on the ownership relationship between objects in a data structure. Literature. 1. Wimmer et al., Automatic Object Colocation Based on Read Barriers, JMLC Jaber et al., Data Structure-Aware Heap Partitioning, CC Chilimbi et al., Cache-Conscious Structure Definition, PLDI 99 Multiple Inheritance, Interfaces and Traits [JavaLi] JavaLi does not have interfaces, traits, and multiple inheritance. In this project, you implement one or more of these features in the JavaLi framework. This means that you will introduce a new kind of declaration types and perform additional semantic checks in the class or in one of its super classes. Your compiler must produce assembly code and derive object layouts for an efficient method dispatch and method execution. Try to get inspired by existing solutions, explore what are the implementation consequences from a compiler design point of view. Value Types for Javali [JavaLi] In contrast to normal classes, value types are user defined types with semantics similar to primitive types. Instances of value types may consist of multiple parts (like fields), but they do not have an identity. Value types are (also) interesting from a optimization point of view, because they can often be implemented more efficiently than classes. 4

5 Static and Dynamic Analysis [Cetus] Write a static and dynamic program analysis tool. The static part creates program statistics, such as the number of loops, parallel loops, number of shared, private, and reduction variables, etc. The dynamic part would instrument the program to determine execution times and other dynamic metrics of program sections of interest. The pass could include a performance predictor based on the results of the static and dynamic analysis. Another possibility is to present the statistics in a way that assist the software engineer in improving the parallel program. Cetus Transformation Pass [Cetus] Write a program transformation pass. One possibility is to extend one of the Cetus passes in an interesting way; e.g., run Cetus on a set of programs of your choice; see where the current passes fail to perform (private variables, induction variables, or reductions not recognized) and improve the pass to resolve the issue. Another possibility is to write a new pass that is able to detect the necessary parallelism in a program that Cetus fails to parallelize. Cetus Analysis [Cetus] This project aims at improving the analysis of Cetus for private variables, reduction variables and etc. For example, Cetus does not currently recognize private variables that are fields of a struct, or private variables that are declared in the global scope. Loop Pipelining [Cetus] A linear pipeline is a loop with cross-iteration dependences that can be partitioned into a sequence of stages such that every stage may depend only on previous stages. To parallelize such a loop we need to find the cross-iteration dependences, and then check if it is possible to partition the loop body into at least two stages. For example, if the last statement of the loop writes a variable that is read in the first statement (of the next loop iteration), then there is a single stage (no pipeline parallelism). Thus, if there exist at least two stages, the next step is to partition the loop body into a sequence of (load-balanced) stages that leads to good performance. This implies that the parallelization of a linear pipeline can be done if we know: a) which variables exhibit cross-iteration dependences and which are used only within a loop iteration, and b) how the loop body is partitioned into stages. Automatic Parallelization In this project, the compiler reads sequential (while) loops and automatically generates directives for those loops that can be parallelized by pipelining. Particularly, the directives must report the type of the variables used within the loop and must also partition the loop body into stages. The types must be similar to those used by OpenMP, e.g., private, shared, etc. The partitioning must be done using some heuristic function that estimates the execution time of 5

6 each stage. The list of private and shared variables is already given by Cetus; but it is necessary to check if the cross-iteration dependences of the loop form a linear pipeline (which is also required for partitioning). Therefore, the necessary information for the cross-iteration dependences is already in Cetus, but this information must be extracted and reported with directives that partition the loop body. Pipelining Transformation Pass This project reads sequential loops annotated with directives of the previous project and applies a transformation which generates parallel code according to some pipelining technique, e.g., PS-DSWP, LBPP, etc. All the information required by the transformation is given with directives. Literature. 1. Kamruzzaman et al., Load-balanced pipeline parallelism, SC Raman et al., Parallel-stage decoupled software pipelining, CGO 08 6

While waiting for the lecture to begin, please complete. the initial course questionnaire.

While waiting for the lecture to begin, please complete. the initial course questionnaire. SENG 475 & ECE 569A: Advanced Programming Techniques for Robust Efficient Computing (With C++) Michael Adams Department of Electrical and Computer Engineering University of Victoria Victoria, BC, Canada

More information

Advanced Compiler Construction

Advanced Compiler Construction Advanced Compiler Construction Qing Yi class web site: www.cs.utsa.edu/~qingyi/cs6363 cs6363 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science

More information

Interactive (High-fi) Prototype (Group)

Interactive (High-fi) Prototype (Group) Interactive (High-fi) Prototype (Group) Midway Milestone due at the start of your studio (Thursday/Friday Dec 1-2) Final Prototype due at the start of your studio (Thursday/Friday Dec 8-9) Writeup due

More information

Compiling Techniques

Compiling Techniques Lecture 1: Introduction 20 September 2016 Table of contents 1 2 3 Essential Facts Lecturer: (christophe.dubach@ed.ac.uk) Office hours: Thursdays 11am-12pm Textbook (not strictly required): Keith Cooper

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

OpenACC 2.6 Proposed Features

OpenACC 2.6 Proposed Features OpenACC 2.6 Proposed Features OpenACC.org June, 2017 1 Introduction This document summarizes features and changes being proposed for the next version of the OpenACC Application Programming Interface, tentatively

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today Graduate Students and Super Undergraduates... CS 553: Algorithmic Language Compilers (PLDI) look for other sources of information make decisions, because all research problems are under-specified evaluate

More information

Topics on Compilers

Topics on Compilers 4541.775 Topics on Compilers Spring 2011 Syllabus Instructor Bernhard Egger bernhard@snu.ac.kr Office Hrs 301 동 413 호 on Tuesdays, Thursdays 09:30 11:30 a.m. Lecture 302 동 106 호 on Mondays, Wednesdays

More information

Programming Project 4: COOL Code Generation

Programming Project 4: COOL Code Generation CS 331 Compilers Fall 2017 Programming Project 4: COOL Code Generation Prof. Szajda Due Tuesday, December 5, 11:59:59 pm NOTE: There will be no extensions whatsoever given for this project! So, begin it

More information

A brief introduction to OpenMP

A brief introduction to OpenMP A brief introduction to OpenMP Alejandro Duran Barcelona Supercomputing Center Outline 1 Introduction 2 Writing OpenMP programs 3 Data-sharing attributes 4 Synchronization 5 Worksharings 6 Task parallelism

More information

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus Carolyn England COD Main #: 942-4125 Voicemail Ext. 4125 Office: BIC1544B (Division Office TEC1034) Mailbox: BIC1E01 Office Hours: M 12:05 pm 1:45 pm Tu 12:05 pm 1:45 pm W 12:05 pm 1:45 pm Th 9:00 am 10:40

More information

Optimized C++ o Websites and handouts Optional: Effective C++, Scott Meyers. Fall 2013

Optimized C++ o Websites and handouts Optional: Effective C++, Scott Meyers. Fall 2013 Optimized C++ Gam 371/471/391/491 Instructor: Ed Keenan Email: ekeenan2@cdm.depaul.edu office hours: Tues 9-10 pm, Wed 3-5pm or by Appt office: CDM 830 phone: (312) 362-6747 Ed Keenan Fall 2013 Course

More information

ECE573 Introduction to Compilers & Translators

ECE573 Introduction to Compilers & Translators ECE573 Introduction to Compilers & Translators Tentative Syllabus Fall 2005 Tu/Th 9:00-10:15 AM, EE 115 Instructor Prof. R. Eigenmann Tel 49-41741 Email eigenman@ecn Office EE334C Office Hours Tu 10:15-11:30

More information

Programming Assignment IV Due Thursday, November 18th, 2010 at 11:59 PM

Programming Assignment IV Due Thursday, November 18th, 2010 at 11:59 PM Programming Assignment IV Due Thursday, November 18th, 2010 at 11:59 PM 1 Introduction In this assignment, you will implement a code generator for Cool. When successfully completed, you will have a fully

More information

DRAFT. Approach 1: Emphasize evaluation/feedback with target users

DRAFT. Approach 1: Emphasize evaluation/feedback with target users CS8803 6750 Class Project - Part 3 In part 3 of the project, your group will implement a detailed prototype of your interface. You will further develop one design idea from the three five that you generated

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

CPSC 510 (Fall 2007, Winter 2008) Compiler Construction II

CPSC 510 (Fall 2007, Winter 2008) Compiler Construction II CPSC 510 (Fall 2007, Winter 2008) Compiler Construction II Robin Cockett Department of Computer Science University of Calgary Alberta, Canada robin@cpsc.ucalgary.ca Sept. 2007 Introduction to the course

More information

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018 Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018 CSCI 136 Section 00 Instructor: Michael Cassens Office: SS 411 Office Hours: MWF 11:00-11:50 am or by appt Phone: (415) 787-0577 E-mail: michael.cassens@mso.umt.edu

More information

Case Studies in Storage Access by Loosely Coupled Petascale Applications

Case Studies in Storage Access by Loosely Coupled Petascale Applications Case Studies in Storage Access by Loosely Coupled Petascale Applications Justin M Wozniak and Michael Wilde Petascale Data Storage Workshop at SC 09 Portland, Oregon November 15, 2009 Outline Scripted

More information

F28HS Hardware-Software Interface: Systems Programming

F28HS Hardware-Software Interface: Systems Programming F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2017/18 0 No proprietary software has

More information

CSCI 565 Compiler Design and Implementation Spring 2014

CSCI 565 Compiler Design and Implementation Spring 2014 CSCI 565 Compiler Design and Implementation Spring 2014 Instructor: Description: Prerequisites: Dr. Pedro C. Diniz, e-mail pedro@isi.edu Lectures: Thursday, 8.00 10.50 AM, RTH 217, phone: (213) 740 4518

More information

The SGI Pro64 Compiler Infrastructure - A Tutorial

The SGI Pro64 Compiler Infrastructure - A Tutorial The SGI Pro64 Compiler Infrastructure - A Tutorial Guang R. Gao (U of Delaware) J. Dehnert (SGI) J. N. Amaral (U of Alberta) R. Towle (SGI) Acknowledgement The SGI Compiler Development Teams The MIPSpro/Pro64

More information

Project. C++: Inheritance III. Plan. Project. Before we begin. The final exam. Advanced Topics. Project. This week in the home stretch

Project. C++: Inheritance III. Plan. Project. Before we begin. The final exam. Advanced Topics. Project. This week in the home stretch Project C++: III Advanced Topics Othello submitted. Next submission: Team Evaluations Nov 10 th Please don t forget If solo give yourself a good evaluation! Indicate if okay to share feedback with partner

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

15-411/ Compiler Design

15-411/ Compiler Design 15-411/15-611 Compiler Design Jan Hoffmann Fall 2016 http://www.cs.cmu.edu/~janh/courses/411/16 Teaching Staff Instructor: Jan Hoffmann Office hours: Tue 10:30am-noon Thu 1:00pm-2:30pm at GHC 9105 Teaching

More information

Data-Centric Consistency Models. The general organization of a logical data store, physically distributed and replicated across multiple processes.

Data-Centric Consistency Models. The general organization of a logical data store, physically distributed and replicated across multiple processes. Data-Centric Consistency Models The general organization of a logical data store, physically distributed and replicated across multiple processes. Consistency models The scenario we will be studying: Some

More information

Enhancements in OpenMP 2.0

Enhancements in OpenMP 2.0 Enhancements in mueller@hlrs.de University of Stuttgart High-Performance Computing-Center Stuttgart (HLRS) www.hlrs.de Slide 1 Outline Timeline Clarifications/Modifications New Features Slide 2 19. Enhancements

More information

09/05: Project Plan. The Capstone Experience. Dr. Wayne Dyksen Department of Computer Science and Engineering Michigan State University Fall 2018

09/05: Project Plan. The Capstone Experience. Dr. Wayne Dyksen Department of Computer Science and Engineering Michigan State University Fall 2018 09/05: Project Plan The Capstone Experience Dr. Wayne Dyksen Department of Computer Science and Engineering Michigan State University Fall 2018 From Students to Professionals Project Plan Functional Specifications

More information

Shared Memory Programming With OpenMP Computer Lab Exercises

Shared Memory Programming With OpenMP Computer Lab Exercises Shared Memory Programming With OpenMP Computer Lab Exercises Advanced Computational Science II John Burkardt Department of Scientific Computing Florida State University http://people.sc.fsu.edu/ jburkardt/presentations/fsu

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

OpenMP 4.0 implementation in GCC. Jakub Jelínek Consulting Engineer, Platform Tools Engineering, Red Hat

OpenMP 4.0 implementation in GCC. Jakub Jelínek Consulting Engineer, Platform Tools Engineering, Red Hat OpenMP 4.0 implementation in GCC Jakub Jelínek Consulting Engineer, Platform Tools Engineering, Red Hat OpenMP 4.0 implementation in GCC Work started in April 2013, C/C++ support with host fallback only

More information

CISC 3130 Data Structures Fall 2018

CISC 3130 Data Structures Fall 2018 CISC 3130 Data Structures Fall 2018 Instructor: Ari Mermelstein Email address for questions: mermelstein AT sci DOT brooklyn DOT cuny DOT edu Email address for homework submissions: mermelstein DOT homework

More information

You must pass the final exam to pass the course.

You must pass the final exam to pass the course. Computer Science Technology Department Houston Community College System Department Website: http://csci.hccs.cc.tx.us CRN: 46876 978-1-4239-0146-4 1-4239-0146-0 Semester: Fall 2010 Campus and Room: Stafford

More information

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon)

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon) Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon) Thus spake the master programmer: A well-written program is its own heaven; a poorly written

More information

This assignment requires that you complete the following tasks (in no particular order).

This assignment requires that you complete the following tasks (in no particular order). Construction Objectives The objectives of this assignment are: (1) Implement your FCS design with high-quality code and thorough unit tests (2) Gain experience doing a task breakdown (3) Gain experience

More information

Table 1 lists the projects and teams. If you want to, you can switch teams with other students.

Table 1 lists the projects and teams. If you want to, you can switch teams with other students. University of Arizona, Department of Computer Science CSc 620 Assignment 3 40% Christian Collberg August 27, 2008 1 Introduction This is your main project for the class. The project is worth 40% of your

More information

Physical Security Reliability Standard Implementation

Physical Security Reliability Standard Implementation Physical Security Reliability Standard Implementation Attachment 4b Action Information Background On March 7, 2014, the Commission issued an order directing NERC to submit for approval, within 90 days,

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

15-740/ Computer Architecture

15-740/ Computer Architecture 15-740/18-740 Computer Architecture Lecture 19: Caching II Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 10/31/2011 Announcements Milestone II Due November 4, Friday Please talk with us if you

More information

Design of Parallel and High Performance Computing Fall 2016 About projects. Instructors: Torsten Hoefler & Markus Püschel TAs: Salvatore Di Girolamo

Design of Parallel and High Performance Computing Fall 2016 About projects. Instructors: Torsten Hoefler & Markus Püschel TAs: Salvatore Di Girolamo Design of Parallel and High Performance Computing Fall 2016 About projects Instructors: Torsten Hoefler & Markus Püschel TAs: Salvatore Di Girolamo Project: Rules Count 50% of the grade (work, presentation,

More information

Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst

Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Department of Computer Science Why C? Low-level Direct access to memory WYSIWYG (more or less) Effectively

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

Speculative Parallelization Technology s only constant is CHANGE. Devarshi Ghoshal Sreesudhan

Speculative Parallelization Technology s only constant is CHANGE. Devarshi Ghoshal Sreesudhan Speculative Parallelization Technology s only constant is CHANGE Devarshi Ghoshal Sreesudhan Agenda Moore s law What is speculation? What is parallelization? Amdahl s law Communication between parallely

More information

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Bh Practical 1 Words and Sentences This is an individual practical exercise which requires you to submit some Java programs and some text files for assessment. A system which measures software similarity

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Preface A Brief History Pilot Test Results

Preface A Brief History Pilot Test Results Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,

More information

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright Classes and Objects Object Orientated Analysis and Design Benjamin Kenwright Outline Review Previous Weeks Object Model, Complexity,.. What do we mean by Classes and Objects? Summary/Discussion Review

More information

OpenACC Course. Office Hour #2 Q&A

OpenACC Course. Office Hour #2 Q&A OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle

More information

Department of Informatics V. HPC-Lab. Session 2: OpenMP M. Bader, A. Breuer. Alex Breuer

Department of Informatics V. HPC-Lab. Session 2: OpenMP M. Bader, A. Breuer. Alex Breuer HPC-Lab Session 2: OpenMP M. Bader, A. Breuer Meetings Date Schedule 10/13/14 Kickoff 10/20/14 Q&A 10/27/14 Presentation 1 11/03/14 H. Bast, Intel 11/10/14 Presentation 2 12/01/14 Presentation 3 12/08/14

More information

Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412

Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412 COMP 412 FALL 2017 Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412 source IR Front End Optimizer Back End IR target Copyright 2017, Keith D. Cooper & Linda Torczon, all rights

More information

OpenMP Optimization and its Translation to OpenGL

OpenMP Optimization and its Translation to OpenGL OpenMP Optimization and its Translation to OpenGL Santosh Kumar SITRC-Nashik, India Dr. V.M.Wadhai MAE-Pune, India Prasad S.Halgaonkar MITCOE-Pune, India Kiran P.Gaikwad GHRIEC-Pune, India ABSTRACT For

More information

Resource and Service Trading in a Heterogeneous Large Distributed

Resource and Service Trading in a Heterogeneous Large Distributed Resource and Service Trading in a Heterogeneous Large Distributed ying@deakin.edu.au Y. Ni School of Computing and Mathematics Deakin University Geelong, Victoria 3217, Australia ang@deakin.edu.au Abstract

More information

CS535: Interactive Computer Graphics

CS535: Interactive Computer Graphics CS535: Interactive Computer Graphics Instructor: Daniel G. Aliaga (aliaga@cs.purdue.edu, www.cs.purdue.edu/homes/aliaga) Classroom: LWSN B134 Time: MWF @ 1:30-2:20pm Office hours: by appointment (LWSN

More information

SC18 OpenMP BoF Report (BoF 109) Jim Cownie, Michael Klemm 28 November 2018

SC18 OpenMP BoF Report (BoF 109) Jim Cownie, Michael Klemm 28 November 2018 SC18 OpenMP BoF Report (BoF 109) Jim Cownie, Michael Klemm 28 November 2018 Summary The OpenMP BoF was held on Wednesday 15 November 5:15pm-7:00pm. There were over 100 attendees, a slight drop from last

More information

L25: Modern Compiler Design Exercises

L25: Modern Compiler Design Exercises L25: Modern Compiler Design Exercises David Chisnall Deadlines: October 26 th, November 23 th, November 9 th These simple exercises account for 20% of the course marks. They are intended to provide practice

More information

ecampus Submission Process

ecampus Submission Process ecampus Submission Process Progress Report Submission, and Installment Submission & Feedback 1 All Progress Reports and Installment Submissions are found on the Assignments Page. 2 Individual assignments

More information

Implementation of backtrack search

Implementation of backtrack search Fall Semester, 2005 CSCE 421/821: Foundations of Constraint Processing B.Y. Choueiry Homework 3 Assigned: Thursday, September 22, 2005 Due: Tuesday, October 11, 2005 Total value: 100 points. Penalty of

More information

Winter Compiler Construction Who. Mailing list and forum

Winter Compiler Construction Who. Mailing list and forum Winter 2006-2007 Compiler Construction 0368-3133 Mooly Sagiv and Roman Manevich School of Computer Science Tel-Aviv University Who Roman Manevich Schreiber Open-space (basement) Tel: 640-5358 rumster@post.tau.ac.il

More information

Development, testing and quality assurance report

Development, testing and quality assurance report The European Open Source Market Place www.apphub.eu.com ICT Project Deliverable D2.5 Development, testing and quality assurance report This project has received funding from the European Union s Horizon

More information

6.S195: Lab 6 6-Stage SMIPS Pipeline with Simple Branch Predictor

6.S195: Lab 6 6-Stage SMIPS Pipeline with Simple Branch Predictor 6.S195: Lab 6 6-Stage SMIPS Pipeline with Simple Branch Predictor October 24, 2013 Due: Sunday November 3, 2013 Note: This lab uses a different infrastructure than the previous SMIPS lab in order to compile

More information

Overpartioning with the Rice dhpf Compiler

Overpartioning with the Rice dhpf Compiler Overpartioning with the Rice dhpf Compiler Strategies for Achieving High Performance in High Performance Fortran Ken Kennedy Rice University http://www.cs.rice.edu/~ken/presentations/hug00overpartioning.pdf

More information

East Tennessee State University Department of Computer and Information Sciences CSCI 4717 Computer Architecture TEST 3 for Fall Semester, 2005

East Tennessee State University Department of Computer and Information Sciences CSCI 4717 Computer Architecture TEST 3 for Fall Semester, 2005 Points missed: Student's Name: Total score: /100 points East Tennessee State University Department of Computer and Information Sciences CSCI 4717 Computer Architecture TEST 3 for Fall Semester, 2005 Section

More information

Modern Processor Architectures. L25: Modern Compiler Design

Modern Processor Architectures. L25: Modern Compiler Design Modern Processor Architectures L25: Modern Compiler Design The 1960s - 1970s Instructions took multiple cycles Only one instruction in flight at once Optimisation meant minimising the number of instructions

More information

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Extreme Programming is... Lightweight software development method used for small to medium-sized

More information

Lab 1: Space Invaders. The Introduction

Lab 1: Space Invaders. The Introduction Lab 1: Space Invaders The Introduction Welcome to Lab! Feel free to get started until we start talking! The lab document is located on course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ Be sure

More information

Introduction to Programming COIT 20245

Introduction to Programming COIT 20245 Introduction to Programming COIT 20245 Assessment item 1 Java Console Program Due date: Weighting: Length: Week 7 T318 24 December 2018 Refer below for complete assessment item 1 requirements (Assignment

More information

CSE Network Management (3-0-3) Fall 2004 (Term 041) Course Projects

CSE Network Management (3-0-3) Fall 2004 (Term 041) Course Projects 1 Introduction King Fahd University of Petroleum & Minerals College of Computer Sciences and Engineering CSE 552 - Network Management (3-0-3) Fall 2004 (Term 041) Course Projects Tuesday, September 21,

More information

1 of 7 8/27/2014 2:26 PM Units: Teacher: WebPageDesignI, CORE Course: WebPageDesignI Year: 2012-13 Designing & Planning Web Pages This unit will give students a basic understanding of core design principles

More information

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project

More information

New Mapping Interface

New Mapping Interface New Mapping Interface Mike Bauer NVIDIA Research 1 Why Have A Mapping Interface? Legion Program Legion Legion Mapper Scheduling is hard Lots of runtimes have heuristics What do you do when they are wrong?

More information

Interim Report Technical Support for Integrated Library Systems Comparison of Open Source and Proprietary Software

Interim Report Technical Support for Integrated Library Systems Comparison of Open Source and Proprietary Software Interim Report Technical Support for Integrated Library Systems Comparison of Open Source and Proprietary Software Vandana Singh Assistant Professor, School of Information Science, University of Tennessee,

More information

CSCE 315 Fall Team Project 3

CSCE 315 Fall Team Project 3 CSCE 315 Fall 2017 Team Project 3 Project Goal Your team is to build a system that puts together different existing web components in an application that provides a quality user interface to the joined

More information

EE/CSCI 451: Parallel and Distributed Computation

EE/CSCI 451: Parallel and Distributed Computation EE/CSCI 451: Parallel and Distributed Computation Lecture #7 2/5/2017 Xuehai Qian Xuehai.qian@usc.edu http://alchem.usc.edu/portal/xuehaiq.html University of Southern California 1 Outline From last class

More information

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309 A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48

More information

Higher National Unit specification: general information. Graded Unit 2

Higher National Unit specification: general information. Graded Unit 2 Higher National Unit specification: general information This Graded Unit has been validated as part of the HND Computing: Software Development. Centres are required to develop the assessment instrument

More information

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors An Efficient Framework for Optimizing Tensors 1 Theme: 2 Subject: Compiler Technology List of Abbreviations NA 3 Background Tensor computation arises frequently in machine learning, graph analytics and

More information

Tuesday, October 4. Announcements

Tuesday, October 4. Announcements Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design

More information

CS4961 Parallel Programming. Lecture 5: More OpenMP, Introduction to Data Parallel Algorithms 9/5/12. Administrative. Mary Hall September 4, 2012

CS4961 Parallel Programming. Lecture 5: More OpenMP, Introduction to Data Parallel Algorithms 9/5/12. Administrative. Mary Hall September 4, 2012 CS4961 Parallel Programming Lecture 5: More OpenMP, Introduction to Data Parallel Algorithms Administrative Mailing list set up, everyone should be on it - You should have received a test mail last night

More information

CS370 Operating Systems Midterm Review

CS370 Operating Systems Midterm Review CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

CURZON PR BUYER S GUIDE WEBSITE DEVELOPMENT

CURZON PR BUYER S GUIDE WEBSITE DEVELOPMENT CURZON PR BUYER S GUIDE WEBSITE DEVELOPMENT Website Development WHAT IS WEBSITE DEVELOPMENT? This is the development of a website for the Internet (World Wide Web) Website development can range from developing

More information

ADMINISTRATIVE MANAGEMENT COLLEGE

ADMINISTRATIVE MANAGEMENT COLLEGE First Semester ADMINISTRATIVE MANAGEMENT COLLEGE BACHELOR OF COMPUTER APPLICATION COURSE OUTCOME (CO) Problem solving techniques Using C CO 1: Understand the basic concepts of programming, software and

More information

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10 Mathematics/Science Department Kirkwood Community College Course Syllabus Computer Science CSC142 Bob Driggs Dean Cate Sheller Instructor 1/10 Computer Science (CSC142) Course Description Introduces computer

More information

Enabling Loop Parallelization with Decoupled Software Pipelining in LLVM: Final Report

Enabling Loop Parallelization with Decoupled Software Pipelining in LLVM: Final Report Enabling Loop Parallelization with Decoupled Software Pipelining in LLVM: Final Report Ameya Velingker and Dougal J. Sutherland {avelingk, dsutherl}@cs.cmu.edu http://www.cs.cmu.edu/~avelingk/compilers/

More information

Scalable Shared Memory Programing

Scalable Shared Memory Programing Scalable Shared Memory Programing Marc Snir www.parallel.illinois.edu What is (my definition of) Shared Memory Global name space (global references) Implicit data movement Caching: User gets good memory

More information

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:

More information

ETSI GS MEC-IEG 005 V1.1.1 ( )

ETSI GS MEC-IEG 005 V1.1.1 ( ) GS MEC-IEG 005 V1.1.1 (2015-08) GROUP SPECIFICATION Mobile-Edge Computing (MEC); Proof of Concept Framework Disclaimer This document has been produced and approved by the Mobile-Edge Computing (MEC) Industry

More information

Lesson 10B Class Design. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10B Class Design. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10B Class Design By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Encapsulation Inheritance and Composition is a vs has a Polymorphism Information Hiding Public

More information

A Modular. OpenModelica. Compiler Backend

A Modular. OpenModelica. Compiler Backend Chair of Construction Machines and Conveying Technology OpenModelica Workshop 2011 A Modular OpenModelica Compiler Backend J. Frenkel W. Braun A. Pop M. Sjölund Outline 1. Introduction 2. Concept of Modular

More information

Inheritance. Benefits of Java s Inheritance. 1. Reusability of code 2. Code Sharing 3. Consistency in using an interface. Classes

Inheritance. Benefits of Java s Inheritance. 1. Reusability of code 2. Code Sharing 3. Consistency in using an interface. Classes Inheritance Inheritance is the mechanism of deriving new class from old one, old class is knows as superclass and new class is known as subclass. The subclass inherits all of its instances variables and

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 15: Code Generation I (Intermediate Code) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ss-14/cc14/

More information

AC59/AT59/AC110/AT110 OPERATING SYSTEMS & SYSTEMS SOFTWARE DEC 2015

AC59/AT59/AC110/AT110 OPERATING SYSTEMS & SYSTEMS SOFTWARE DEC 2015 Q.2 a. Explain the following systems: (9) i. Batch processing systems ii. Time sharing systems iii. Real-time operating systems b. Draw the process state diagram. (3) c. What resources are used when a

More information

Final Project Report

Final Project Report 16.04.02 Final Project Report Document information Project Title HP Tool Repository of SESAR standard HP methods and tools Project Number 16.04.02 Project Manager DFS Deliverable Name 16.04.02 Final Project

More information

Shared Memory Programming with OpenMP

Shared Memory Programming with OpenMP Shared Memory Programming with OpenMP (An UHeM Training) Süha Tuna Informatics Institute, Istanbul Technical University February 12th, 2016 2 Outline - I Shared Memory Systems Threaded Programming Model

More information

CSC 111 Introduction to Computer Science (Section C)

CSC 111 Introduction to Computer Science (Section C) CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming

More information

More Data Locality for Static Control Programs on NUMA Architectures

More Data Locality for Static Control Programs on NUMA Architectures More Data Locality for Static Control Programs on NUMA Architectures Adilla Susungi 1, Albert Cohen 2, Claude Tadonki 1 1 MINES ParisTech, PSL Research University 2 Inria and DI, Ecole Normale Supérieure

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 15: Code Generation I (Intermediate Code) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ss-14/cc14/

More information

Who are we? Andre Platzer Out of town the first week GHC TAs Alex Crichton, senior in CS and ECE Ian Gillis, senior in CS

Who are we? Andre Platzer Out of town the first week GHC TAs Alex Crichton, senior in CS and ECE Ian Gillis, senior in CS 15-411 Compilers Who are we? Andre Platzer Out of town the first week GHC 9103 TAs Alex Crichton, senior in CS and ECE Ian Gillis, senior in CS Logistics symbolaris.com/course/compiler12.html symbolaris.com

More information