• No results found

Scientific Computing's Productivity Gridlock and How Software Engineering Can Help

N/A
N/A
Protected

Academic year: 2021

Share "Scientific Computing's Productivity Gridlock and How Software Engineering Can Help"

Copied!
18
0
0

Loading.... (view fulltext now)

Full text

(1)

Scientific Computing's Productivity

Gridlock and How Software

Engineering Can Help

Stuart Faulk, Ph.D.

Computer and Information Science

University of Oregon

(2)

Outline

• Challenges of Scientific Computing (SC) • SC’s growing productivity problems

• Productivity studies and root causes • Implications of the “expertise gap”

• How Software Engineering could (usefully) contribute

(3)

Focus on SC Community Codes

• Growing demand for “Virtual Research

and Test” facilities

– Simulation, analysis, and test capabilities for complex science and engineering

• Materials, fluid dynamics, climate, weather, etc.

– Need for multi-physics, high resolution, high fidelity, multi-scale, real-time

• Shifting paradigm

– 1960s->today: codes for and by subject-matter experts

– 1990s->today> : codes developed for and by diverse, distributed community

• SC codes for community use present greatest challenges going

forward

© S. Faulk 2015 3

Thermonuclear flame plume bursting through the surface of a white dwarf: (FLASH multi-physics sim)

(4)

SC Distinguishing Characteristic

• Driven by the science (not software qualities)

– Time-to-solution – Correctness

– Agility (Emerging/changing requirements) – Performance really matters

• Not the only important qualities

– Long life cycle

– Ports relatively frequent

4 Post & Kendall, Large-Scale Comp. Scientific and Engi. Project Development and Production Workflows, CTWatch, 2007

(5)

The Challenge of Computer Complexity

• Machine complexity is increasing

– Clock-speed is stuck while circuit density increases

– Future of increasing parallelism, heterogeneous architectures, power issues, decreasing reliability

5

• Coding becoming correspondingly more difficult

– Map correct scientific solutions onto target hardware

– Scaling and optimizing to effectively utilize hardware capabilities – Achieving and demonstrating correctness

– Maintain or evolve code community needs over the life cycle – Port widely-used solutions to new platforms

National Academy Study: The Future of Computing Performance (2010)

(6)

The SC Productivity Problem

• Definition: use “productivity” to denote the (scientific)

value produced per unit cost over time

• SC has a growing problem in end-to-end productivity • Observation: real productivity is declining even as

hardware capabilities increase:

– Increasingly long and expensive development – Higher risk of failure

– Growing maintenance costs

– Increasing cost/failures porting to new machines

• Need: improving requires understanding source and

nature of productivity bottlenecks

(7)

The SC Productivity Problem

• Definition: use “productivity” to denote the (scientific)

value produced per unit cost over time

• SC has a growing problem in end-to-end productivity • Observation: real productivity is declining even as

hardware capabilities increase; increased effort to:

– Code correct solutions

– Deploy with high utilization – Maintain and evolve

– Port to new platforms

• Need: understand productivity bottlenecks in current

development paradigms

(8)

SC Workflow Studies

• Empirical studies of real SC developments

(ASCI, HPCS, Sun)

• Goal: understand where current code development

practices limit end-to-end productivity

– Interdisciplinary team from social, physical, and computational sciences

– Collected empirical data validated by multiple approaches

• Case studies, interviews, focus groups

• In-situ observations of developers (Hackystat)

• Experimental studies: controlled developments, measurements • Developed an canonical SC workflow model to:

– Identify tasks consuming the greatest resources – Skill sets required for those tasks

(9)

© S. Faulk 2015 9

(10)

SC Workflow Bottlenecks

10

• Most resource intensive

tasks

– Developing correct scientific programs – Serial optimization and

tuning

– Code parallelization and organization (scaling) – Porting and modifying

existing parallel code

• Bottlenecks result from:

– Manual methods

• Hand coding, scaling, optimization, verification

– Multidisciplinary expertise

• Most tasks demand multiple skill sets

• Domain science, programming, parallelization, and target hardware

(11)

Finding: the

Expertise Gap

• Bottom line: productivity depends on multidisciplinary

experts optimizing parallel code by hand

• Key finding: there exists an expertise gap at the heart

of the productivity crisis

– Few individuals with needed skills for a given scientific domain, language, and hardware set

– Training (apprenticeship) takes years – Once acquired, are often not portable

• and it will only get worse…

– Demand is growing

– More demanding as hardware becomes more complex

(12)

Finding: Inadequate SE Methods and

Tools

• SC code development is dominated by informal

processes and manual methods

– Processes largely ad hoc

– Use of high-level languages is low – Limited use of current SE methods

• Tool support fragmentary, limited, unreliable

– Often ad hoc collections

– Little support for most labor-intensive tasks (scaling, optimization, porting, etc.)

• Upshot: Process and product quality depend on

individual skills and efforts

(13)

Historical Comparison

Pre-Industrial Post-Industrial

The Craftsman The Factory

… our most advanced scientific programs are foundering on pre-industrial development models

(14)

Can SE contribute? Yes but …

• SC desperately needs new methods

– Bottlenecks are inherent in hand-crafted paradigm – Cannot produce multidisciplinary experts fast enough – Productivity gridlock: resulting inability to start solving

productivity problems, even as overall productivity declines

• Software Engineering has addressed many of these

issues but solutions are not adapted to SC goals/constraints

– Adoption is disruptive – Benefits inobvious

– History of failing in practice

– Perception that “computer scientists don’t address our

needs”

(15)

R&D Areas: The Expertise Gap

• Improving productivity requires reducing dependence on

multidisciplinary experts

• Keys are in abstraction and automation (SE strengths)

– Provide computational abstractions reflecting the science and math of the problem domain

• Reduce program complexity (size, understandability, maintainability) • Ease verification

– Provide hardware-independent abstractions

• Expressing algorithmic parallelization

• Optimizing and tuning for performance, locality, latency, etc.

– Automate the mapping hardware

• Parallelism, data layout, latency • Preserving sufficient performance

– Engineer for systematic reuse of conceptual structures

• Goals: reduce manual labor, allow scientists to reason in the

problem domain

(16)

Requirements for Success

• SE community must work with SC community to

address concerns for relevance and risk

– Must revisit common SE assumptions, align with SC realities

– Must re-engineer solutions (processes, methods, tools) or invent anew

– Must validate on real problems

• Demonstrate effectiveness in meeting developmental goals • Demonstrate sufficient control of run-time performance

• Demonstrate cost effectiveness

• Success will require collaboration between the SC and

SE communities

• Institutions must provide motivation, funding,

infrastrcture

(17)
(18)

Sources

© S. Faulk 2015 18

• D. E. Post, R. P. Kendall, Internat. J. High Perf. Comput. Appl. 18(4), 399 (2004).

• Van De Vanter, M.L., Post, D., and Zosel, M.E. "HPC Needs a Tool Strategy". In Proceedings

of Second International Workshop on Software Engineering for High Performance Computing System Applications (ICSE 2005). St. Louis. 2005. p. 15

• D. Post and L. Votta, “Computational Science Demands a New Paradigm,” Physics Today, vol. 58, no. 1, 2005, pp. 35–41.

• Jeffrey C. Carver, Richard P. Kendall, Susan Squires, Douglass E. Post, “Software Development Environments for Scientific and Engineering Software: A Series of Case Studies,” Proceedings of the 29th International Conference on Software Engineering, IEEE Computer Society, Washington, DC, pp. 440-559, May 20–26, 2007.

• Stuart Faulk, John Gustafson, Philip M. Johnson, Adam Porter, Walter F. Tichy, Lawrence G. Votta, “Measuring HPC Productivity,” International Journal of High Performance Computing Applications: Special Issue on HPC Productivity, J. Kepner (editor), 18(4), Winter 2004 (November).

• DOE, ASCR Workshop on Software Productivity for Extreme-scale Science, Rockville MD, Jan. 2014.

• CREATE Link

– http://www.hpc.mil/index.php/2013-08-29-16-03-23/software-applications-support-sas-overview/computational-research-for-engineering-and-science-cres/computational-research-for-engineering-acquisition-tools-and-environments-create

References

Related documents

Identify when a student is making adequate progress in a more intense instructional level Collaborate with the general education teacher to assist in determination of students

In contrast to their previous papers, the current chapter provides actu- arial projections for successive cohorts to 2040 of 401(k) wealth and defi ned benefi t (DB) wealth by

· All used sharps must be placed in a clearly labelled, puncture resistant container, that complies with Australian Standard AS 4031, immediately after the skin penetration

The findings revealed that organisational structures in Government organisations are hierarchical which hindered sharing of information, the existing organisational

The purpose of the QIS is to inventory all current Quality Improvement (QI) activities in the Department, including QI projects, ongoing programs, and processes within the

Joint ventures and foreign and national investors, who are parties to international economic association agreements, and totally foreign capital companies, shall

Smith‟s detective novels, and, specifically, his creation, the colourfully idiosyncratic accountant-investigator figure of Nicky Mahoun, enhance our understanding of