Gerhard Klimeck High Performance Computing Group Software Development at Academia, Government Labs, Industry John Barker Agenda/Questions: How can the.

Slides:



Advertisements
Similar presentations
What is Computer Software?. Hardware vs Software Got to have both to get the job done!
Advertisements

EC-111 Algorithms & Computing Lecture #1 Instructor: Jahan Zeb Department of Computer Engineering (DCE) College of E&ME NUST.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Starting Out with C++, 3 rd Edition 1 Chapter 1. Introduction to Computers and Programming.
Gerhard Klimeck Applied Cluster Computing Technologies Group Quantum and semi-classical transport in RTDs using NEMO 1-D Gerhard Klimeck Jet Propulsion.
Understanding Operating Systems 1 Overview Introduction Operating System Components Machine Hardware Types of Operating Systems Brief History of Operating.
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 6: An Introduction to System Software and Virtual Machines
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Chapter 8: Introduction to High-Level Language Programming Invitation to Computer Science, C++ Version, Fourth Edition.
1 Outline 7.1 Introduction 7.2 Implementing a Time Abstract Data Type with a Class 7.3 Special Attributes 7.4Controlling Access to Attributes 7.4.1Get.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Chapter 3 Software Two major types of software
Computers They're Not Magic! (for the most part)‏ Adapted from Ryan Moore.
 2000 Prentice Hall, Inc. All rights reserved. 1 Introduction to Computers and C Programming Outline Introduction What Is a Computer? Computer Organization.
Computer Software.
Chapter 1 The Systems Development Environment
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
Software Configuration Management (SCM)
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
Chapter 1 The Systems Development Environment
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Standard Grade Computing System Software & Operating Systems.
Computer Science 111 Fundamentals of Programming I Overview of Programming.
1 Lecture 19 Configuration Management Software Engineering.
Spring 2011 CIS 4911 Senior Project Catalog Description: Students work on faculty supervised projects in teams of up to 5 members to design and implement.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
COMP 171: Principles of Computer Science I John Barr.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
2005 Materials Computation Center External Board Meeting The Materials Computation Center Duane D. Johnson and Richard M. Martin (PIs) Funded by NSF DMR.
Chapter 9 Moving to Design
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Introduction to Computers Outline 1.1Introduction.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
The european ITM Task Force data structure F. Imbeaux.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
CMSC 345 Fall 2000 Software Design and Development.
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
Engineering Projects In Community Service Matt Mooney Community Based Research University of Notre Dame.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Build and Test system for FairRoot
Fundamentals of Programming I Overview of Programming
Network Simulators.
Computer Aided Software Engineering (CASE)
TYPES OFF OPERATING SYSTEM
A BRIEF INTRODUCTION TO UNIX OPERATING SYSTEM
Introduction to MATLAB
Computer Science I CSC 135.
Tools of Software Development
What Is a Program? A program is like an algorithm, but describes a process that is ready or can be made ready to run on a real computer Retrieved from:
Introduction To System Analysis and Design PART 2
Synthesizing models with classes for automating code generation
Members: Keshava Shiva Sanjeeve Kareena
Simulation And Modeling
Presentation transcript:

Gerhard Klimeck High Performance Computing Group Software Development at Academia, Government Labs, Industry John Barker Agenda/Questions: How can the three share development? Possibly cooperation like designer chemistry software? What are the technical challenges? What is the software we are talking about anyways? Who are the customers? Academia: students, who learn programming and science/engineering. + new physical effects, push the science envelope - typically no tool development, small building blocks, fast and dirty Government / Government Funded Industry: Government + software performs the required tasks - typically no realistic commercialization plan Industry: Industry, Government, Students => old style: piecemeal university software together => new style: build-up new software where there is a commercial market + stable, functional, documented, maintained, supported - no software / science / engineering research

Gerhard Klimeck High Performance Computing Group A Simulation Tool’s Facets: Physics, Formalism/Technology, and Marketing Resonance Finder Hybrid C, FORTRAN FORTRAN90 Software Engineering Object-Oriented Principles Graphical User Interface Material Param. Database Batch Run Interface Library of Examples Novel Grid Gen. Documentation Tool Band- structure Charging Interface Roughness Phonons Alloy Disorder Ionized Dopants Physics Formalism Green Function Theory & Boundary Cond. Can one use the strengths of the three software developers academia / government / industry? Academia: need to get serious about interacting with government / industry on REAL development Don’t re-invent the wheel every time, colaborate on existing packages Government/Industry: expect real deliverables from academia not just formulas on paper. 20/50/ 2 Transport/ Engineering Quantum Mechanics / Physics Marketing Model Devices Paying Customers Care About

Gerhard Klimeck High Performance Computing Group Software Structure : Hybrid C, FORTRAN, and FORTRAN 90 Advantages of C: flexible data design, fast prototyping. simple hook-up of the graphical user interface. close to the UNIX system level for job scheduling. Advantages of FORTRAN speed for floating point arithmetic. 4x speed-up for the same algorithm comparing C and F77 on HP. Advantages FORTRAN90 = FORTRAN +... standardized vector and matrix arithmetic. data structures. simple parallelization. GUI F F C F90 Motif

Gerhard Klimeck High Performance Computing Group Revision Control Systems (RCS, CVS) User gekco: locks and edits file.c r1.3 he creates the new r1.4 Users lake, blanks, etc.: can look at the latest public revision of file.c (r1.3) Several people - one piece of code ? Break up the source code into (many) files. Use a central library system. All developers can look at the latest versions. The files cannot be changed. Must check out and lock a file before editing. FORGET about PRIVATE CODE VERSIONS!!! Library of all files and all revisions Emacs facilitates the check-out & check-in file.c r1.4 file.c r1.3  r1.2  r1.1 file.c r1.4 file.c r1.3  r1.2  r1.1 file.c r1.4 file.c r1.3  r1.2  r1.1 co file.c co -l file.c ci file.c

Gerhard Klimeck High Performance Computing Group Generic Data Structure I/O potential=Hartree hbarovertau= Ec=FALSE Translator Data Structure PotType potential real hbarovertau Boolean Ec RangeStruct NonEq Graphical User Interface Read Create File/Batch User Interface Read Create Dynamic GUI Design. data structure member descriptor -> I/O for GUI or files Theorist Software Engineer

Gerhard Klimeck High Performance Computing Group Novel Interactive Documentation Tool Pseudocode is a step by step description of a program in a natural language (high level and low level) Maintain pseudocode and code in one document -> easy to keep it up-to-date Generated automatically from comments in the code Cross references to theory description further pseudocode the actual code