Accelerators to Applications

Slides:



Advertisements
Similar presentations
Chapter 1: INTRODUCTION TO DATA STRUCTURE
Advertisements

Analysis & Design of Algorithms (CSCE 321)
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Parallel and Distributed Computing Early ( and Often) Steven Bogaerts (speaker), Kyle Burke, Brian Shelburne Department of Mathematics & Computer Science.
1 Distributed Computing Algorithms CSCI Distributed Computing: everything not centralized many processors.
CS 225 Section 1 Spring Topics Software design Correctness and Efficiency Inheritance Data structures –Lists, Stacks, Queues –Trees –Sets, Maps.
Course Introduction CS 1037 Fundamentals of Computer Science II.
FLANN Fast Library for Approximate Nearest Neighbors
Data Structures and Programming.  John Edgar2.
Data Structures Lecture-1:Introduction
Csinparallel.org Patterns and Exemplars: Compelling Strategies for Teaching Parallel and Distributed Computing to CS Undergraduates Libby Shoop Joel Adams.
Jawwad A Shamsi Nouman Durrani Nadeem Kafi Systems Research Laboratories, FAST National University of Computer and Emerging Sciences, Karachi Novelties.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
CSCA48 Course Summary.
Hands-On Exploration of Parallelism for Absolute Beginners With Scratch Steven Bogaerts Department of Mathematics & Computer Science Wittenberg University.
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
Chapter 3 Parallel Programming Models. Abstraction Machine Level – Looks at hardware, OS, buffers Architectural models – Looks at interconnection network,
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan.
Discrete Structures and The Three-Fold Introduction to Computer Science Doug Baldwin Department of Computer Science SUNY Geneseo.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
Computing Simulation in Orders Based Transparent Parallelizing Pavlenko Vitaliy Danilovich, Odessa National Polytechnic University Burdeinyi Viktor Viktorovych,
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
Threads. Readings r Silberschatz et al : Chapter 4.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
Teaching Parallelism in a Python- Based CS1 at a Small Institution Challenges, Technical and Non-Technical Material, And CS2013 coverage Steven Bogaerts.
HPC University Requirements Analysis Team Training Analysis Summary Meeting at PSC September Mary Ann Leung, Ph.D.
BAHIR DAR UNIVERSITY Institute of technology Faculty of Computing Department of information technology Msc program Distributed Database Article Review.
CSC 421: Algorithm Design & Analysis
CSCE 210 Data Structures and Algorithms
Advanced Algorithms Analysis and Design
CSC 222: Object-Oriented Programming
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
CSC 222: Object-Oriented Programming
Parallel Patterns.
CSC 222: Computer Programming II
Data Structures and Algorithms
Planning & System installation
Introduction to Computers Computer Generations
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Exam Hints.
CSC 421: Algorithm Design & Analysis
Process Management Presented By Aditya Gupta Assistant Professor
Pattern Parallel Programming
Computer Engg, IIT(BHU)
CSC 222: Object-Oriented Programming
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
New trends in parallel computing
CSC 421: Algorithm Design & Analysis
Inculcating “Parallel Programming” in UG curriculum
Data Structures and Algorithms
Pattern Parallel Programming
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Objective of This Course
Outline Midterm results summary Distributed file systems – continued
CS3901 Intermediate Programming & Data Structures Introduction
GENERAL VIEW OF KRATOS MULTIPHYSICS
COMP60611 Fundamentals of Parallel and Distributed Systems
Distributed Computing:
EE 4xx: Computer Architecture and Performance Programming
CSCE156: Introduction to Computer Science II
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Algorithm Course Algorithms Lecture 3 Sorting Algorithm-1
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Presentation transcript:

Accelerators to Applications Supercharging the Undergraduate Computer Science Curriculum Our theme in introducing parallelism and distributed computing (PDC) concepts into our curriculum is to focus on integration, as opposed to insertion. Historically, any PDC content in an undergraduate curriculum appeared in the context of operating systems, and perhaps algorithms or an upper-level elective. It is undeniable that PDC is of such significance today that it cannot be relegated solely to such courses. Here, we outline our methodology and experiences of integrating PDC into undergraduate courses at various levels, in connection with the proposed core curriculum on PDC. We show that each course carries ample opportunities to consider PDC in a manner that is both level-appropriate and in harmony with the traditional topics of the course. CS1 First Year (core) Syllabus Programming in Python – variables, input/output, loops, strings, if statements, objects, classes, parallelism, basic data structures and algorithms, abstraction Curriculum Initiative Topics Architecture: Multicore (K) Message passing (K) Programming: Client/Server (C) Fixed number of processors (K) Critical regions (C) Integration Use multiprocessing as a medium for core Python multiprocessing – minimal syntax! Fork, join, communication, locks Medium for: classes and objects, parameter passing, modularity and abstraction, searching and sorting, pattern matching, clustering, simulations Do what you usually do, just do (some of) it in parallel. CS0 or Computer Literacy General Elective CS2+ Core Data Structures 1st/2nd Year (core) Additional Courses Syllabus Programming in Scratch – variables, loops, if statements, objects Parallelism – terminology, history, physical activities [1] and demonstrations Excel – practical applications for business and finances Access – introduction to relational databases and queries Curriculum Initiative Topics Architecture: Multicore (K) Programming: Fixed number of processors (K) Programming: Critical regions (K) Algorithms: Scalability (K) Algorithms: Broadcast (C) Algorithms: Asynchrony (K) Integration Scratch provides an easy framework for exploring concepts of parallel computing Additional Courses Under Development Programming Languages Computer Hardware Computational chemistry Bioinformatics Syllabus Programming in Java - OOP, Swing, basic algorithm analysis, generics, recursion Data structures – lists, stacks, queues, trees, maps, heaps, priority queues, graphs Parallelism – Java ForkJoin Framework, as described in [2]. Curriculum Initiative Topics Programming: Shared memory (A), Client server (K), SPMD (C), Data parallel (A), Parallel loop (C), Language extensions (A), Libraries (C), Tasks and threads (C), Computation (C) Cross Cutting: Concurrency (K), Power(K) Integration Parallelism is a medium for core CS2 topics Java Fork/Join Framework (Java 7) Recursion (divide and conquer), trees and stacks (understanding recursion and forking processes), Java generics, time and space considerations, inheritance, parameter passing and shared memory, exception handling For More Information Contact Steve Bogaerts (sbogaerts@wittenberg.edu) Kyle Burke (kburke@wittenberg.edu) Brian Shelburne (bshelburne@wittenberg.edu) Melissa Smith (smithmc@clemson.edu) Eric Stahlberg (estahlberg@gmail.com) Using Scratch for Parallel Computing Concepts Blocking versus non-blocking commands Advanced Data Structures and Algorithms 3rd/4th Year (core) Syllabus Computational modeling as an integration of natural science, computer science, and applied mathematics Experimental methods, simulation, dimensional analysis, visualization, optimization Computer implementations primarily in Mathematica Integration Mathematica Parallel Computing Toolkit gives built-in parallel programming primitives Exercises in reductions, matrix operations, parallel plotting of data To be tried for the first time spring 2012. Computational Modeling 1st/2nd year (elective) Acknowledgements Syllabus Algorithm analysis, brute force, divide-and-conquer, transformations, space and time tradeoffs, dynamic programming, greedy algorithms, iterative improvement Curriculum Initiative Topics Algorithms: Costs of computation (A) Asymptotics (A), Time(A), Space(A), Speedup(A), PRAM(A), Divide and Conquer(A) Integration Use of Chapel as an easy language to pick up for this work Pattern throughout course of sequential algorithm followed by parallelization Example applications: reductions, parallel merge sort We gratefully acknowledge the support of the National Science Foundation Grant CCF-0915805, SHF:Small:RUI:Collaborative Research: Accelerators to Applications – Supercharging the Undergraduate Computer Science Curriculum. For more information visit www.accel2apps.org