A Study of Software Development for High Performance Computing

Total Page:16

File Type:pdf, Size:1020Kb

A Study of Software Development for High Performance Computing Syracuse University SURFACE Northeast Parallel Architecture Center College of Engineering and Computer Science 1994 A Study of Software Development for High Performance Computing Manish Parashar Syracuse University Salim Hariri Syracuse University Tomasz Haupt Syracuse University Geoffrey C. Fox Syracuse University Follow this and additional works at: https://surface.syr.edu/npac Part of the Software Engineering Commons Recommended Citation Parashar, Manish; Hariri, Salim; Haupt, Tomasz; and Fox, Geoffrey C., "A Study of Software Development for High Performance Computing" (1994). Northeast Parallel Architecture Center. 71. https://surface.syr.edu/npac/71 This Article is brought to you for free and open access by the College of Engineering and Computer Science at SURFACE. It has been accepted for inclusion in Northeast Parallel Architecture Center by an authorized administrator of SURFACE. For more information, please contact [email protected]. A Study of Software Development for High Performance Computing Manish Parashar Salim Hariri Tomasz Haupt and Georey Fox Northeast Parallel Architectures Center Syracuse University Published in Programming Environments for Massively Parallel Distributed Systems Birkhauser Verlag Basel Switzerland August Also presented at IFIP WG Working Conference on Programming Environments for Massively Parallel Distributed Systems Abstract Software development in a High Performance Computing HPC environment is nontrivial and requires a thorough understanding of the application and the ar chitecture The objective of this paper is to study the software development process in a high performance computing environment and to outline the stages typical ly encountered in this process Support required at each stage is also highlighted The modeling of stock option pricing is used as a running example in the study Intro duction Software development in any High Performance ParallelDistributed Computing HPC environment is a nontrivial pro cess and requires a thorough understanding of the application and the architecture This is apparent from the fact that applica tions currently achieve only a fraction of p eak available p erformance Zor HPC software development requires the develop er to resolve and tune a large numb er of available design options For example during the course of software develop ment the develop er is required to select the optimal hardware conguration for a particular application the b est decomp osition and mapping of the problem onto the selected hardware conguration the b est communication and synchronization strategy to b e used etc Using conventional techniques this would require exten sive exp erimentation data collection and p ostpro cessing The set of reasonable alternatives that have to b e evaluated is very large and selecting the b est among these is a formidable task As a result the exploitation of the vast p otential of HPC systems will largely b e governed by the availability of suitable to ols and application development environments to supp ort application develop ers The ob jective of this pap er is to study the software development pro cess in a high p erformance computing environment and to outline the stages encountered Further the nature of supp orting to ols that can assist the develop er at each stage are identied Parallel mo deling of sto ck option pricing is used as an illustrative example in the study The rest of the do cument is as organized follows Section presents the study of HPC software development pro cess and outlines the stages subsections Section presents some conclusions HPC Software Development The HPC software development pro cess is describ ed as a set of stages which cor resp ond to the phases typically encountered by a develop er At each stage a set of supp ort to ols which can assist the develop er are identied The stages can b e viewed as a set of lters in cascade see Figure forming a development pip eline The input to this system of lters is the application description and sp ecication which is generated from the application itself if it is a new problem or from existing sequential co de p orting of dusty decks The nal output of the pip eline is a running application Feedback lo ops present at some stages signify stepwise renement and tuning Related discussions p ertaining to parallel computing envi ronments and spanning parts of the software development pro cess can b e found in BM BBDK RL A survey of existing to ols and techniques corresp ond ing to the develop emnt stages is presented in PHHFa The stages in the HPC software development pro cess are describ ed in the following sections Parallel mo d + eling of Sto ck Option Pricing MCV is used as an illustrative running example in the discussion Parallel Mo deling of Sto ck Option Pricing Sto ck options are contracts that give the holder of the contract the right to buy or sell the underlying sto ck at some time in the future for an agreed up on striking or exercise price Option contracts are traded just as sto cks and mo dels that quickly and accurately predict their prices are valuable to the traders Sto ck option pricing mo dels estimate the price for an option contract based on historical market trends and current market information The mo del requires three classes of inputs Mar ket Variables which include the current sto ck price call price exercise price and time to maturity Mo del Parameters which include the volatility of the asset variance of the asset price over time variance of the volatility and the correlation b etween asset price and volatility These parameters cannot b e b e directly observed and must b e estimated from historical data User Inputs which sp ecify the na Dusty Decks New Application Application Specification Application Specification Filter Filter Application Specification Application Analysis Stage Parallelization Specification Algorithm Development Module System Level Mapping Module Design Evaluator Module Implementation/Coding Module Machine Level Mapping Module Application Development Stage Parallelized Structure Compile−Time/Run−Time Stage Evaluation Specification Evaluation Stage Evaluation Recommendation Maintenance/Evolution Stage Figure The HPC Software Development Pro cess ture of the required estimation eg AmericanEurop ean call constantsto chastic volatility time of dividend payo and other constraints regarding acceptable ac curacy and running times A numb er of option pricing mo dels have b een develop ed using varied approaches eg nonsto chastic analytic mo dels Monte Carlo simu lation mo dels binomial mo dels binomial mo dels with forced recombination etc Each of these mo dels involve a set of tradeo s in the nature and accuracy of the estimation and suit dierent user requirements In addition these mo dels make varied demands in terms of programming mo dels and computing resources Inputs The HPC software development pro cess presented in this section addresses new application development as well as the p orting of exiting applications Dusty Decks to HPC environments The input to the development pip eline is the ap plication sp ecication in the form of a functional ow description which is a very highlevel ow diagram of the application outlining the sequence of functions to b e p erformed Each no de termed as functional mo dule in the functional ow di agram is a blackb ox and contains information ab out its inputs the func tion to b e p erformed the desired outputs and the resource requirements at each no de The application sp ecication can b e thought of as corresp onding to the user requirement do cument in a traditional lifecycle mo dels In the case of new applications the inputs are generated from the textual description of the problem and its requirements In the case of dusty decks co de p orting the develop er is required to analyze the existing source co de In either case exp ert system based to ols and intelligent editors b oth equipp ed with a knowledge base to assist in analyzing the application are required In Figure these to ols are included in the Application Sp ecication Filter mo dule The sto ck price mo deling application comes under the rst class of applica tions ie new applications The application sp ecications based on the textual description presented in Section is shown in Figure It consists of three func tional mo dules The input mo dule which accepts user sp ecication market information and historical data and generates the three classes of inputs required by the mo del The estimation mo dule consists of the actual mo del and generates the sto ck option pricing estimates The output mo dule provides a graphical display of the estimation to the user The feedback from the output mo dule to the input mo dule represents tuning of the user sp ecication based on the output displayed Application Analysis Stage The rst stage of the HPC software development pip eline is the application anal ysis stage The input to this stage is the application sp ecication as describ ed in Section The function of this stage is to thoroughly analyze the application with the sole ob jective of achieving the most ecient implementation The prob lems dealt with in this stage are mo dule creation problem ie identication of tasks which can b e executed in parallel mo dule classication problem ie identication of standard mo dules and mo dule synchronization problem ie analysis of mutual interdep endencies The output of this stage is a detailed pro cess ow graph called the Parallelization Sp ecication where the no des represent
Recommended publications
  • Software Development Career Pathway
    Career Exploration Guide Software Development Career Pathway Information Technology Career Cluster For more information about NYC Career and Technical Education, visit: www.cte.nyc Summer 2018 Getting Started What is software? What Types of Software Can You Develop? Computers and other smart devices are made up of Software includes operating systems—like Windows, Web applications are websites that allow users to contact management system, and PeopleSoft, a hardware and software. Hardware includes all of the Apple, and Google Android—and the applications check email, share documents, and shop online, human resources information system. physical parts of a device, like the power supply, that run on them— like word processors and games. among other things. Users access them with a Mobile applications are programs that can be data storage, and microprocessors. Software contains Software applications can be run directly from a connection to the Internet through a web browser accessed directly through mobile devices like smart instructions that are stored and run by the hardware. device or through a connection to the Internet. like Firefox, Chrome, or Safari. Web browsers are phones and tablets. Many mobile applications have Other names for software are programs or applications. the platforms people use to find, retrieve, and web-based counterparts. display information online. Web browsers are applications too. Desktop applications are programs that are stored on and accessed from a computer or laptop, like Enterprise software are off-the-shelf applications What is Software Development? word processors and spreadsheets. that are customized to the needs of businesses. Popular examples include Salesforce, a customer Software development is the design and creation of Quality Testers test the application to make sure software and is usually done by a team of people.
    [Show full text]
  • Object Oriented Programming
    No. 52 March-A pril'1990 $3.95 T H E M TEe H CAL J 0 URN A L COPIA Object Oriented Programming First it was BASIC, then it was structures, now it's objects. C++ afi<;ionados feel, of course, that objects are so powerful, so encompassing that anything could be so defined. I hope they're not placing bets, because if they are, money's no object. C++ 2.0 page 8 An objective view of the newest C++. Training A Neural Network Now that you have a neural network what do you do with it? Part two of a fascinating series. Debugging C page 21 Pointers Using MEM Keep C fro111 (C)rashing your system. An AT Keyboard Interface Use an AT keyboard with your latest project. And More ... Understanding Logic Families EPROM Programming Speeding Up Your AT Keyboard ((CHAOS MADE TO ORDER~ Explore the Magnificent and Infinite World of Fractals with FRAC LS™ AN ELECTRONIC KALEIDOSCOPE OF NATURES GEOMETRYTM With FracTools, you can modify and play with any of the included images, or easily create new ones by marking a region in an existing image or entering the coordinates directly. Filter out areas of the display, change colors in any area, and animate the fractal to create gorgeous and mesmerizing images. Special effects include Strobe, Kaleidoscope, Stained Glass, Horizontal, Vertical and Diagonal Panning, and Mouse Movies. The most spectacular application is the creation of self-running Slide Shows. Include any PCX file from any of the popular "paint" programs. FracTools also includes a Slide Show Programming Language, to bring a higher degree of control to your shows.
    [Show full text]
  • 2015 State of the Software Supply Chain Report: HIDDEN SPEED BUMPS on the ROAD to “CONTINUOUS”
    2015 State of the Software Supply Chain Report: HIDDEN SPEED BUMPS ON THE ROAD TO “CONTINUOUS” Foreword by Gene Kim, Gareth Rushgrove, John Willis, Jez Humble, and Nigel Simpson RESEARCH REPORT TABLE OF CONTENTS Foreword . 3 Introduction . 5 Why All Modern Software Development Relies on a Software Supply Chain . 6 SUPPLIERS: Open Source Projects . 7 Public Repositories (The Warehouses) . 8 Choosing the Best Suppliers (Sourcing) . .. 9 PARTS: Open Source Components . 12 Repository Management (Local Warehouses) . 15 MANUFACTURERS: Assembled Software Development . 19 Technical Debt: Assembly Line Inefficiencies . .. 21 FINISHED GOODS: Software Applications . 22 The Volume of Elective Re-work and Risk . 22 Software Bill of Materials . 23 Quality Controls: OWASP, PCI, FS-ISAC, U .S . Congress . 23 Lessons Learned from Traditional Manufacturing Supply Chains . 25 Automation: How To Improve Software Supply Chains . 26 Appendix . 28 Figure 1: The Volume and Size of the Global Software Supply Chain Figure 2: Target Benchmarks for Software Supply Chain Practices - Quality Control Figure 3: Target Benchmarks for Software Supply Chain Practices - Efficient Distribution Figure 4: Analysis of Components Used within Applications Figure 5: Multiple Versions of Parts Often Downloaded by the Largest Development Teams Figure 6: Volume of Defective Parts Used Figure 7: Comparison of Impact of Supply Chain Complexity on Prius versus Volt Figure 8: Efficient Sourcing Practices By Manufacturers 2015 State of the Software Supply Chain Report: Hidden Speed Bumps on the Road to “Continuous” Page 2 FOREWORD Gene Kim, Co-author of “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win” and upcoming “DevOps Cookbook” “Anyone who believes, as I do, that we can learn valuable lessons from manufacturing and supply chains on how to better manage technology work will love this report .
    [Show full text]
  • College of Fine and Applied Arts Annual Meeting 5:00P.M.; Tuesday, April 5, 2011 Temple Buell Architecture Gallery, Architecture Building
    COLLEGE OF FINE AND APPLIED ARTS ANNUAL MEETING 5:00P.M.; TUESDAY, APRIL 5, 2011 TEMPLE BUELL ARCHITECTURE GALLERY, ARCHITECTURE BUILDING AGENDA 1. Welcome: Robert Graves, Dean 2. Approval of April 5, 2010 draft Annual Meeting Minutes (ATTACHMENT A) 3. Administrative Reports and Dean’s Report 4. Action Items – need motion to approve (ATTACHMENT B) Nominations for Standing Committees a. Courses and Curricula b. Elections and Credentials c. Library 5. Unit Reports 6. Academic Professional Award for Excellence and Faculty Awards for Excellence (ATTACHMENT C) 7. College Summary Data (Available on FAA Web site after meeting) a. Sabbatical Requests (ATTACHMENT D) b. Dean’s Special Grant Awards (ATTACHMENT E) c. Creative Research Awards (ATTACHMENT F) d. Student Scholarships/Enrollment (ATTACHMENT G) e. Kate Neal Kinley Memorial Fellowship (ATTACHMENT H) f. Retirements (ATTACHMENT I) g. Notable Achievements (ATTACHMENT J) h. College Committee Reports (ATTACHMENT K) 8. Other Business and Open Discussion 9. Adjournment Please join your colleagues for refreshments and conversation after the meeting in the Temple Buell Architecture Gallery, Architecture Building ATTACHMENT A ANNUAL MEETING MINUTES COLLEGE OF FINE AND APPLIED ARTS 5:00P.M.; MONDAY, APRIL 5, 2010 FESTIVAL FOYER, KRANNERT CENTER FOR THE PERFORMING ARTS 1. Welcome: Robert Graves, Dean Dean Robert Graves described the difficulties that the College faced in AY 2009-2010. Even during the past five years, when the economy was in better shape than it is now, it had become increasingly clear that the College did not have funds or personnel sufficient to accomplish comfortably all the activities it currently undertakes. In view of these challenges, the College leadership began a process of re- examination in an effort to find economies of scale, explore new collaborations, and spur creative thinking and cooperation.
    [Show full text]
  • Secure Database Development
    Secure Database Development Jan Jurjens (1) and Eduardo B. Fernandez (2) (1) Computing Department, The Open University, Milton Keynes, MK7 8LA GB http://www.jurjens.de/jan (2) Dept. of Computer Science, Florida Atlantic University, Boca Raton, FL 33431, USA http://www.cse.fau.edu/~ed Synonyms Secure DBMS development, secure database design DEFINITION This entry considers how to build secure database system software. In particular, it describes how to build a general-purpose database management system where security is an important design parameter. For the database community the words secure database design may refer to the schema design to produce a database for a specific application with some level of security properties. There is a large amount of literature on this latter subject and a related section in this encyclopedia (Database security). This section concentrates mostly on how to build the software of a DBMS such that it exhibits security properties, which is called secure database development. Both approaches are contrasted so that the reader can decide which one of these problems applies to her specific case but more space is dedicated to the general secure database development problem. HISTORICAL BACKGROUND While there is a large number of papers on security models including authorization and other security aspects of databases [2, 4, 6], there is little work on how to implement a secure Database Management System (DBMS). It is true that many proposals for secure multilevel databases include details of implementation but most of them are ad hoc architectures that cannot be generalized to databases using different models or even to other multilevel databases with different requirements.
    [Show full text]
  • Chapter 3 Software Design
    CHAPTER 3 SOFTWARE DESIGN Guy Tremblay Département d’informatique Université du Québec à Montréal C.P. 8888, Succ. Centre-Ville Montréal, Québec, Canada, H3C 3P8 [email protected] Table of Contents references” with a reasonably limited number of entries. Satisfying this requirement meant, sadly, that not all 1. Introduction..................................................................1 interesting references could be included in the recom- 2. Definition of Software Design .....................................1 mended references list, thus the list of further readings. 3. Breakdown of Topics for Software Design..................2 2. DEFINITION OF SOFTWARE DESIGN 4. Breakdown Rationale...................................................7 According to the IEEE definition [IEE90], design is both 5. Matrix of Topics vs. Reference Material .....................8 “the process of defining the architecture, components, 6. Recommended References for Software Design........10 interfaces, and other characteristics of a system or component” and “the result of [that] process”. Viewed as a Appendix A – List of Further Readings.............................13 process, software design is the activity, within the software development life cycle, where software requirements are Appendix B – References Used to Write and Justify the analyzed in order to produce a description of the internal Knowledge Area Description ....................................16 structure and organization of the system that will serve as the basis for its construction. More precisely, a software design (the result) must describe the architecture of the 1. INTRODUCTION system, that is, how the system is decomposed and This chapter presents a description of the Software Design organized into components and must describe the interfaces knowledge area for the Guide to the SWEBOK (Stone Man between these components. It must also describe these version).
    [Show full text]
  • Software Development Life Cycle (SDLC)
    Software Development Life Cycle (SDLC) • Architecture of Software Development Life Cycle Pipelines, on page 1 • Management VPC SDLC Pipeline, on page 3 • Customer VPC SDLC Pipeline, on page 4 • Code Analysis Reporting, on page 5 Architecture of Software Development Life Cycle Pipelines There are two Cisco SD-WAN for government Software Development Life Cycle (SDLC) pipelines: • Cisco vOrchestrator and Cisco vMonitor SDLC pipeline: The SDLC pipeline used to develop and deploy control components in the Amazon management VPC. • Cisco SD-WAN controllers and Cisco vManage SDLC pipeline: The SDLC pipeline used to develop and deploy control components in the Amazon customer VPC. Software Development Life Cycle (SDLC) 1 Software Development Life Cycle (SDLC) Architecture of Software Development Life Cycle Pipelines Figure 1: Cisco vOrchestrator and Cisco vMonitor SDLC pipeline Figure 2: Cisco SD-WAN Continuous Integration and Continuous Delivery Pipeline Software Development Life Cycle (SDLC) 2 Software Development Life Cycle (SDLC) Management VPC SDLC Pipeline Management VPC SDLC Pipeline Before the images are built and deployed to Cisco SD-WAN for government, the code is first analyzed. After analysis, the code is pushed to a development server in the Cisco DMZ network. The management VPC SDLC pipeline does the following: Checks for Regressions and Analysis of Code To check for regressions and analyze code, Cisco has created the following automated pipeline: 1. Jenkins pulls the code locally from Cisco's Git server. 2. Jenkins (open-source automation tool) securely copies the code to the development server using the scp (secure copy) utility. 3. On the development server, robot regressions are triggered.
    [Show full text]
  • Software Development a Practical Approach!
    Software Development A Practical Approach! Hans-Petter Halvorsen https://www.halvorsen.blog https://halvorsen.blog Software Development A Practical Approach! Hans-Petter Halvorsen Software Development A Practical Approach! Hans-Petter Halvorsen Copyright © 2020 ISBN: 978-82-691106-0-9 Publisher Identifier: 978-82-691106 https://halvorsen.blog ii Preface The main goal with this document: • To give you an overview of what software engineering is • To take you beyond programming to engineering software What is Software Development? It is a complex process to develop modern and professional software today. This document tries to give a brief overview of Software Development. This document tries to focus on a practical approach regarding Software Development. So why do we need System Engineering? Here are some key factors: • Understand Customer Requirements o What does the customer needs (because they may not know it!) o Transform Customer requirements into working software • Planning o How do we reach our goals? o Will we finish within deadline? o Resources o What can go wrong? • Implementation o What kind of platforms and architecture should be used? o Split your work into manageable pieces iii • Quality and Performance o Make sure the software fulfills the customers’ needs We will learn how to build good (i.e. high quality) software, which includes: • Requirements Specification • Technical Design • Good User Experience (UX) • Improved Code Quality and Implementation • Testing • System Documentation • User Documentation • etc. You will find additional resources on this web page: http://www.halvorsen.blog/documents/programming/software_engineering/ iv Information about the author: Hans-Petter Halvorsen The author currently works at the University of South-Eastern Norway.
    [Show full text]
  • A Perspective on the Future of Middleware-Based Software Engineering
    A Perspective on the Future of Middleware-based Software Engineering Valerie Issarny Mauro Caporuscio Nikolaos Georgantas INRIA-Rocquencourt INRIA-Rocquencourt INRIA-Rocquencourt Domaine de Voluceau Domaine de Voluceau Domaine de Voluceau 78153 Le Chesnay, France. 78153 Le Chesnay, France. 78153 Le Chesnay, France. [email protected] [email protected] [email protected] Abstract • An interaction paradigm and semantics for achieving coordination. Middleware is a software layer that stands between the networked operating system and the application and pro- • A transport/session protocol for achieving communi- vides well known reusable solutions to frequently encoun- cation. tered problems like heterogeneity, interoperability, security, dependability. Further, with networks becoming increas- • A naming/discovery protocol, naming/description con- ingly pervasive, middleware appears as a major building vention, registry structure, and matching relation for block for the development of future software systems. Start- publishing and discovering the resources available in ing with the impact of pervasive networking on comput- the given network. ing models, manifested by now common grid and ubiqui- tous computing, this paper surveys related challenges for the middleware and related impact on the software de- velopment. Indeed, future applications will need to cope with advanced non-functional properties such as context- awareness and mobility, for which adequate middleware support must be devised together with accompanying soft- ware development notations, methods and tools. This leads us to introduce our view on next generation middleware, considering both technological advances in the network- ing area but also the need for closer integration with software engineering best practices, to ultimately suggest middleware-based software processes.
    [Show full text]
  • Linux Installation and Getting Started
    Linux Installation and Getting Started Copyright c 1992–1996 Matt Welsh Version 2.3, 22 February 1996. This book is an installation and new-user guide for the Linux system, meant for UNIX novices and gurus alike. Contained herein is information on how to obtain Linux, installation of the software, a beginning tutorial for new UNIX users, and an introduction to system administration. It is meant to be general enough to be applicable to any distribution of the Linux software. This book is freely distributable; you may copy and redistribute it under certain conditions. Please see the copyright and distribution statement on page xiii. Contents Preface ix Audience ............................................... ix Organization.............................................. x Acknowledgments . x CreditsandLegalese ......................................... xii Documentation Conventions . xiv 1 Introduction to Linux 1 1.1 About This Book ........................................ 1 1.2 A Brief History of Linux .................................... 2 1.3 System Features ......................................... 4 1.4 Software Features ........................................ 5 1.4.1 Basic commands and utilities ............................. 6 1.4.2 Text processing and word processing ......................... 7 1.4.3 Programming languages and utilities .......................... 9 1.4.4 The X Window System ................................. 10 1.4.5 Networking ....................................... 11 1.4.6 Telecommunications and BBS software .......................
    [Show full text]
  • Middleware Technologies
    A. Zeeshan A middleware approach towards Web (Grid) Services 06 January 2006 A Middleware road towards Web (Grid) Services Zeeshan Ahmed Department of Intelligent Software Systems and Computer Science, Blekinge Institute of Technology, Box 520, S-372 25 Ronneby, Sweden [email protected] In Student Workshop on Architectures and Research in Middleware Blekinge Institute of Information Technology (BIT 2006), 06.01.2006, Romney Sweden A. Zeeshan A middleware approach towards Web (Grid) Services 06 January 2006 ABSTRACT: 2. MIDDLEWARE TECHNOLOGIES (MDLW TECH) Middleware technologies is a very big field, containing a strong already done research as well as the currently This is one of the new and hottest topics in the field of running research to confirm already done research’s the computer science which encompasses of many results and the to have some new solution by theoretical technologies to connects computer systems and provide a as well as the experimental (practical) way. This protocol to interact with each other to share the document has been produced by Zeeshan Ahmed information between them. The term Middleware carries (Student: Connectivity Software Technologies Blekinge the meaning to mediate between two or more already Institute of Technologies). This describes the research existing separate software applications to exchange the already done in the field of middleware technologies data. including Web Services, Grid Computing, Grid Services and Open Grid Service Infrastructure & Architecture. Middleware technologies reside inside complex, This document concludes with the overview of Web distributed and online application by hiding their self in (Grid) Service, Chain of Web (Grid) Services and the the form operating system, database and network details, necessary security issue.
    [Show full text]
  • A Debate on Teaching Computing Science
    Teaching Computing Science t the ACM Computer Science Conference last Strategic Defense Initiative. William Scherlis is February, Edsger Dijkstra gave an invited talk known for his articulate advocacy of formal methods called “On the Cruelty of Really Teaching in computer science. M. H. van Emden is known for Computing Science.” He challenged some of his contributions in programming languages and the basic assumptions on which our curricula philosophical insights into science. Jacques Cohen Aare based and provoked a lot of discussion. The edi- is known for his work with programming languages tors of Comwunications received several recommenda- and logic programming and is a member of the Edi- tions to publish his talk in these pages. His comments torial Panel of this magazine. Richard Hamming brought into the foreground some of the background received the Turing Award in 1968 and is well known of controversy that surrounds the issue of what be- for his work in communications and coding theory. longs in the core of a computer science curriculum. Richard M. Karp received the Turing Award in 1985 To give full airing to the controversy, we invited and is known for his contributions in the design of Dijkstra to engage in a debate with selected col- algorithms. Terry Winograd is well known for his leagues, each of whom would contribute a short early work in artificial intelligence and recent work critique of his position, with Dijkstra himself making in the principles of design. a closing statement. He graciously accepted this offer. I am grateful to these people for participating in We invited people from a variety of specialties, this debate and to Professor Dijkstra for creating the backgrounds, and interpretations to provide their opening.
    [Show full text]