A Study of Software Development for High Performance Computing

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us