Software Development at Academia, Government Labs, Industry

6
Gerhard Klimeck High Performance Computing Group 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

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 of Software Development at Academia, Government Labs, Industry

Page 1: Software Development at Academia, Government Labs, Industry

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

Page 2: Software Development at Academia, Government Labs, Industry

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

Page 3: Software Development at Academia, Government Labs, Industry

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

Page 4: Software Development at Academia, Government Labs, Industry

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

Page 5: Software Development at Academia, Government Labs, Industry

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

Page 6: Software Development at Academia, Government Labs, Industry

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