Software Development at Academia, Government Labs, Industry

Post on 14-Jan-2016

38 views 0 download

description

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? - PowerPoint PPT Presentation

transcript

Gerhard Klimeck

High Performance Computing Group

GROUPSoftware Development atAcademia, 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

GROUPA Simulation Tool’s Facets: Physics, Formalism/Technology, and

Marketing

Res

onan

ce

Find

erHybrid

C, FORTRAN

FORTRAN90

Software Engineering

Object-Oriented Principles

Graphica

l

User In

terfa

ce

Material Param.

Database

Batch Run

InterfaceLibrary of Examples

NovelGrid Gen.

Documentation

Tool

Band-

structure

Chargin

g

InterfaceRoughness

Phonons

Alloy

Disord

er

IonizedDopants

Physics

FormalismGreen 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

• • ••• •

Impurity

Phonon

InterfaceElectron

Transport/Engineering

Quantum Mechanics / Physics

MarketingModel Devices Paying Customers Care About

Gerhard Klimeck

High Performance Computing Group

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

FF

C

F90F90

Motif

Gerhard Klimeck

High Performance Computing Group

GROUP

Revision Control Systems (RCS, CVS)

User gekco: locks and edits file.c r1.3he creates the new r1.4

Users lake, blanks, etc.:can look at the latest publicrevision 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

Emacsfacilitates

thecheck-out

&check-in

file.c r1.4 file.c r1.3

r1.2r1.1

file.c r1.4 file.c r1.3

r1.2r1.1

file.c r1.4 file.c r1.3

r1.2r1.1

co file.c

co -l file.c

ci file.c

Gerhard Klimeck

High Performance Computing Group

GROUP

Generic Data Structure I/O

potential=Hartreehbarovertau=0.0066Ec=FALSE< start=45, end=69 >

Translator

Data StructurePotType potentialreal hbarovertauBoolean EcRangeStruct NonEq

Graphical User InterfaceReadCre

ate

File/Batch User InterfaceReadCreate

Dynamic GUI Design.• data structure • member descriptor -> I/O for GUI or files

TheoristSoftwareEngineer

Gerhard Klimeck

High Performance Computing Group

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