Introduction to Scientific Computing
|
|
- Helen Greer
- 8 years ago
- Views:
Transcription
1 Introduction to Scientific Computing what you need to learn now to decide what you need to learn next Bob Dowling University Computing Service
2 1. Why this course exists 2. Common concepts and general good practice Coffee break 3. Selecting programming languages
3 Why does this course exist? MPI e-science grid computing Condor? Basics C/Fortran Scripts!
4 Common misconceptions Any program can be copied from one machine to another. Every line in a program takes the same time to run. Programs with source code have to be built every time they're run. Everything has to fit in the same program.
5 Common concepts and good practice
6 A simple program Linear execution A B C B A D B Not constant speed A B C B D C B Repeated elements A B C B D D
7 A Lines in a script B Chunks of machine code C Calls to external libraries B Calls to other programs D
8 Parallel program A Much harder to program Single Instruction Multiple Data B B B B B C C C C C B B B B B D
9 Machine architectures CPU Memory Internal communication MIPS L2 Pipeline I/O i386 Opteron DMA i586 RAM CacheSparc Power G5 L1 Xeon bus L3 Pentium
10 Operating system support Your program Science library Support libraries System libraries Kernel C library Kernel Maths library
11 Floating point problems e.g. numerical simulations Universal principles: and worse Program Design: How computers handle numbers
12 Other problems e.g. sequence comparison text searching ^f.*x$ firebox fix fusebox Pattern matching using Regular Expressions
13 Split up the job bash Bits of the job Different tools & Glue input data Python output data gnuplot Divide and conquer graphical Fortran
14 Choose a suitable tool for each bit What tools? How to pick the right one? Pros & Cons FORTRAN MATLABPerl Java bash gnuplot Python C++ Excel SPSS
15 Glue Splitting up Gluing together 1. Pipeline 2. Shell script 3. GUI
16 Pipeline Redirection Piping make_initial < input_file process_lots post_process > output_file input_file make_initial post_process process_lots output_file Course: Unix: Introduction to the Command Line Interface
17 Shell script #!/bin/bash -e job="${1}" if [! -f "${job}.dat" ] then make_initial < "${job}.in" > "${job}.out" fi while work_to_do "$ {job}.dat" do process < "${job}.dat" > "$ {job}.new" done post_process < "${job}.dat" Course: Simple shell scripting for scientists
18 Graphical User Interface Data output User input
19 Lumps Splitting up Gluing together Objects Modules Functions Units
20 Structured programming Don't repeat yourself
21 Never repeat code a_norm = 0.0 for i in range(0,100): a_norm += a[i]*a[i] b_norm = 0.0 for i in range(0,100): b_norm += b[i]*b[i] c_norm = 0.0 for i in range(0,100): c_norm += c[i]*c[i] Repetition
22 Structured code def norm(v): v_norm = 0.0 for i in range(0,100): v_norm += v[i]*v[i] return v_norm Define a function called norm() Single instance of the code a_norm = norm(a) b_norm = norm(b) c_norm = norm(c) Calling the function
23 Structured code Test function Function code Debug function Improve function Once! Time function All good practice follows structuring.
24 Improved code def norm(v): w = [] for i in range(0,100): w.append(v[i]*v[i]) w.sort() v_norm = 0.0 for i in range(0,100): v_norm += w[i] return v_norm a_norm = norm(a) b_norm = norm(b) c_norm = norm(c) Improve function
25 More flexible code def norm(v): w = [] for i in range(0,len(v) ): w.append(v[i]*v[i]) w.sort() v_norm = 0.0 for i in range(0,len(v) ): v_norm += w[i] return v_norm a_norm = norm(a) b_norm = norm(b) c_norm = norm(c) Improve function
26 More Pythonic code def norm(v): w = [item*item for item in v] w.sort() v_norm = 0.0 for item in w: v_norm += item return v_norm a_norm = norm(a) b_norm = norm(b) c_norm = norm(c) Make function more pythonic
27 Best sort of code import library a_norm = library.norm(a) b_norm = library.norm(b) c_norm = library.norm(c) Get someone else to do all the work!
28 Libraries Written by experts In every area Learn what libraries exist in your area Use them Save your effort for your research
29 An example library Numerical Algorithms Group: NAG Roots of equations Differential equations Interpolation Linear algebra Statistics Sorting Special functions
30 Unit testing Program split into units. Test each unit individually. Programming is like sex: one mistake and you're providing support for a lifetime. Michael Sinz Catch bugs earlier. Saves time in the long term.
31 Debuggers Step through running code. Examine state as you go. Better to write debugging code in your program! Each new user of a new system uncovers a new class of bugs. Brian Kernighan
32 The optimiser Finds short cuts in your code. Leave it to the system! Premature optimisation is the root of all evil (or at least most of it) in programming. Donald Knuth Structured code optimises better. Optimisation Magic wand
33 Algorithms Time taken / Memory used vs. Size of input / Required accuracy Algorithms selected make or break programs.
34 Example: Matrix multiplication for(int i=0; i<n, i++) { for(int j=0; j<p, j++) { for(int k=0; k<q, k++) { a[i][j] += b[i][k]*c[k][j] } } } for(int k=0; k<q, k++) { for(int j=0; j<p, j++) {
35 Example: Matrix multiplication ( ) ( )( ) C11 C12 C21 C22 = A11 A12 B11 B12 A21 A22 B21 B22 M1=(A11+A22)(B11+B22) M2=(A21+A22)B11 M3=A11(B12 B22) M4=A22(B21 B11) M5=(A11+A12)B22 M6=(A21 A11)(B11+B12) M7=(A12 A22)(B21+B22) C11=M1+M2 M5+M7 C12=M3+M5 C21=M2+M4 C22=M1 M2+M3+M6
36 UCS advice Advice on libraries techniques algorithms
37 Coffee break 15 minutes Wrists Spine Eyes Caffeine addiction
38 Choosing a language What's best? available? used already? suitable?? FORTRAN MATLABPerl Java bash gnuplot Python C++ Excel SPSS
39 Classes of language Interpreted Shell Perl script Compiled Python What files get created Java What you do C,C++, Fortran What the system sees
40 Shell scripting languages Several scripting languages: job="${1}" /bin/sh /bin/sh /bin/csh /bin/bash /bin/ksh /bin/zsh #!/bin/bash /bin/tcsh
41 Shell script Suitable for Unsuitable for gluing programs together performancecritical jobs wrapping programs floating point small tasks GUIs Easy to learn complex tasks Very widely used
42 UCS courses Unix: Introduction to the Command Line Interface Simple shell scripting for scientists
43 Further shell scripting? Python!
44 High power scripting languages Python Perl Call out to libraries in other languages #!/usr/bin/python import library #!/usr/bin/perl use library;
45 Perl The Swiss army knife language Suitable for Bad first language text processing data pre-/post-processing Easy to write unreadable code small tasks CPAN: Comprehensive Perl Archive Network Widely used There's more than one way to do it. Beware Perl geeks
46 Python Batteries included Suitable for text processing Excellent first language data pre-/post-processing Easy to write maintainable code small & large tasks Built-in comprehensive library of functions Scientific Python library The Python way Code nesting style is unique
47 UCS courses Python: Introduction for absolute beginners Python: Introduction for programmers Python: Further Topics
48 UCS courses Python: Unit testing Python: Regular expressions Python: Interoperation with Fortran Python: Operating system access
49 Spreadsheets Microsoft Excel OpenOffice.org calc Apple Numbers
50 Spreadsheets Taught at school Taught badly at school! Easy to tinker Easy to corrupt data Easy to get started Hard to be systematic
51 UCS courses Excel 2007: Beginners Excel 2007: Introduction Excel 2007: Functions and Macros Excel 2007: Managing Data & Lists Excel 2007: Analysing & Summarizing Data
52 Specialist systems Database Graphs GUIs Mathematics Statistics PostgreSQL, Access, gnuplot, ploticus, Glade Mathematica, MATLAB, Maple SPSS, Stata
53 Drawing graphs Manual vs. automatic gnuplot ploticus matplotlib Gnuplot for simple graphs
54 GUIs Glade Back end: C, C++, Perl, Python Glade: Introduction to building GUIs
55 Mathematical manipulation MATLAB Mathematica
56 Mathematical manipulation Octave
57 Mathematical manipulation Suitable for fiddling Small and medium numerical work Graphical subsystem Problems additional modules often needed
58 UCS courses MATLAB: Basics MATLAB: Graphics MATLAB: Linear algebra Mathematica: Basics Mathematica: Graphics Mathematica: Linear algebra
59 Statistics Stata
60 UCS courses NB: we do not teach statistics! SPSS: Introduction for beginners SPSS: Beyond the basics Stata: Introduction Stata for regression analysis Regression analysis in R
61 Compiled languages No specialist system and scripts not fast enough Library requirement with no script interface C C++ Compiled language Fortran Java
62 source code fubar.c snafu.c main() pow() zap() pow() zap() printf() fubar.o snafu.o main() pow() zap() pow() zap() printf() compiling object files linking libc.so.6 fubar executable main() pow() zap() printf() printf()
63 Somebody else's code Unix: Building, installing and running software
64 You don't need to write the whole program in a compiled language! e.g. f2py Python Fortran
65 Compiled languages C C++ Which? Fortran Java
66 Fortran The best for numerical work Excellent numerical libraries Unsuitable for everything else Very different versions: 77, 90, 95, 2003
67 Fortran courses Fortran: Introduction to modern Fortran Python: Interoperation with Fortran
68 C The best for Unix work Excellent libraries Superceded by C++ Memory management
69 Very basic C course C: Introduction for Those New to Programming
70 C++ Extension of C Object oriented Standard template library Good general purpose language Very hard to learn well
71 Learning C++ Thinking in C++, 2nd ed. Eckel, Bruce (2003) (two volumes: 800 and 500 pages!) Programming: principles and practice using C++ Stroustrup, Bjarne (2008) harder but better for scientific computing
72 Parallel programming A Parallel programming: Introduction to MPI Parallel programming: Options and design MPI library Fortran, C, C++ B B B B B C C C C C B B B B B D
73 Java Object oriented Good general purpose language Much easier to learn and use than C++ Cross-platform Some poorly thought out libraries Multiple versions: Use >= , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6
74 Java courses Computer Lab Java courses IA: Object Oriented Programming IB: Further Java
75 Other UCS courses of interest vi editor: introduction emacs editor: introduction Programming concepts: introduction for absolute beginners Program design: organising and structuring programming tasks
76 Courses All UCS courses Scientific computing theme
77 Contacts UCS help desk Scientific computing support
HPC Wales Skills Academy Course Catalogue 2015
HPC Wales Skills Academy Course Catalogue 2015 Overview The HPC Wales Skills Academy provides a variety of courses and workshops aimed at building skills in High Performance Computing (HPC). Our courses
More informationProgramming Languages & Tools
4 Programming Languages & Tools Almost any programming language one is familiar with can be used for computational work (despite the fact that some people believe strongly that their own favorite programming
More informationNumerical Analysis. Professor Donna Calhoun. Fall 2013 Math 465/565. Office : MG241A Office Hours : Wednesday 10:00-12:00 and 1:00-3:00
Numerical Analysis Professor Donna Calhoun Office : MG241A Office Hours : Wednesday 10:00-12:00 and 1:00-3:00 Fall 2013 Math 465/565 http://math.boisestate.edu/~calhoun/teaching/math565_fall2013 What is
More informationComputational Mathematics with Python
Boolean Arrays Classes Computational Mathematics with Python Basics Olivier Verdier and Claus Führer 2009-03-24 Olivier Verdier and Claus Führer Computational Mathematics with Python 2009-03-24 1 / 40
More informationComputational Mathematics with Python
Numerical Analysis, Lund University, 2011 1 Computational Mathematics with Python Chapter 1: Basics Numerical Analysis, Lund University Claus Führer, Jan Erik Solem, Olivier Verdier, Tony Stillfjord Spring
More informationComputational Mathematics with Python
Computational Mathematics with Python Basics Claus Führer, Jan Erik Solem, Olivier Verdier Spring 2010 Claus Führer, Jan Erik Solem, Olivier Verdier Computational Mathematics with Python Spring 2010 1
More informationBeginners Shell Scripting for Batch Jobs
Beginners Shell Scripting for Batch Jobs Evan Bollig and Geoffrey Womeldorff Before we begin... Everyone please visit this page for example scripts and grab a crib sheet from the front http://www.scs.fsu.edu/~bollig/techseries
More informationChapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
More informationThe Julia Language Seminar Talk. Francisco Vidal Meca
The Julia Language Seminar Talk Francisco Vidal Meca Languages for Scientific Computing Aachen, January 16, 2014 Why Julia? Many languages, each one a trade-off Multipurpose language: scientific computing
More informationIntro to scientific programming (with Python) Pietro Berkes, Brandeis University
Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Next 4 lessons: Outline Scientific programming: best practices Classical learning (Hoepfield network) Probabilistic learning
More informationChapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
More informationPart I Courses Syllabus
Part I Courses Syllabus This document provides detailed information about the basic courses of the MHPC first part activities. The list of courses is the following 1.1 Scientific Programming Environment
More informationOutline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage
Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running
More informationWhy (and Why Not) to Use Fortran
Why (and Why Not) to Use Fortran p. 1/?? Why (and Why Not) to Use Fortran Instead of C++, Matlab, Python etc. Nick Maclaren University of Cambridge Computing Service nmm1@cam.ac.uk, 01223 334761 June 2012
More informationSystem Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
More informationDIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
More informationExample of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
More informationAn Introduction to High Performance Computing in the Department
An Introduction to High Performance Computing in the Department Ashley Ford & Chris Jewell Department of Statistics University of Warwick October 30, 2012 1 Some Background 2 How is Buster used? 3 Software
More informationCS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
More informationComputer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices
232 Computer Science Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface
More informationWhat is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
More informationOperating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
More informationObjectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
More informationParallel Processing using the LOTUS cluster
Parallel Processing using the LOTUS cluster Alison Pamment / Cristina del Cano Novales JASMIN/CEMS Workshop February 2015 Overview Parallelising data analysis LOTUS HPC Cluster Job submission on LOTUS
More informationComputer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes
Computer Science 207 Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface
More informationCS3600 SYSTEMS AND NETWORKS
CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 2: Operating System Structures Prof. Alan Mislove (amislove@ccs.neu.edu) Operating System Services Operating systems provide an environment for
More informationA Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers
More informationIntroduction to GPU Programming Languages
CSC 391/691: GPU Programming Fall 2011 Introduction to GPU Programming Languages Copyright 2011 Samuel S. Cho http://www.umiacs.umd.edu/ research/gpu/facilities.html Maryland CPU/GPU Cluster Infrastructure
More informationSession 15 OF, Unpacking the Actuary's Technical Toolkit. Moderator: Albert Jeffrey Moore, ASA, MAAA
Session 15 OF, Unpacking the Actuary's Technical Toolkit Moderator: Albert Jeffrey Moore, ASA, MAAA Presenters: Melissa Boudreau, FCAS Albert Jeffrey Moore, ASA, MAAA Christopher Kenneth Peek Yonasan Schwartz,
More informationComputing, technology & Data Analysis in the Graduate Curriculum. Duncan Temple Lang UC Davis Dept. of Statistics
Computing, technology & Data Analysis in the Graduate Curriculum Duncan Temple Lang UC Davis Dept. of Statistics JSM 08 Statistics is much broader than we represent in our educational programs Context
More informationIntroduction to Python
1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010
More informationAdvanced Computational Software
Advanced Computational Software Scientific Libraries: Part 2 Blue Waters Undergraduate Petascale Education Program May 29 June 10 2011 Outline Quick review Fancy Linear Algebra libraries - ScaLAPACK -PETSc
More informationMonitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
More informationMatlab on a Supercomputer
Matlab on a Supercomputer Shelley L. Knuth Research Computing April 9, 2015 Outline Description of Matlab and supercomputing Interactive Matlab jobs Non-interactive Matlab jobs Parallel Computing Slides
More informationParallel Computing using MATLAB Distributed Compute Server ZORRO HPC
Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC Goals of the session Overview of parallel MATLAB Why parallel MATLAB? Multiprocessing in MATLAB Parallel MATLAB using the Parallel Computing
More informationIntroducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.
More informationFDVis: the Interactive Visualization and Steering Environment for the Computational Processes Using the Finite-Difference Method
Nonlinear Analysis: Modelling and Control, 2003, Vol. 8, No. 2, 71 82 FDVis: the Interactive Visualization and Steering Environment for the Computational Processes Using the Finite-Difference Method A.
More informationHow To Develop Software
Software Development Basics Dr. Axel Kohlmeyer Associate Dean for Scientific Computing College of Science and Technology Temple University, Philadelphia http://sites.google.com/site/akohlmey/ a.kohlmeyer@temple.edu
More information10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes
10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes Muli Ben-Yehuda mulix@mulix.org IBM Haifa Research Labs Linux Kernel Workshop, March 2004 p.1/14 TOC What this talk is about
More informationUsing WestGrid. Patrick Mann, Manager, Technical Operations Jan.15, 2014
Using WestGrid Patrick Mann, Manager, Technical Operations Jan.15, 2014 Winter 2014 Seminar Series Date Speaker Topic 5 February Gino DiLabio Molecular Modelling Using HPC and Gaussian 26 February Jonathan
More informationChapter 2. Why is some hardware better than others for different programs?
Chapter 2 1 Performance Measure, Report, and Summarize Make intelligent choices See through the marketing hype Key to understanding underlying organizational motivation Why is some hardware better than
More informationGood FORTRAN Programs
Good FORTRAN Programs Nick West Postgraduate Computing Lectures Good Fortran 1 What is a Good FORTRAN Program? It Works May be ~ impossible to prove e.g. Operating system. Robust Can handle bad data e.g.
More informationResearch Data Management CODING
CODING Coding When writing software or analytical code it is important that others and your future self can understand what the code is doing. published 10 steps that they regard as the Best Practices
More informationFall 2012 Q530. Programming for Cognitive Science
Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations
More informationScientific Programming in Python
UCSD March 9, 2009 What is Python? Python in a very high level (scripting) language which has gained widespread popularity in recent years. It is: What is Python? Python in a very high level (scripting)
More informationOn-Demand Supercomputing Multiplies the Possibilities
Microsoft Windows Compute Cluster Server 2003 Partner Solution Brief Image courtesy of Wolfram Research, Inc. On-Demand Supercomputing Multiplies the Possibilities Microsoft Windows Compute Cluster Server
More informationEastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
More information3 SOFTWARE AND PROGRAMMING LANGUAGES
3 SOFTWARE AND PROGRAMMING LANGUAGES 3.1 INTRODUCTION In the previous lesson we discussed about the different parts and configurations of computer. It has been mentioned that programs or instructions have
More informationRetour d expérience : portage d une application haute-performance vers un langage de haut niveau
Retour d expérience : portage d une application haute-performance vers un langage de haut niveau ComPAS/RenPar 2013 Mathias Bourgoin - Emmanuel Chailloux - Jean-Luc Lamotte 16 Janvier 2013 Our Goals Globally
More informationThe Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations
Leonardo Journal of Sciences ISSN 1583-0233 Issue 9, July-December 2006 p. 125-136 The Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations Department of Mechanical
More informationObjectives. Python Programming: An Introduction to Computer Science. Lab 01. What we ll learn in this class
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs Objectives Introduction to the class Why we program and what that means Introduction to the Python programming language
More informationOperating System Structure
Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural
More informationCabrillo College Catalog 2015-2016
COMPUTER SCIENCE Natural Applied Sciences Division Wa Garner, Division Dean Division Office, Room 701 Steve Hodges, Program Contact, (831) 479-6494 Aptos Counsel: (831) 479-6274 f appointment Watsonville
More informationPython Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer
More informationIntroduction. Chapter 1
Chapter 1 Introduction MATLAB (Matrix laboratory) is an interactive software system for numerical computations and graphics. As the name suggests, MATLAB is especially designed for matrix computations:
More informationCh. 10 Software Development. (Computer Programming)
Ch. 10 Software Development (Computer Programming) 1 Definitions Software or Program Instructions that tell the computer what to do Programmer Someone who writes computer programs 2 Instruction Set A vocabulary
More information1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
More informationWorking with HPC and HTC Apps. Abhinav Thota Research Technologies Indiana University
Working with HPC and HTC Apps Abhinav Thota Research Technologies Indiana University Outline What are HPC apps? Working with typical HPC apps Compilers - Optimizations and libraries Installation Modules
More informationPython for Scientific Computing. http://bender.astro.sunysb.edu/classes/python-science
http://bender.astro.sunysb.edu/classes/python-science Course Goals Simply: to learn how to use python to do Numerical analysis Data analysis Plotting and visualizations Symbol mathematics Write applications...
More informationEastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
More informationD is for Science. John Colvin
D is for Science John Colvin What is scientific programming? You want to do science, using a computer but the existing software isn t up to the task Scientific Programming Simulations Data Analysis Visualisations
More informationBeyond the Mouse A Short Course on Programming
1 / 22 Beyond the Mouse A Short Course on Programming 2. Fundamental Programming Principles I: Variables and Data Types Ronni Grapenthin Geophysical Institute, University of Alaska Fairbanks September
More informationScientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015
Scientific Programming, Analysis, and Visualization with Python Mteor 227 Fall 2015 Python The Big Picture Interpreted General purpose, high-level Dynamically type Multi-paradigm Object-oriented Functional
More informationAchieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.
Achieving business benefits through automated software testing By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.com) 1 Introduction During my experience of test automation I have seen
More informationIntroduction to Linux and Cluster Basics for the CCR General Computing Cluster
Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Cynthia Cornelius Center for Computational Research University at Buffalo, SUNY 701 Ellicott St Buffalo, NY 14203 Phone: 716-881-8959
More informationFast and efficient backups with rdiff-backup. Presented to the Fraser Valley Linux Users Group March 11, 2004 By Alan Bailward <alan@ufies.
Backing up in Style Fast and efficient backups with rdiff-backup Presented to the Fraser Valley Linux Users Group March 11, 2004 By Alan Bailward Why Backup? Preserve data Save work and
More informationEvaluation of CUDA Fortran for the CFD code Strukti
Evaluation of CUDA Fortran for the CFD code Strukti Practical term report from Stephan Soller High performance computing center Stuttgart 1 Stuttgart Media University 2 High performance computing center
More informationThe Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
More informationBig Data Paradigms in Python
Big Data Paradigms in Python San Diego Data Science and R Users Group January 2014 Kevin Davenport! http://kldavenport.com kldavenportjr@gmail.com @KevinLDavenport Thank you to our sponsors: Setting up
More informationIntroduction to the course, Eclipse and Python
As you arrive: 1. Start up your computer and plug it in. 2. Log into Angel and go to CSSE 120. Do the Attendance Widget the PIN is on the board. 3. Go to the Course Schedule web page. Open the Slides for
More informationUSE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION
More informationComputer Science. Computer Science 213. Faculty and Offices. Degrees and Certificates Awarded. AS Computer Science Degree Requirements
Computer Science 213 Computer Science (See Computer Information Systems section for additional computer courses.) Degrees and Certificates Awarded Associate in Science Degree, Computer Science Certificate
More informationANALYTICS CENTER LEARNING PROGRAM
Overview of Curriculum ANALYTICS CENTER LEARNING PROGRAM The following courses are offered by Analytics Center as part of its learning program: Course Duration Prerequisites 1- Math and Theory 101 - Fundamentals
More informationBest Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
More informationANSA and μeta as a CAE Software Development Platform
ANSA and μeta as a CAE Software Development Platform Michael Giannakidis, Yianni Kolokythas BETA CAE Systems SA, Thessaloniki, Greece Overview What have we have done so far Current state Future direction
More informationToday's Topics. COMP 388/441: Human-Computer Interaction. simple 2D plotting. 1D techniques. Ancient plotting techniques. Data Visualization:
COMP 388/441: Human-Computer Interaction Today's Topics Overview of visualization techniques 1D charts, 2D plots, 3D+ techniques, maps A few guidelines for scientific visualization methods, guidelines,
More informationProgramming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga
Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.
More informationDocumentation and Project Organization
Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones
More informationStreamline Computing Linux Cluster User Training. ( Nottingham University)
1 Streamline Computing Linux Cluster User Training ( Nottingham University) 3 User Training Agenda System Overview System Access Description of Cluster Environment Code Development Job Schedulers Running
More informationProgramming in C# with Microsoft Visual Studio 2010
Course 10266A: Programming in C# with Microsoft Visual Studio 2010 Course Details Course Outline Module 1: Introducing C# and the.net Framework This module explains the.net Framework, and using C# and
More informationDiploma Of Computing
Diploma Of Computing Course Outline Campus Intake CRICOS Course Duration Teaching Methods Assessment Course Structure Units Melbourne Burwood Campus / Jakarta Campus, Indonesia March, June, October 022638B
More informationSoftware: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.
C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers
More informationTesting for Security
Testing for Security Kenneth Ingham September 29, 2009 1 Course overview The threat that security breaches present to your products and ultimately your customer base can be significant. This course is
More informationEastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
More informationData Analytics at NERSC. Joaquin Correa JoaquinCorrea@lbl.gov NERSC Data and Analytics Services
Data Analytics at NERSC Joaquin Correa JoaquinCorrea@lbl.gov NERSC Data and Analytics Services NERSC User Meeting August, 2015 Data analytics at NERSC Science Applications Climate, Cosmology, Kbase, Materials,
More informationComputer Programming I & II*
Computer Programming I & II* Career Cluster Information Technology Course Code 10152 Prerequisite(s) Computer Applications, Introduction to Information Technology Careers (recommended), Computer Hardware
More informationComputer and Information Science
Computer Programming Computer and Information Science Program Description This program is designed to prepare the student for employment as a computer programmer trainee. Certificate of Achievement and
More informationC# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
More informationGetting Started with HPC
Getting Started with HPC An Introduction to the Minerva High Performance Computing Resource 17 Sep 2013 Outline of Topics Introduction HPC Accounts Logging onto the HPC Clusters Common Linux Commands Storage
More informationUnlocking the True Value of Hadoop with Open Data Science
Unlocking the True Value of Hadoop with Open Data Science Kristopher Overholt Solution Architect Big Data Tech 2016 MinneAnalytics June 7, 2016 Overview Overview of Open Data Science Python and the Big
More informationData Analysis with MATLAB. 2013 The MathWorks, Inc. 1
Data Analysis with MATLAB 2013 The MathWorks, Inc. 1 Agenda Introduction Data analysis with MATLAB and Excel Break Developing applications with MATLAB Solving larger problems Summary 2 Modeling the Solar
More informationEffective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
More informationThe GRID according to Microsoft
JM4Grid 2008 The GRID according to Microsoft Andrea Passadore passa@dist.unige.it l.i.d.o.- DIST University of Genoa Agenda Windows Compute Cluster Server 2003 Overview Applications Windows HPC Server
More informationParallel Debugging with DDT
Parallel Debugging with DDT Nate Woody 3/10/2009 www.cac.cornell.edu 1 Debugging Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece
More informationIntroduction to Perl
Introduction to Perl March 8, 2011 by Benjamin J. Lynch http://msi.umn.edu/~blynch/tutorial/perl.pdf Outline What Perl Is When Perl Should Be used Basic Syntax Examples and Hands-on Practice More built-in
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edition
Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationArchitectures for Big Data Analytics A database perspective
Architectures for Big Data Analytics A database perspective Fernando Velez Director of Product Management Enterprise Information Management, SAP June 2013 Outline Big Data Analytics Requirements Spectrum
More information0 Introduction to Data Analysis Using an Excel Spreadsheet
Experiment 0 Introduction to Data Analysis Using an Excel Spreadsheet I. Purpose The purpose of this introductory lab is to teach you a few basic things about how to use an EXCEL 2010 spreadsheet to do
More informationWeb Development Frameworks
COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth swapneel@cs.columbia.edu @swapneel Spring 2012 1 Topic 1 History and Background of Web Application Development
More information