Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See

Slides:



Advertisements
Similar presentations
Guy Griffiths. General purpose interpreted programming language Widely used by scientists and programmers of all stripes Supported by many 3 rd -party.
Advertisements

GPGPU Programming Dominik G ö ddeke. 2Overview Choices in GPGPU programming Illustrated CPU vs. GPU step by step example GPU kernels in detail.
Interfaces Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Visualization Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
More Flow Control Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
PROGRAMMING Introduction To Programming Definition Types Of Programming Languages Programming Language Paradigm Translator
M AT L AB IDL &. What are MATLAB and IDL? Data processing and visualization tools –Easy, fast manipulation and processing of complex data –Visualization.
 Introduction  Algorithm  Framework  Future work  Demo.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Operational Semantics.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Jonathan Huelman CSC 415 – Programming Languages
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
Computer Science 240 Principles of Software Design.
What is R Muhammad Omer. What is R  R is the programing language software for statistical computing and data analysis  The R language is extensively.
Introduction Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
Recommendations Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Introduction to FORTRAN
Dr. Chris Musselle – Consultant R Meets Julia Dr Chris Musselle.
1 Software Construction Software Construction Chapter 1.
chap13 Chapter 13 Programming in the Large.
Introduction to Julia: Why are we doing this to you? (Fall 2015) Steven G. Johnson, MIT Applied Math MIT classes , 18.06, ,
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
The Program Development Cycle
Cosc 2150: Computer Organization
Scientific Computing Beyond Matlab Nov 19, 2012 Jason Su.
Computer Science 240 © Ken Rodham 2006 Principles of Software Design.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
Basic File Input and Output Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
Copyright © 2006 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1 Chapter 2.
1 ENERGY 211 / CME 211 Lecture 26 November 19, 2008.
1 CS 350 Data Structures Chaminade University of Honolulu.
Browsing Directories Copyright © Software Carpentry and The University of Edinburgh This work is licensed under the Creative Commons Attribution.
Linear Algebra Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Working with Arrays in MATLAB
Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Linear Algebra Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Introduction Copyright © Software Carpentry This work is licensed under the Creative Commons Attribution License See
Basic Flow Control Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
Final Review. From ArrayLists to Arrays The ArrayList : used to organize a list of objects –It is a class in the Java API –the ArrayList class uses an.
A (VERY) SHORT INTRODUCTION TO MATLAB J.A. MARR George Mason University School of Physics, Astronomy and Computational Sciences.
Linear Algebra Libraries: BLAS, LAPACK, ScaLAPACK, PLASMA, MAGMA
Basics Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Literary Nonfiction. Overview Literary nonfiction is a fast-growing genre. Readers enjoy the writer’s ability to be creative with words and be informative.
Basics Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
Beginning Fortran Introduction 13 October 2009 *Black text on white background provided for easy printing.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Jeff Howbert Introduction to Machine Learning Winter Machine Learning MATLAB Essentials.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Indexing Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
PYTHON FOR HIGH PERFORMANCE COMPUTING. OUTLINE  Compiling for performance  Native ways for performance  Generator  Examples.
A rectangular array of numeric or algebraic quantities subject to mathematical operations. The regular formation of elements into columns and rows.
High-level language programming paradigms. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Python Aliasing Copyright © Software Carpentry 2010
Programming vs. Packaged
Environment Assessment
R
Programming vs. Packaged
Introduction to cuBLAS
Brief Intro to Python for Statistics
MATLAB Programming Indexing Copyright © Software Carpentry 2011
Software Design Principles
ENERGY 211 / CME 211 Lecture 27 November 21, 2008.
Presentation transcript:

Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See for more information. Matrix Programming

Introduction Studying patients with Babbage's Syndrome How effective are available treatments? How similar are patients' responses? Can we use similarity to recommend treatments? ABC John Mary Zura

Matrix ProgrammingIntroduction Answer these questions with matrix operations How to implement them in software? Option 1: write loops –Makes programs many times longer than the corresponding mathematics –And it's hard code to debug... –...and tune

Matrix ProgrammingIntroduction Option 2: use libraries written in low-level, high-performance languages like Fortran and C –Someone else has written, debugged, and tuned all the loops –But the interface is...awkward SUBROUTINE CAXPY(N,CA,CX,INCX,CY,INCY) complex constant times vector plus vector number of elements vectors spacing

Matrix ProgrammingIntroduction Option 3: use a high-level language like MATLAB Or a library like Python's NumPy Present a data-parallel programming model –Operate on entire arrays at once –No loops! Hide details of optimizations –Particularly differences between machines All provide basically the same features –Often wrappers around the same underlying libraries

November 2010 created by Richard T. Guy Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See for more information.