Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 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

2 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

3 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

4 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

5 Gerhard Klimeck High Performance Computing Group Generic Data Structure I/O potential=Hartree hbarovertau=0.0066 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

6 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


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

Similar presentations


Ads by Google