Introduction to Scientific Computing

Size: px
Start display at page:

Download "Introduction to Scientific Computing"

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 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 information

Programming Languages & Tools

Programming 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 information

Numerical 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. 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 information

Computational Mathematics with Python

Computational 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 information

Computational Mathematics with Python

Computational 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 information

Computational Mathematics with Python

Computational 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 information

Beginners Shell Scripting for Batch Jobs

Beginners 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 information

Chapter 13: Program Development and Programming Languages

Chapter 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 information

The Julia Language Seminar Talk. Francisco Vidal Meca

The 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 information

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University

Intro 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 information

Chapter 12 Programming Concepts and Languages

Chapter 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 information

Part I Courses Syllabus

Part 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 information

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Outline. 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 information

Why (and Why Not) to Use Fortran

Why (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 information

System Structures. Services Interface Structure

System 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 information

DIABLO VALLEY COLLEGE CATALOG 2014-2015

DIABLO 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 information

Example of Standard API

Example 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 information

An Introduction to High Performance Computing in the Department

An 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 information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 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 information

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Computer 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 information

What is a programming language?

What 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 information

Operating System Structures

Operating 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 information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. 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 information

Parallel Processing using the LOTUS cluster

Parallel 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 information

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

Computer 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 information

CS3600 SYSTEMS AND NETWORKS

CS3600 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 information

A 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 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 information

Introduction to GPU Programming Languages

Introduction 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 information

Session 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 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 information

Computing, 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 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 information

Introduction to Python

Introduction 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 information

Advanced Computational Software

Advanced 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 information

Monitoring, Tracing, Debugging (Under Construction)

Monitoring, 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 information

Matlab on a Supercomputer

Matlab 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 information

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

Parallel 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 information

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Introducing 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 information

FDVis: the Interactive Visualization and Steering Environment for the Computational Processes Using the Finite-Difference Method

FDVis: 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 information

How To Develop Software

How 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 information

10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes

10 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 information

Using WestGrid. Patrick Mann, Manager, Technical Operations Jan.15, 2014

Using 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 information

Chapter 2. Why is some hardware better than others for different programs?

Chapter 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 information

Good FORTRAN Programs

Good 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 information

Research Data Management CODING

Research 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 information

Fall 2012 Q530. Programming for Cognitive Science

Fall 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 information

Scientific Programming in Python

Scientific 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 information

On-Demand Supercomputing Multiplies the Possibilities

On-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 information

Eastern 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 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 information

3 SOFTWARE AND PROGRAMMING LANGUAGES

3 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 information

Retour 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 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 information

The Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations

The 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 information

Objectives. Python Programming: An Introduction to Computer Science. Lab 01. What we ll learn in this class

Objectives. 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 information

Operating System Structure

Operating 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 information

Cabrillo College Catalog 2015-2016

Cabrillo 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 information

Python Programming: An Introduction to Computer Science

Python 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 information

Introduction. Chapter 1

Introduction. 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 information

Ch. 10 Software Development. (Computer Programming)

Ch. 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 information

1/20/2016 INTRODUCTION

1/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 information

Working with HPC and HTC Apps. Abhinav Thota Research Technologies Indiana University

Working 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 information

Python for Scientific Computing. http://bender.astro.sunysb.edu/classes/python-science

Python 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 information

Eastern 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 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 information

D is for Science. John Colvin

D 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 information

Beyond the Mouse A Short Course on Programming

Beyond 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 information

Scientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015

Scientific 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 information

Achieving 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. 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 information

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

Introduction 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 information

Fast and efficient backups with rdiff-backup. Presented to the Fraser Valley Linux Users Group March 11, 2004 By Alan Bailward <alan@ufies.

Fast 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 information

Evaluation of CUDA Fortran for the CFD code Strukti

Evaluation 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 information

The Clean programming language. Group 25, Jingui Li, Daren Tuzi

The 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 information

Big Data Paradigms in Python

Big 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 information

Introduction to the course, Eclipse and Python

Introduction 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 information

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

USE 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 information

Computer Science. Computer Science 213. Faculty and Offices. Degrees and Certificates Awarded. AS Computer Science Degree Requirements

Computer 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 information

ANALYTICS CENTER LEARNING PROGRAM

ANALYTICS 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 information

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Best 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 information

ANSA and μeta as a CAE Software Development Platform

ANSA 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 information

Today's Topics. COMP 388/441: Human-Computer Interaction. simple 2D plotting. 1D techniques. Ancient plotting techniques. Data Visualization:

Today'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 information

Programming 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 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 information

Documentation and Project Organization

Documentation 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 information

Streamline Computing Linux Cluster User Training. ( Nottingham University)

Streamline 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 information

Programming in C# with Microsoft Visual Studio 2010

Programming 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 information

Diploma Of Computing

Diploma 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 information

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

Software: 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 information

Testing for Security

Testing 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 information

Eastern 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 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 information

Data 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 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 information

Computer Programming I & II*

Computer 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 information

Computer and Information Science

Computer 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 information

C# and Other Languages

C# 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 information

Getting Started with HPC

Getting 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 information

Unlocking the True Value of Hadoop with Open Data Science

Unlocking 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 information

Data Analysis with MATLAB. 2013 The MathWorks, Inc. 1

Data 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 information

Effective Java Programming. efficient software development

Effective 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 information

The GRID according to Microsoft

The 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 information

Parallel Debugging with DDT

Parallel 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 information

Introduction to Perl

Introduction 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 information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 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 information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. 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 information

Architectures for Big Data Analytics A database perspective

Architectures 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 information

0 Introduction to Data Analysis Using an Excel Spreadsheet

0 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 information

Web Development Frameworks

Web 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